CodeQL library for JavaScript/TypeScript
codeql/javascript-all 0.8.13 (changelog, source)
Search

Class DataFlow::PropWrite

A data flow node that writes to an object property.

For example, all of the following are property writes:

obj.f = value;  // assignment to a property
obj[e] = value; // assignment to a computed property
{ f: value }    // property initializer
{ g() {} }      // object literal method
{ get g() {}, set g(v) {} }  // accessor methods (have no rhs value)
class C {
  constructor(public x: number); // parameter field (TypeScript only)
  static m() {} // static method
  g() {}        // instance method
}
Object.defineProperty(obj, 'f', { value: 5} ) // call to defineProperty
<View width={value}/>  // JSX attribute

Import path

import javascript

Direct supertypes

Indirect supertypes

Known direct subtypes

    Predicates

    getInstalledAccessor

    If this installs an accessor on an object, as opposed to a regular property, gets the body of the accessor. isSetter is true if installing a setter, and false is installing a getter.

    getRhs

    Gets the data flow node corresponding to the value being written, if it can be statically determined.

    getWriteNode

    Gets the node where the property write happens in the control flow graph.

    writes

    Holds if this data flow node writes the value of rhs to property prop of the object that base evaluates to.

    Inherited predicates

    accesses

    Holds if this data flow node accesses property p on base node base.

    from PropRef
    accessesGlobal

    Holds if this data flow node accesses the global variable g, either directly or through the window object.

    from Node
    analyze

    Gets type inference results for this data flow node.

    from Node
    asExpr

    Gets the expression corresponding to this data flow node, if any.

    from Node
    getABoundFunctionValue

    Gets a function value that may reach this node, possibly derived from a partial function invocation.

    from Node
    getAFunctionValue

    Gets a function value that may reach this node.

    from Node
    getAFunctionValue

    Gets a function value that may reach this node with the given imprecision level.

    from Node
    getALocalSource

    Gets a source node from which data may flow to this node in zero or more local steps.

    from Node
    getAPredecessor

    Gets a data flow node from which data may flow to this node in one local step.

    from Node
    getASuccessor

    Gets a data flow node to which data may flow from this node in one local step.

    from Node
    getAnAccessorCallee

    Gets an accessor (get or set method) that may be invoked by this property reference.

    from PropRef
    getAstNode

    Gets the AST node corresponding to this data flow node, if any.

    from Node
    getBase

    Gets the data flow node corresponding to the base object whose property is read from or written to.

    from PropRef
    getBasicBlock

    Gets the basic block to which this node belongs.

    from Node
    getContainer

    Gets the container in which this node occurs.

    from Node
    getEnclosingExpr

    Gets the expression enclosing this data flow node. In most cases the result is the same as asExpr(), however this method additionally includes the InvokeExpr corresponding to reflective calls.

    from Node
    getEndColumn

    Gets the end column of this data flow node.

    from Node
    getEndLine

    Gets the end line of this data flow node.

    from Node
    getFile

    Gets the file this data flow node comes from.

    from Node
    getImmediatePredecessor

    Gets the immediate predecessor of this node, if any.

    from Node
    getIntValue

    Gets the integer value of this node, if it is an integer constant.

    from Node
    getLocation

    Gets the location of this node.

    from Node
    getPropertyName

    Gets the name of the property being read or written, if it can be statically determined.

    from PropRef
    getPropertyNameExpr

    Gets the expression specifying the name of the property being read or written, if any.

    from PropRef
    getStartColumn

    Gets the start column of this data flow node.

    from Node
    getStartLine

    Gets the start line of this data flow node.

    from Node
    getStringValue

    Gets the string value of this node, if it is a string literal or constant string concatenation.

    from Node
    getTopLevel

    Gets the toplevel in which this node occurs.

    from Node
    hasLocationInfo

    Holds if this element is at the specified location. The location spans column startcolumn of line startline to column endcolumn of line endline in file filepath. For more information, see Locations.

    from Node
    hasUnderlyingType

    Holds if this node is annotated with the given named type, or is declared as a subtype thereof, or is a union or intersection containing such a type.

    from Node
    hasUnderlyingType

    Holds if this node is annotated with the given named type, or is declared as a subtype thereof, or is a union or intersection containing such a type.

    from Node
    isIncomplete

    Holds if the flow information for this node is incomplete.

    from Node
    isPrivateField

    Holds if this data flow node reads or writes a private field in a class.

    from PropRef
    mayHaveBooleanValue

    Holds if this node may evaluate to the Boolean value b.

    from Node
    mayHavePropertyName

    Holds if this property reference may access a property named propName.

    from PropRef
    mayHaveStringValue

    Holds if this node may evaluate to the string s, possibly through local data flow.

    from Node
    toString

    Gets a textual representation of this element.

    from Node