Moved def from AngularJSCore to Angular2

This commit is contained in:
aegilops
2025-01-08 16:36:10 +00:00
parent 4530118681
commit 2dc9e7bab7
2 changed files with 32 additions and 32 deletions

View File

@@ -554,4 +554,36 @@ module Angular2 {
this = API::Node::ofType("@angular/core", "ElementRef").getMember("nativeElement").asSource()
}
}
/**
* A DOM attribute write, using the AngularJS Renderer2 API: a call to `Renderer2.setProperty`.
*/
class AngularRenderer2AttributeDefinition extends DOM::AttributeDefinition {
DataFlow::Node propertyNode;
DataFlow::Node valueNode;
DataFlow::Node elementNode;
AngularRenderer2AttributeDefinition() {
exists(API::CallNode setProperty |
setProperty =
API::moduleImport("@angular/core")
.getMember("Renderer2")
.getInstance()
.getMember("setProperty")
.getACall() and
elementNode = setProperty.getArgument(0) and
propertyNode = setProperty.getArgument(1) and
valueNode = setProperty.getArgument(2) and
this = setProperty.asExpr()
)
}
override string getName() { result = propertyNode.getStringValue() }
// override DOM::ElementDefinition getElement() { /* TODO */ }
DataFlow::Node getElementNode() { result = elementNode }
override DataFlow::Node getValueNode() { result = valueNode }
//override predicate mayHaveTemplateValue() { /* TODO */ }
}
}

View File

@@ -1032,35 +1032,3 @@ private class BindCall extends DataFlow::PartialInvokeNode::Range, DataFlow::Cal
result = this.getArgument(0)
}
}
/**
* A DOM attribute write, using the AngularJS Renderer2 API: a call to `Renderer2.setProperty`.
*/
private class AngularRenderer2AttributeDefinition extends DOM::AttributeDefinition {
DataFlow::Node propertyNode;
DataFlow::Node valueNode;
DataFlow::Node elementNode;
AngularRenderer2AttributeDefinition() {
exists(API::CallNode setProperty |
setProperty =
API::moduleImport("@angular/core")
.getMember("Renderer2")
.getInstance()
.getMember("setProperty")
.getACall() and
elementNode = setProperty.getArgument(0) and
propertyNode = setProperty.getArgument(1) and
valueNode = setProperty.getArgument(2) and
this = setProperty.asExpr()
)
}
override string getName() { result = propertyNode.getStringValue() }
// override DOM::ElementDefinition getElement() { /* TODO */ }
DataFlow::Node getElementNode() { result = elementNode }
override DataFlow::Node getValueNode() { result = valueNode }
//override predicate mayHaveTemplateValue() { /* TODO */ }
}