Skip to content

Commit b4d4b51

Browse files
authored
Merge pull request github#8147 from erik-krogh/cacheReg
JS: cache RegExpCreationNode::getAReference
2 parents 5f59e96 + cd4685c commit b4d4b51

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1684,5 +1684,9 @@ class RegExpCreationNode extends DataFlow::SourceNode {
16841684
}
16851685

16861686
/** Gets a data flow node referring to this regular expression. */
1687-
DataFlow::SourceNode getAReference() { result = this.getAReference(DataFlow::TypeTracker::end()) }
1687+
cached
1688+
DataFlow::SourceNode getAReference() {
1689+
Stages::FlowSteps::ref() and
1690+
result = this.getAReference(DataFlow::TypeTracker::end())
1691+
}
16881692
}

javascript/ql/lib/semmle/javascript/internal/CachedStages.qll

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,8 @@ module Stages {
238238
1 = 1
239239
or
240240
DataFlow::SharedFlowStep::step(_, _)
241+
or
242+
exists(any(DataFlow::RegExpCreationNode e).getAReference())
241243
}
242244
}
243245

0 commit comments

Comments
 (0)