Merge pull request #396 from esben-semmle/js/unconditional-property-override

JS: add query: js/unconditional-property-override
This commit is contained in:
Max Schaefer
2018-11-12 17:10:32 +00:00
committed by GitHub
16 changed files with 478 additions and 60 deletions

View File

@@ -459,6 +459,11 @@ module DataFlow {
prop = getPropertyName() and
rhs = getRhs()
}
/**
* Gets the node where the property write happens in the control flow graph.
*/
abstract ControlFlowNode getWriteNode();
}
/**
@@ -484,6 +489,10 @@ module DataFlow {
override Node getRhs() {
result = valueNode(astNode.(LValue).getRhs())
}
override ControlFlowNode getWriteNode() {
result = astNode.(LValue).getDefNode()
}
}
/**
@@ -508,6 +517,10 @@ module DataFlow {
override Node getRhs() {
result = valueNode(prop.(ValueProperty).getInit())
}
override ControlFlowNode getWriteNode() {
result = prop
}
}
/**
@@ -537,6 +550,10 @@ module DataFlow {
propdesc.hasPropertyWrite("value", result)
)
}
override ControlFlowNode getWriteNode() {
result = odp.getAstNode()
}
}
/**
@@ -563,6 +580,10 @@ module DataFlow {
not prop instanceof AccessorMethodDefinition and
result = valueNode(prop.getInit())
}
override ControlFlowNode getWriteNode() {
result = prop
}
}
/**
@@ -587,6 +608,10 @@ module DataFlow {
override Node getRhs() {
result = valueNode(prop.getValue())
}
override ControlFlowNode getWriteNode() {
result = prop
}
}
/**
@@ -869,6 +894,11 @@ module DataFlow {
override Node getBase() {
result = valueNode(arr)
}
override ControlFlowNode getWriteNode() {
result = arr
}
}
/**