JS: Support static accessor calls and fix some FP accessor-calls #8791
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 two problems with our call graph for accessors, and adds support for calls to static accessors declared on a class.
This PR deals with two bugs:
ClassNode.getStaticMethod
previously included static accessors. This lead to some FP call edges as a result from confusing accessors and methods.PropWrite
node exists for accessors, representing the installation of an accessor. We accidentally saw these as potential calls to the setter.It is addressed as follows:
ClassNode.getStaticMember
, analogous toClassNode.getInstanceMember
, and madegetStaticMethod
only include methods.PropWrite.isAccessorInstallation
to distinguish between ordinary property assignments and accessor installation. Accessor installations are no longer seen as potential calls to a setter.Evaluation on default slugs: