CallStackElementComparer.cs 898 B

123456789101112131415161718192021222324252627282930
  1. namespace Jint.Runtime.CallStack
  2. {
  3. internal sealed class CallStackElementComparer: IEqualityComparer<CallStackElement>
  4. {
  5. public static readonly CallStackElementComparer Instance = new();
  6. private CallStackElementComparer()
  7. {
  8. }
  9. public bool Equals(CallStackElement x, CallStackElement y)
  10. {
  11. if (x.Function._functionDefinition is not null)
  12. {
  13. return ReferenceEquals(x.Function._functionDefinition, y.Function._functionDefinition);
  14. }
  15. return ReferenceEquals(x.Function, y.Function);
  16. }
  17. public int GetHashCode(CallStackElement obj)
  18. {
  19. if (obj.Function._functionDefinition is not null)
  20. {
  21. return obj.Function._functionDefinition.GetHashCode();
  22. }
  23. return obj.Function.GetHashCode();
  24. }
  25. }
  26. }