Skip to content

Commit 19f1462

Browse files
committed
JS: Update use of Locations
1 parent 2de9af2 commit 19f1462

File tree

8 files changed

+21
-44
lines changed

8 files changed

+21
-44
lines changed

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

Lines changed: 4 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1056,11 +1056,7 @@ module DataFlow {
10561056

10571057
override StmtContainer getContainer() { result = expr.getContainer() }
10581058

1059-
override predicate hasLocationInfo(
1060-
string filepath, int startline, int startcolumn, int endline, int endcolumn
1061-
) {
1062-
expr.getLocation().hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn)
1063-
}
1059+
override Location getLocation() { result = expr.getLocation() }
10641060
}
10651061

10661062
/**
@@ -1075,13 +1071,7 @@ module DataFlow {
10751071

10761072
override StmtContainer getContainer() { result = constructor }
10771073

1078-
override predicate hasLocationInfo(
1079-
string filepath, int startline, int startcolumn, int endline, int endcolumn
1080-
) {
1081-
constructor
1082-
.getLocation()
1083-
.hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn)
1084-
}
1074+
override Location getLocation() { result = constructor.getLocation() }
10851075
}
10861076

10871077
/**
@@ -1403,11 +1393,7 @@ module DataFlow {
14031393

14041394
override string toString() { result = "[function self-reference] " + function.toString() }
14051395

1406-
override predicate hasLocationInfo(
1407-
string filepath, int startline, int startcolumn, int endline, int endcolumn
1408-
) {
1409-
function.getLocation().hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn)
1410-
}
1396+
override Location getLocation() { result = function.getLocation() }
14111397
}
14121398

14131399
/**
@@ -1423,11 +1409,7 @@ module DataFlow {
14231409

14241410
override StmtContainer getContainer() { result = expr.getContainer() }
14251411

1426-
override predicate hasLocationInfo(
1427-
string filepath, int startline, int startcolumn, int endline, int endcolumn
1428-
) {
1429-
expr.getLocation().hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn)
1430-
}
1412+
override Location getLocation() { result = expr.getLocation() }
14311413

14321414
override string toString() { result = "[post update] " + expr.toString() }
14331415
}

javascript/ql/lib/semmle/javascript/dataflow/internal/DataFlowPrivate.qll

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -59,12 +59,6 @@ class CaptureNode extends DataFlow::Node, TSynthCaptureNode {
5959

6060
cached
6161
private Location getLocation() { result = this.getNode().getLocation() }
62-
63-
override predicate hasLocationInfo(
64-
string filepath, int startline, int startcolumn, int endline, int endcolumn
65-
) {
66-
this.getLocation().hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn)
67-
}
6862
}
6963

7064
class GenericSynthesizedNode extends DataFlow::Node, TGenericSynthesizedNode {
@@ -78,11 +72,7 @@ class GenericSynthesizedNode extends DataFlow::Node, TGenericSynthesizedNode {
7872

7973
override string toString() { result = "[synthetic node] " + tag }
8074

81-
override predicate hasLocationInfo(
82-
string filepath, int startline, int startcolumn, int endline, int endcolumn
83-
) {
84-
node.getLocation().hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn)
85-
}
75+
override Location getLocation() { result = node.getLocation() }
8676

8777
string getTag() { result = tag }
8878
}

javascript/ql/lib/semmle/javascript/dataflow/internal/VariableCapture.qll

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ private import semmle.javascript.dataflow.internal.DataFlowNode
33
private import codeql.dataflow.VariableCapture
44
private import semmle.javascript.dataflow.internal.sharedlib.DataFlowImplCommon as DataFlowImplCommon
55

6-
module VariableCaptureConfig implements InputSig<js::Location> {
6+
module VariableCaptureConfig implements InputSig<js::DbLocation> {
77
private js::Function getLambdaFromVariable(js::LocalVariable variable) {
88
result.getVariable() = variable
99
or
@@ -185,7 +185,7 @@ module VariableCaptureConfig implements InputSig<js::Location> {
185185

186186
string toString() { none() } // Overridden in subclass
187187

188-
js::Location getLocation() { none() } // Overridden in subclass
188+
js::DbLocation getLocation() { none() } // Overridden in subclass
189189

190190
predicate hasCfgNode(BasicBlock bb, int i) { none() } // Overridden in subclass
191191

@@ -203,7 +203,7 @@ module VariableCaptureConfig implements InputSig<js::Location> {
203203
override string toString() { result = pattern.toString() }
204204

205205
/** Gets the location of this write. */
206-
override js::Location getLocation() { result = pattern.getLocation() }
206+
override js::DbLocation getLocation() { result = pattern.getLocation() }
207207

