Skip to content

Commit 75b9237

Browse files
committed
use Parameter instead of SimpleParameter in the AngularJS model
1 parent c675d72 commit 75b9237

File tree

5 files changed

+22
-17
lines changed

5 files changed

+22
-17
lines changed

javascript/ql/src/semmle/javascript/frameworks/AngularJS/AngularJSCore.qll

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -819,27 +819,27 @@ class LinkFunction extends Function {
819819
/**
820820
* Gets the scope parameter of this function.
821821
*/
822-
SimpleParameter getScopeParameter() { result = getParameter(0) }
822+
Parameter getScopeParameter() { result = getParameter(0) }
823823

824824
/**
825825
* Gets the element parameter of this function (contains a jqLite-wrapped DOM element).
826826
*/
827-
SimpleParameter getElementParameter() { result = getParameter(1) }
827+
Parameter getElementParameter() { result = getParameter(1) }
828828

829829
/**
830830
* Gets the attributes parameter of this function.
831831
*/
832-
SimpleParameter getAttributesParameter() { result = getParameter(2) }
832+
Parameter getAttributesParameter() { result = getParameter(2) }
833833

834834
/**
835835
* Gets the controller parameter of this function.
836836
*/
837-
SimpleParameter getControllerParameter() { result = getParameter(3) }
837+
Parameter getControllerParameter() { result = getParameter(3) }
838838

839839
/**
840840
* Gets the transclude-function parameter of this function.
841841
*/
842-
SimpleParameter getTranscludeFnParameter() { result = getParameter(4) }
842+
Parameter getTranscludeFnParameter() { result = getParameter(4) }
843843
}
844844

