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 CompilerPassexterns - 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.Callbackt - The current traversal.n - The current node.parent - The parent of the current node.public void enterScope(NodeTraversal t)
enterScope in interface NodeTraversal.ScopedCallbackpublic void exitScope(NodeTraversal t)
exitScope in interface NodeTraversal.ScopedCallbackpublic boolean shouldTraverse(NodeTraversal nodeTraversal, Node n, Node parent)
NodeTraversal.CallbackNodeTraversal.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.CallbacknodeTraversal - The current traversal.n - The current node.parent - The parent of the current node.Copyright © 2009-2020 Google. All Rights Reserved.