Instanceof requires callable or constructable right-hand side#12728
Merged
Instanceof requires callable or constructable right-hand side#12728
Conversation
Also includes a fast-path for null and undefined even though they are technically Function subtypes.
Member
Author
|
@mhegazy do you want to take a look? |
Contributor
|
I would like to discuss this in the design meeting first. will put it on the agenda. |
Member
|
To get some discussion going, one of two requirements must be satisfied for
Check out the relevant section of the spec itself. |
Member
|
So in short, I think checking for some number of call/construct signatures is the right move - however, we could also check for a |
Contributor
I would say we should add that check as well to be ES6 complaint. |
Contributor
|
as per #13331, let's get this one in. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Fixes #12709
The check for the right-hand side of
instanceofpreviously required that the type beanyor a subtype ofFunction. This is too strict, and breaks if a class has some otherwise-unrelated functions liketoString,bind, etc that don't matchFunction.toString,Function.bind, etc.This PR loosens the check to allow a right-hand side type with a call or construct signature, even if the type isn't assignable to
Function.