ConstWhether the subtree always jumps away instead of being left normally, i.e. whether a non-default exit
point happens in every branch. The control dependencies in context (like a promise's) hold for the whole subtree.
Whatever from completes at continues with target, but only under the given control dependency.
Hand over the very dependency the vertices behind the branch carry, so both say the same thing.
Whether the subtree can be left normally instead of always jumping away.
Whatever from completes at continues with next.
The node control flow enters the given subtree at.
The parts run one after the other and the last one continues with last, if it is given.
Parts that are undefined are skipped, which keeps optional arguments cheap to handle.
Optionallast: NodeIdthe node control flow enters the sequence at, or last if there is nothing to enter
Whether the node runs as part of a larger expression instead of as a statement of its own.
Whether the node runs as a statement of the program instead of as part of a larger expression. Assignments count as statements wherever they stand.
Every jump of the given kind within from lands on target, which reads a break as it decides how often a loop runs.
Readonlyname: "ControlFlow"A function defined within a promise: forcing the promise only creates it, its body runs once it is called, so neither the definition nor its body depend on the call holding the promise.
The parts before from run in sequence, the ones after it are alternatives of which at most one runs.
Whichever one it is, control joins on joinsAt.
the graph to record in
the arguments of the call, in the order they run
the index the alternatives start at
the call the alternatives belong to
whether one alternative runs when none of the others matched
the node control flow enters the call at
The jumps within a promise, an argument or default R evaluates only if holder forces it. A jump
holder,byPromise dependency on holder, and control may resume at holder as well,
until FunctionSemantics.settleJumpsInPromises settles it.the exit points the holder takes over from the promise
What is handed to holder runs only once holder forces it, so it is analyzed under that control
dependency: a definition within a promise may not happen, and what it would overwrite stays visible.
Records the control flow of a program in the DataflowGraph while the dataflow analysis walks it. The ControlFlowGraph is a view on what is recorded here.
The control flow is modeled in post-order: everything a construct is made of runs before the construct itself, so its own vertex is where its parts join again and where it is left.