void rewrite(Node scriptNode) { transpiled = false; renameTable = HashBasedTable.create(); NodeTraversal.traverse(compiler, scriptNode, this); if (transpiled) { scriptNode.putBooleanProp(Node.TRANSPILED, true); } if (!renameTable.isEmpty()) { NodeTraversal.traverse( compiler, scriptNode, new Es6RenameReferences(renameTable, /* typesOnly= */ true)); } }
new NodeTraversal(compiler, new Es6RenameReferences(renameMap)) .traverseInnerNode(block, block.getParent(), fScope);
@Override public void hotSwapScript(Node scriptRoot, Node originalRoot) { shouldAddTypesOnNewAstNodes = getShouldAddTypesOnNewAstNodes(); NodeTraversal.traverse(compiler, scriptRoot, new CollectUndeclaredNames()); NodeTraversal.traverse(compiler, scriptRoot, this); NodeTraversal.traverse(compiler, scriptRoot, new Es6RenameReferences(renameTable)); LoopClosureTransformer transformer = new LoopClosureTransformer(); NodeTraversal.traverse(compiler, scriptRoot, transformer); transformer.transformLoopClosure(); rewriteDeclsToVars(); TranspilationPasses.maybeMarkFeaturesAsTranspiledAway(compiler, transpiledFeatures); }
@Override public void process(Node externs, Node root) { NodeTraversal.traverseRootsEs6(compiler, new CollectUndeclaredNames(), externs, root); NodeTraversal.traverseRootsEs6(compiler, this, externs, root); NodeTraversal.traverseRootsEs6(compiler, new Es6RenameReferences(renameMap), externs, root); LoopClosureTransformer transformer = new LoopClosureTransformer(); NodeTraversal.traverseRootsEs6(compiler, transformer, externs, root); transformer.transformLoopClosure(); varify(); NodeTraversal.traverseRootsEs6( compiler, new RewriteBlockScopedFunctionDeclaration(), externs, root); }
@Override public void hotSwapScript(Node scriptRoot, Node originalRoot) { NodeTraversal.traverseEs6(compiler, scriptRoot, new CollectUndeclaredNames()); NodeTraversal.traverseEs6(compiler, scriptRoot, this); NodeTraversal.traverseEs6(compiler, scriptRoot, new Es6RenameReferences(renameMap)); LoopClosureTransformer transformer = new LoopClosureTransformer(); NodeTraversal.traverseEs6(compiler, scriptRoot, transformer); transformer.transformLoopClosure(); varify(); NodeTraversal.traverseEs6(compiler, scriptRoot, new RewriteBlockScopedFunctionDeclaration()); }
@Override public void process(Node externs, Node root) { shouldAddTypesOnNewAstNodes = getShouldAddTypesOnNewAstNodes(); NodeTraversal.traverse(compiler, root, new CollectUndeclaredNames()); NodeTraversal.traverse(compiler, root, this); // Needed for let / const declarations in .d.ts externs. TranspilationPasses.processTranspile(compiler, externs, transpiledFeatures, this); NodeTraversal.traverse(compiler, root, new Es6RenameReferences(renameTable)); LoopClosureTransformer transformer = new LoopClosureTransformer(); NodeTraversal.traverse(compiler, root, transformer); transformer.transformLoopClosure(); rewriteDeclsToVars(); TranspilationPasses.maybeMarkFeaturesAsTranspiledAway(compiler, transpiledFeatures); }
compiler, new Es6RenameReferences(renameTable), new Es6SyntacticScopeCreator(compiler)) .traverseInnerNode(block, block.getParent(), fScope);