Skip to content

Commit cd4685c

Browse files
committed
cache RegExpCreationNode::getAReference
1 parent 02c4966 commit cd4685c

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
@@ -1650,5 +1650,9 @@ class RegExpCreationNode extends DataFlow::SourceNode {
16501650
}
16511651

16521652
/** Gets a data flow node referring to this regular expression. */
1653-
DataFlow::SourceNode getAReference() { result = this.getAReference(DataFlow::TypeTracker::end()) }
1653+
cached
1654+
DataFlow::SourceNode getAReference() {
1655+
Stages::FlowSteps::ref() and
1656+
result = this.getAReference(DataFlow::TypeTracker::end())
1657+
}
16541658
}

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
AccessPath::DominatingPaths::hasDominatingWrite(_)
239239
or
240240
DataFlow::SharedFlowStep::step(_, _)
241+
or
242+
exists(any(DataFlow::RegExpCreationNode e).getAReference())
241243
}
242244
}
243245

0 commit comments

Comments
 (0)