208208
override js::DataFlow::Node getSource() {
209209
// Note: there is not always an expression corresponding to the RHS of the assignment.
@@ -239,7 +239,7 @@ module VariableCaptureConfig implements InputSig<js::Location> {
239239

240240
override string toString() { result = "[implicit init] " + variable }
241241

242-
override js::Location getLocation() { result = variable.getLocation() }
242+
override js::DbLocation getLocation() { result = variable.getLocation() }
243243

244244
override CapturedVariable getVariable() { result = variable }
245245

@@ -259,7 +259,7 @@ module VariableCaptureConfig implements InputSig<js::Location> {
259259
predicate exitBlock(BasicBlock bb) { bb.getLastNode() instanceof js::ControlFlowExitNode }
260260
}
261261

262-
module VariableCaptureOutput = Flow<js::Location, VariableCaptureConfig>;
262+
module VariableCaptureOutput = Flow<js::DbLocation, VariableCaptureConfig>;
263263

264264
js::DataFlow::Node getNodeFromClosureNode(VariableCaptureOutput::ClosureNode node) {
265265
result = TValueNode(node.(VariableCaptureOutput::ExprNode).getExpr())
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1+
private import semmle.javascript.Locations
12
private import codeql.dataflow.DataFlow
23
private import DataFlowArg
3-
import DataFlowMake<JSDataFlow>
4+
import DataFlowMake<Location, JSDataFlow>
45
import DataFlowImplSpecific::Public

javascript/ql/lib/semmle/javascript/dataflow/internal/sharedlib/DataFlowArg.qll

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1+
private import semmle.javascript.Locations
12
private import DataFlowImplSpecific
23
private import codeql.dataflow.DataFlow as SharedDataFlow
34
private import codeql.dataflow.TaintTracking as SharedTaintTracking
45

5-
module JSDataFlow implements SharedDataFlow::InputSig {
6+
module JSDataFlow implements SharedDataFlow::InputSig<Location> {
67
import Private
78
import Public
89

@@ -16,6 +17,6 @@ module JSDataFlow implements SharedDataFlow::InputSig {
1617
predicate viableImplInCallContext = Private::viableImplInCallContext/2;
1718
}
1819

19-
module JSTaintFlow implements SharedTaintTracking::InputSig<JSDataFlow> {
20+
module JSTaintFlow implements SharedTaintTracking::InputSig<Location, JSDataFlow> {
2021
import semmle.javascript.dataflow.internal.TaintTrackingPrivate
2122
}
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
private import semmle.javascript.Locations
12
private import codeql.dataflow.internal.DataFlowImpl
23
private import DataFlowArg
3-
import MakeImpl<JSDataFlow>
4+
import MakeImpl<Location, JSDataFlow>
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
private import semmle.javascript.Locations
12
private import DataFlowArg
23
private import codeql.dataflow.internal.DataFlowImplCommon
3-
import MakeImplCommon<JSDataFlow>
4+
import MakeImplCommon<Location, JSDataFlow>
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
private import semmle.javascript.Locations
12
private import codeql.dataflow.TaintTracking
23
private import DataFlowArg
3-
import TaintFlowMake<JSDataFlow, JSTaintFlow>
4+
import TaintFlowMake<Location, JSDataFlow, JSTaintFlow>

0 commit comments

Comments
 (0)