File tree Expand file tree Collapse file tree 1 file changed +17
-1
lines changed
javascript/ql/src/semmle/javascript Expand file tree Collapse file tree 1 file changed +17
-1
lines changed Original file line number Diff line number Diff line change @@ -790,7 +790,23 @@ module API {
790
790
)
791
791
)
792
792
or
793
- exists ( DataFlow:: TypeBackTracker t2 | result = trackDefNode ( nd , t2 ) .backtrack ( t2 , t ) )
793
+ t = defStep ( nd , result )
794
+ }
795
+
796
+ /**
797
+ * Holds if `nd`, which is a def of an API-graph node, flows in zero or more potentially
798
+ * inter-procedural steps from some intermediate node, and then to that intermediate node from
799
+ * `prev` in one step described by the resulting TypeTracker.
800
+ *
801
+ * This predicate exists solely to enforce a better join order in `trackDefNode` above.
802
+ */
803
+ pragma [ noopt]
804
+ private DataFlow:: TypeBackTracker defStep ( DataFlow:: Node nd , DataFlow:: SourceNode prev ) {
805
+ exists ( DataFlow:: TypeBackTracker t , StepSummary summary , DataFlow:: Node next |
806
+ next = trackDefNode ( nd , t ) and
807
+ StepSummary:: step ( prev , next , summary ) and
808
+ result = t .prepend ( summary )
809
+ )
794
810
}
795
811
796
812
/**
You can’t perform that action at this time.
0 commit comments