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 {
786786 predicate isAccessor ( ) { this = MemberKind:: accessor ( ) }
787787}
788788
789+ private import internal.StepSummary
790+
789791module MemberKind {
790792 /** Gets the kind of a method, such as `m() {}` */
791793 MemberKind method ( ) { result = "method" }
@@ -960,7 +962,16 @@ class ClassNode extends DataFlow::SourceNode instanceof ClassNode::Range {
960962 result .getAstNode ( ) .getFile ( ) = this .getAstNode ( ) .getFile ( )
961963 )
962964 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+ )
964975 }
965976
966977 /**
You can’t perform that action at this time.
0 commit comments