Fix: do not report global variables as injected binding #14827
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.
As suggested by the OP, we use
hasBinding
here, which also checks global variables (e.g.Math
) and context variables (e.g.undefined
). Note that the scope is always a top-level scope sohasBinding
here is equivalent tohasOwnBinding
global variables check.Also refactored the
GLOBAL_TYPES
data structure so we don't have to find the program node from export specifiers, after all they share the same scope.