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

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 require and similar. These module systems must therefore use EarlyStageNode instead of DataFlow::Node.

Import path

import semmle.javascript.dataflow.internal.DataFlowNode

Direct supertypes

Predicates

getLocation

Gets the location of this data flow node.

toString

Gets a string representation of this data flow node.