Skip to content

Commit aa9261f

Browse files
committed
convert the AngularJS model to use DataFlow nodes
1 parent 9bea110 commit aa9261f

23 files changed

+260
-198
lines changed

javascript/ql/lib/semmle/javascript/Expr.qll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ class Expr extends @expr, ExprOrStmt, ExprOrType, AST::ValueNode {
167167
/**
168168
* Holds if this expression may refer to the initial value of parameter `p`.
169169
*/
170-
predicate mayReferToParameter(Parameter p) { this.flow().mayReferToParameter(p) }
170+
predicate mayReferToParameter(Parameter p) { DataFlow::parameterNode(p).flowsToExpr(this) }
171171

172172
/**
173173
* Gets the static type of this expression, as determined by the TypeScript type system.

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,9 +139,12 @@ module DataFlow {
139139
}
140140

141141
/**
142+
* DEPRECATED: Use `DataFlow::ParameterNode::flowsTo()` instead.
142143
* Holds if this expression may refer to the initial value of parameter `p`.
143144
*/
144-
predicate mayReferToParameter(Parameter p) { parameterNode(p).(SourceNode).flowsTo(this) }
145+
deprecated predicate mayReferToParameter(Parameter p) {
146+
parameterNode(p).(SourceNode).flowsTo(this)
147+
}
145148

146149
/**
147150
* Holds if this element is at the specified location.

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -472,6 +472,12 @@ class FunctionNode extends DataFlow::ValueNode, DataFlow::SourceNode {
472472
/** Gets a parameter of this function. */
473473
ParameterNode getAParameter() { result = this.getParameter(_) }
474474

475+
/** Gets the parameter named `name` of this function, if any. */
476+
DataFlow::ParameterNode getParameterByName(string name) {
477+
result = getAParameter() and
478+
result.getName() = name
479+
}
480+
475481
/** Gets the number of parameters declared on this function. */
476482
int getNumParameter() { result = count(astNode.getAParameter()) }
477483

0 commit comments

Comments
 (0)