Relax polymorphism checks in static methods #44
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
These changes should improve the performance of polymorphic checks and
equality comparison in general. A method is no longer required to be on
the prototype, which was an unrealistic expectation of JavaScript in the
wild, but retains the ability to deeply compare object literals. The
code for comparing object literals will be exercised less frequently due
to additional checks to bail out early.
I could not bear to completely remove support for comparing object literals because
equals
should be useful down the line for a unit testing or assertion library and deep comparison of object literals is an expected behavior ofequals
as opposed tobe
oris
.