mirror of
https://github.com/github/codeql.git
synced 2026-04-29 10:45:15 +02:00
JS: introduce DataFlow::PropWrite::getWriteNode
This commit is contained in:
@@ -456,6 +456,11 @@ module DataFlow {
|
||||
prop = getPropertyName() and
|
||||
rhs = getRhs()
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the node where the property write happens in the control flow graph.
|
||||
*/
|
||||
abstract ControlFlowNode getWriteNode();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -481,6 +486,10 @@ module DataFlow {
|
||||
override Node getRhs() {
|
||||
result = valueNode(astNode.(LValue).getRhs())
|
||||
}
|
||||
|
||||
override ControlFlowNode getWriteNode() {
|
||||
result = astNode.(LValue).getDefNode()
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -505,6 +514,10 @@ module DataFlow {
|
||||
override Node getRhs() {
|
||||
result = valueNode(prop.(ValueProperty).getInit())
|
||||
}
|
||||
|
||||
override ControlFlowNode getWriteNode() {
|
||||
result = prop
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -534,6 +547,10 @@ module DataFlow {
|
||||
propdesc.hasPropertyWrite("value", result)
|
||||
)
|
||||
}
|
||||
|
||||
override ControlFlowNode getWriteNode() {
|
||||
result = odp.getAstNode()
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -560,6 +577,10 @@ module DataFlow {
|
||||
not prop instanceof AccessorMethodDefinition and
|
||||
result = valueNode(prop.getInit())
|
||||
}
|
||||
|
||||
override ControlFlowNode getWriteNode() {
|
||||
result = prop
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -584,6 +605,10 @@ module DataFlow {
|
||||
override Node getRhs() {
|
||||
result = valueNode(prop.getValue())
|
||||
}
|
||||
|
||||
override ControlFlowNode getWriteNode() {
|
||||
result = prop
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -835,6 +860,11 @@ module DataFlow {
|
||||
override Node getBase() {
|
||||
result = valueNode(arr)
|
||||
}
|
||||
|
||||
override ControlFlowNode getWriteNode() {
|
||||
result = arr
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user