@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);
}