845845
/**
@@ -868,7 +868,7 @@ class AngularScope extends TAngularScope {
868868
*/
869869
Expr getAnAccess() {
870870
exists(CustomDirective d | this = d.getAScope() |
871-
exists(SimpleParameter p |
871+
exists(Parameter p |
872872
p = d.getController().getDependencyParameter("$scope") or
873873
p = d.getALinkFunction().getParameter(0)
874874
|
@@ -884,7 +884,7 @@ class AngularScope extends TAngularScope {
884884
d.hasIsolateScope() and result = d.getMember("scope").asExpr()
885885
)
886886
or
887-
exists(DirectiveController c, DOM::ElementDefinition elem, SimpleParameter p |
887+
exists(DirectiveController c, DOM::ElementDefinition elem, Parameter p |
888888
c.boundTo(elem) and
889889
this.mayApplyTo(elem) and
890890
p = c.getFactoryFunction().getDependencyParameter("$scope") and

javascript/ql/src/semmle/javascript/frameworks/AngularJS/DependencyInjections.qll

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ abstract class DependencyInjection extends DataFlow::ValueNode {
4141
*/
4242
abstract class InjectableFunction extends DataFlow::ValueNode {
4343
/** Gets the parameter corresponding to dependency `name`. */
44-
abstract SimpleParameter getDependencyParameter(string name);
44+
abstract Parameter getDependencyParameter(string name);
4545

4646
/**
4747
* Gets the `i`th dependency declaration, which is also named `name`.
@@ -67,7 +67,7 @@ abstract class InjectableFunction extends DataFlow::ValueNode {
6767
/**
6868
* Gets a service corresponding to the dependency-injected `parameter`.
6969
*/
70-
ServiceReference getAResolvedDependency(SimpleParameter parameter) {
70+
ServiceReference getAResolvedDependency(Parameter parameter) {
7171
exists(string name, InjectableFunctionServiceRequest request |
7272
this = request.getAnInjectedFunction() and
7373
parameter = getDependencyParameter(name) and
@@ -79,7 +79,7 @@ abstract class InjectableFunction extends DataFlow::ValueNode {
7979
* Gets a Custom service corresponding to the dependency-injected `parameter`.
8080
* (this is a convenience variant of `getAResolvedDependency`)
8181
*/
82-
DataFlow::Node getCustomServiceDependency(SimpleParameter parameter) {
82+
DataFlow::Node getCustomServiceDependency(Parameter parameter) {
8383
exists(CustomServiceDefinition custom |
8484
custom.getServiceReference() = getAResolvedDependency(parameter) and
8585
result = custom.getAService()
@@ -99,11 +99,11 @@ private class FunctionWithImplicitDependencyAnnotation extends InjectableFunctio
9999
not exists(getAPropertyDependencyInjection(astNode))
100100
}
101101

102-
override SimpleParameter getDependencyParameter(string name) {
102+
override Parameter getDependencyParameter(string name) {
103103
result = astNode.getParameterByName(name)
104104
}
105105

106-
override SimpleParameter getDependencyDeclaration(int i, string name) {
106+
override Parameter getDependencyDeclaration(int i, string name) {
107107
result.getName() = name and
108108
result = astNode.getParameter(i)
109109
}
@@ -139,7 +139,7 @@ private class FunctionWithInjectProperty extends InjectableFunction {
139139
)
140140
}
141141

142-
override SimpleParameter getDependencyParameter(string name) {
142+
override Parameter getDependencyParameter(string name) {
143143
exists(int i | exists(getDependencyDeclaration(i, name)) | result = astNode.getParameter(i))
144144
}
145145

@@ -170,7 +170,7 @@ private class FunctionWithExplicitDependencyAnnotation extends InjectableFunctio
170170
function.flowsToExpr(astNode.getElement(astNode.getSize() - 1))
171171
}
172172

173-
override SimpleParameter getDependencyParameter(string name) {
173+
override Parameter getDependencyParameter(string name) {
174174
exists(int i | astNode.getElement(i).mayHaveStringValue(name) |
175175
result = asFunction().getParameter(i)
176176
)

javascript/ql/src/semmle/javascript/frameworks/AngularJS/ServiceDefinitions.qll

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -479,7 +479,7 @@ abstract class ServiceRequest extends Expr {
479479
/**
480480
* Gets the parameter of this request into which `service` is injected.
481481
*/
482-
abstract SimpleParameter getDependencyParameter(ServiceReference service);
482+
abstract Parameter getDependencyParameter(ServiceReference service);
483483
}
484484

485485
/**
@@ -488,7 +488,7 @@ abstract class ServiceRequest extends Expr {
488488
private class LinkFunctionWithScopeInjection extends ServiceRequest {
489489
LinkFunctionWithScopeInjection() { this instanceof LinkFunction }
490490

491-
override SimpleParameter getDependencyParameter(ServiceReference service) {
491+
override Parameter getDependencyParameter(ServiceReference service) {
492492
service instanceof ScopeServiceReference and
493493
result = this.(LinkFunction).getScopeParameter()
494494
}
@@ -521,7 +521,7 @@ class InjectableFunctionServiceRequest extends ServiceRequest {
521521
result.isInjectable()
522522
}
523523

524-
override SimpleParameter getDependencyParameter(ServiceReference service) {
524+
override Parameter getDependencyParameter(ServiceReference service) {
525525
service = injectedFunction.getAResolvedDependency(result)
526526
}
527527
}

javascript/ql/test/library-tests/frameworks/AngularJS/dependencies/DependencyKinds.expected

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,4 @@
3434
| dependency-kinds.js:98:33:98:63 | functio ... ency){} | animationDependency |
3535
| dependency-kinds.js:111:17:117:9 | functio ... } | $routeProvider |
3636
| dependency-kinds.js:114:33:115:21 | functio ... } | routeControllerDependency |
37+
| dependency-kinds.js:121:14:123:10 | ['modul ... }] | moduleRunService |

javascript/ql/test/library-tests/frameworks/AngularJS/dependencies/dependency-kinds.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,4 +117,8 @@
117117
})
118118
;
119119

120+
angular.module('myModule', [])
121+
.run(['moduleRunService', function({foo, bar}) {
122+
// ...
123+
}])
120124
})();

0 commit comments

Comments
 (0)