File tree Expand file tree Collapse file tree 1 file changed +12
-1
lines changed
javascript/ql/lib/semmle/javascript/dataflow Expand file tree Collapse file tree 1 file changed +12
-1
lines changed Original file line number Diff line number Diff line change @@ -786,6 +786,8 @@ class MemberKind extends string {
786
786
predicate isAccessor ( ) { this = MemberKind:: accessor ( ) }
787
787
}
788
788
789
+ private import internal.StepSummary
790
+
789
791
module MemberKind {
790
792
/** Gets the kind of a method, such as `m() {}` */
791
793
MemberKind method ( ) { result = "method" }
@@ -960,7 +962,16 @@ class ClassNode extends DataFlow::SourceNode instanceof ClassNode::Range {
960
962
result .getAstNode ( ) .getFile ( ) = this .getAstNode ( ) .getFile ( )
961
963
)
962
964
or
963
- exists ( DataFlow:: TypeTracker t2 | result = this .getAClassReference ( t2 ) .track ( t2 , t ) )
965
+ result = this .getAClassReferenceRec ( t )
966
+ }
967
+
968
+ pragma [ noopt]
969
+ private DataFlow:: SourceNode getAClassReferenceRec ( DataFlow:: TypeTracker t ) {
970
+ exists ( DataFlow:: TypeTracker t2 , StepSummary summary , DataFlow:: SourceNode prev |
971
+ prev = this .getAClassReference ( t2 ) and
972
+ StepSummary:: step ( prev , result , summary ) and
973
+ t = t2 .append ( summary )
974
+ )
964
975
}
965
976
966
977
/**
You can’t perform that action at this time.
0 commit comments