Class EarlyStageNode
A data-flow node that is not a flow summary node.
This node exists to avoid an unwanted dependency on flow summaries in some parts of the codebase that should not depend on them.
In particular, this dependency chain must not result in negative recursion:
- Flow summaries can only be created after pruning irrelevant flow summaries
- To prune irrelevant flow summaries, we must know which packages are imported
- To know which packages are imported, module systems must be evaluated
- The AMD and NodeJS module systems rely on data flow to find calls to
requireand similar. These module systems must therefore useEarlyStageNodeinstead ofDataFlow::Node.
Import path
import semmle.javascript.dataflow.internal.DataFlowNodeDirect supertypes
Predicates
| getLocation | Gets the location of this data flow node. |
| toString | Gets a string representation of this data flow node. |