Skip to content

Commit 2dc9e7b

Browse files
committed
Moved def from AngularJSCore to Angular2
1 parent 4530118 commit 2dc9e7b

File tree

2 files changed

+32
-32
lines changed

2 files changed

+32
-32
lines changed

javascript/ql/lib/semmle/javascript/frameworks/Angular2.qll

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -554,4 +554,36 @@ module Angular2 {
554554
this = API::Node::ofType("@angular/core", "ElementRef").getMember("nativeElement").asSource()
555555
}
556556
}
557+
558+
/**
559+
* A DOM attribute write, using the AngularJS Renderer2 API: a call to `Renderer2.setProperty`.
560+
*/
561+
class AngularRenderer2AttributeDefinition extends DOM::AttributeDefinition {
562+
DataFlow::Node propertyNode;
563+
DataFlow::Node valueNode;
564+
DataFlow::Node elementNode;
565+
566+
AngularRenderer2AttributeDefinition() {
567+
exists(API::CallNode setProperty |
568+
setProperty =
569+
API::moduleImport("@angular/core")
570+
.getMember("Renderer2")
571+
.getInstance()
572+
.getMember("setProperty")
573+
.getACall() and
574+
elementNode = setProperty.getArgument(0) and
575+
propertyNode = setProperty.getArgument(1) and
576+
valueNode = setProperty.getArgument(2) and
577+
this = setProperty.asExpr()
578+
)
579+
}
580+
581+
override string getName() { result = propertyNode.getStringValue() }
582+
583+
// override DOM::ElementDefinition getElement() { /* TODO */ }
584+
DataFlow::Node getElementNode() { result = elementNode }
585+
586+
override DataFlow::Node getValueNode() { result = valueNode }
587+
//override predicate mayHaveTemplateValue() { /* TODO */ }
588+
}
557589
}

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

Lines changed: 0 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1032,35 +1032,3 @@ private class BindCall extends DataFlow::PartialInvokeNode::Range, DataFlow::Cal
10321032
result = this.getArgument(0)
10331033
}
10341034
}
1035-
1036-
/**
1037-
* A DOM attribute write, using the AngularJS Renderer2 API: a call to `Renderer2.setProperty`.
1038-
*/
1039-
private class AngularRenderer2AttributeDefinition extends DOM::AttributeDefinition {
1040-
DataFlow::Node propertyNode;
1041-
DataFlow::Node valueNode;
1042-
DataFlow::Node elementNode;
1043-
1044-
AngularRenderer2AttributeDefinition() {
1045-
exists(API::CallNode setProperty |
1046-
setProperty =
1047-
API::moduleImport("@angular/core")
1048-
.getMember("Renderer2")
1049-
.getInstance()
1050-
.getMember("setProperty")
1051-
.getACall() and
1052-
elementNode = setProperty.getArgument(0) and
1053-
propertyNode = setProperty.getArgument(1) and
1054-
valueNode = setProperty.getArgument(2) and
1055-
this = setProperty.asExpr()
1056-
)
1057-
}
1058-
1059-
override string getName() { result = propertyNode.getStringValue() }
1060-
1061-
// override DOM::ElementDefinition getElement() { /* TODO */ }
1062-
DataFlow::Node getElementNode() { result = elementNode }
1063-
1064-
override DataFlow::Node getValueNode() { result = valueNode }
1065-
//override predicate mayHaveTemplateValue() { /* TODO */ }
1066-
}

0 commit comments

Comments
 (0)