Skip to content

Commit 5c9a239

Browse files
committed
JS: SetAdd
1 parent 98398a9 commit 5c9a239

1 file changed

Lines changed: 8 additions & 7 deletions

File tree

javascript/ql/src/semmle/javascript/Collections.qll

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
import javascript
88
private import semmle.javascript.dataflow.internal.StepSummary
9+
private import semmle.javascript.dataflow.internal.PreCallGraphStep
910
private import DataFlow::PseudoProperties
1011

1112
/**
@@ -123,13 +124,13 @@ private module CollectionDataFlow {
123124
/**
124125
* A step for `Set.add()` method, which adds an element to a Set.
125126
*/
126-
private class SetAdd extends CollectionFlowStep, DataFlow::MethodCallNode {
127-
SetAdd() { this.getMethodName() = "add" }
128-
129-
override predicate store(DataFlow::Node element, DataFlow::SourceNode obj, PseudoProperty prop) {
130-
this = obj.getAMethodCall() and
131-
element = this.getArgument(0) and
132-
prop = setElement()
127+
private class SetAdd extends PreCallGraphStep {
128+
override predicate storeStep(DataFlow::Node element, DataFlow::SourceNode obj, string prop) {
129+
exists(DataFlow::MethodCallNode call |
130+
call = obj.getAMethodCall("add") and
131+
element = call.getArgument(0) and
132+
prop = setElement()
133+
)
133134
}
134135
}
135136

0 commit comments

Comments
 (0)