DEPRECATED: Use the new data flow library instead.
Provides a class
DataFlowNode for working with a data flow graph-based
We distinguish between local flow and non-local flow.
Local flow only considers three kinds of data flow:
- Flow within an expression, for example from the operands of a
&&expression to the expression itself.
- Flow through local variables, that is, from definitions to uses. Captured variables are treated flow-insensitively, that is, all definitions are considered to flow to all uses, while for non-captured variables only definitions that can actually reach a use are considered.
- Flow into and out of immediately invoked function expressions, that is, flow from arguments to parameters, and from returned expressions to the function expression itself.
Non-local flow additionally tracks data flow through global variables.
Flow through object properties or function calls is not modelled (except for immediately invoked functions as explained above).
A classification of flows that are not modeled, or only modeled incompletely, by
A data flow node that reads an object property.
A data flow node that reads or writes an object property.
A data flow node that writes to an object property.