final class PolymerPass extends NodeTraversal.AbstractPostOrderCallback implements HotSwapCompilerPass
Only works with Polymer version 0.8 and above.
Design and examples: https://github.com/google/closure-compiler/wiki/Polymer-Pass
| Modifier and Type | Class and Description |
|---|---|
(package private) static class |
PolymerPass.MemberDefinition
Any member of a Polymer element or Behavior.
|
| Modifier and Type | Field and Description |
|---|---|
private AbstractCompiler |
compiler |
private GlobalNamespace |
globalNames |
private java.util.Set<java.lang.String> |
nativeExternsAdded |
private Node |
polymerElementExterns |
private com.google.common.collect.ImmutableList<Node> |
polymerElementProps |
private java.util.Map<java.lang.String,java.lang.String> |
tagNameMap |
(package private) static java.lang.String |
VIRTUAL_FILE |
| Constructor and Description |
|---|
PolymerPass(AbstractCompiler compiler) |
| Modifier and Type | Method and Description |
|---|---|
private void |
appendPolymerElementExterns(PolymerClassDefinition def)
Duplicates the PolymerElement externs with a different element base class if needed.
|
void |
hotSwapScript(Node scriptRoot,
Node originalRoot)
Process the JS with root node root.
|
static boolean |
isPolymerCall(Node value) |
void |
process(Node externs,
Node root)
Process the JS with root node root.
|
private void |
rewriteClassDefinition(Node node,
Node parent,
NodeTraversal traversal) |
void |
visit(NodeTraversal traversal,
Node node,
Node parent)
Visits a node in postorder (after its children have been visited).
|
shouldTraversestatic final java.lang.String VIRTUAL_FILE
private final AbstractCompiler compiler
private final java.util.Map<java.lang.String,java.lang.String> tagNameMap
private Node polymerElementExterns
private java.util.Set<java.lang.String> nativeExternsAdded
private com.google.common.collect.ImmutableList<Node> polymerElementProps
private GlobalNamespace globalNames
PolymerPass(AbstractCompiler compiler)
public void process(Node externs, Node root)
CompilerPassprocess in interface CompilerPassexterns - Top of external JS treeroot - Top of JS treepublic void hotSwapScript(Node scriptRoot, Node originalRoot)
HotSwapCompilerPasshotSwapScript in interface HotSwapCompilerPassscriptRoot - Root node corresponding to the file that is modified,
should be of type Token.SCRIPT.originalRoot - Root node corresponding to the original version of the
file that is modified. Should be of type token.SCRIPT.public void visit(NodeTraversal traversal, Node node, Node parent)
NodeTraversal.CallbackVisits a node in postorder (after its children have been visited).
A node is visited only if all its parents should be traversed
(NodeTraversal.Callback.shouldTraverse(NodeTraversal, Node, Node)).
Implementations can have side effects (e.g. modifying the parse tree).
visit in interface NodeTraversal.Callbackprivate void rewriteClassDefinition(Node node, Node parent, NodeTraversal traversal)
private void appendPolymerElementExterns(PolymerClassDefinition def)
public static boolean isPolymerCall(Node value)