public final class CrossChunkReferenceCollector extends java.lang.Object implements NodeTraversal.ScopedCallback, CompilerPass
CrossChunkCodeMotion
.Modifier and Type | Method and Description |
---|---|
void |
enterScope(NodeTraversal t)
Updates block stack and invokes any additional behavior.
|
void |
exitScope(NodeTraversal t)
Updates block stack and invokes any additional behavior.
|
void |
process(Node root) |
void |
process(Node externs,
Node root)
Convenience method for running this pass over a tree with this
class as a callback.
|
boolean |
shouldTraverse(NodeTraversal nodeTraversal,
Node n,
Node parent)
Visits a node in preorder (before its children) and decides whether its children should be
traversed.
|
void |
visit(NodeTraversal t,
Node n,
Node parent)
For each node, update the block stack and reference collection
as appropriate.
|
public void process(Node externs, Node root)
process
in interface CompilerPass
externs
- Top of external JS treeroot
- Top of JS treepublic void process(Node root)
public void visit(NodeTraversal t, Node n, Node parent)
visit
in interface NodeTraversal.Callback
t
- The current traversal.n
- The current node.parent
- The parent of the current node.public void enterScope(NodeTraversal t)
enterScope
in interface NodeTraversal.ScopedCallback
public void exitScope(NodeTraversal t)
exitScope
in interface NodeTraversal.ScopedCallback
public boolean shouldTraverse(NodeTraversal nodeTraversal, Node n, Node parent)
NodeTraversal.Callback
NodeTraversal.Callback.shouldTraverse(NodeTraversal, Node, Node)
in preorder and by NodeTraversal.Callback.visit(NodeTraversal,
Node, Node)
in postorder.
Siblings are always visited left-to-right.
Implementations can have side-effects (e.g. modify the parse tree). Removing the current node is legal, but removing or reordering nodes above the current node may cause nodes to be visited twice or not at all.
shouldTraverse
in interface NodeTraversal.Callback
nodeTraversal
- The current traversal.n
- The current node.parent
- The parent of the current node.Copyright © 2009-2020 Google. All Rights Reserved.