Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 7a4af4a

Browse files
committed
JS: add PropWrite instance for parameter fields
1 parent dacde5d commit 7a4af4a

1 file changed

Lines changed: 19 additions & 0 deletions

File tree

javascript/ql/src/semmle/javascript/dataflow/DataFlow.qll

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -512,6 +512,25 @@ module DataFlow {
512512
override ControlFlowNode getWriteNode() { result = prop }
513513
}
514514

515+
/**
516+
* A field induced by an initializing constructor parameter, seen as a property write (TypeScript only).
517+
*/
518+
private class ParameterFieldAsPropWrite extends PropWrite, PropNode {
519+
override ParameterField prop;
520+
521+
override Node getBase() {
522+
result = thisNode(prop.getDeclaringClass().getConstructor().getBody())
523+
}
524+
525+
override Expr getPropertyNameExpr() { result = prop.getNameExpr() }
526+
527+
override string getPropertyName() { result = prop.getName() }
528+
529+
override Node getRhs() { result = parameterNode(prop.getParameter()) }
530+
531+
override ControlFlowNode getWriteNode() { result = prop.getParameter() }
532+
}
533+
515534
/**
516535
* A data flow node that reads an object property.
517536
*/

0 commit comments

Comments
 (0)