File tree Expand file tree Collapse file tree
javascript/ql/src/semmle/javascript/dataflow Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -531,6 +531,31 @@ module DataFlow {
531531 override ControlFlowNode getWriteNode ( ) { result = prop .getParameter ( ) }
532532 }
533533
534+ /**
535+ * An instance field with an initializer expression, seen as a property write.
536+ */
537+ private class InstanceFieldAsPropWrite extends PropWrite , PropNode {
538+ override FieldDefinition prop ;
539+
540+ InstanceFieldAsPropWrite ( ) {
541+ not prop .isStatic ( ) and
542+ exists ( prop .getInit ( ) ) and
543+ not prop instanceof ParameterField
544+ }
545+
546+ override Node getBase ( ) {
547+ result = thisNode ( prop .getDeclaringClass ( ) .getConstructor ( ) .getBody ( ) )
548+ }
549+
550+ override Expr getPropertyNameExpr ( ) { result = prop .getNameExpr ( ) }
551+
552+ override string getPropertyName ( ) { result = prop .getName ( ) }
553+
554+ override Node getRhs ( ) { result = valueNode ( prop .getInit ( ) ) }
555+
556+ override ControlFlowNode getWriteNode ( ) { result = prop }
557+ }
558+
534559 /**
535560 * A data flow node that reads an object property.
536561 */
You can’t perform that action at this time.
0 commit comments