public final class ProcessEs6Modules extends NodeTraversal.AbstractPostOrderCallback
Modifier and Type | Class and Description |
---|---|
private static class |
ProcessEs6Modules.ModuleOriginalNamePair |
private static class |
ProcessEs6Modules.NameNodePair |
private class |
ProcessEs6Modules.RenameGlobalVars
Traverses a node tree and
Appends a suffix to all global variable names defined in this module.
|
Modifier and Type | Field and Description |
---|---|
private java.util.Set<java.lang.String> |
alreadyRequired |
private java.util.Set<java.lang.String> |
classes |
private Compiler |
compiler |
private static java.lang.String |
DEFAULT_EXPORT_NAME |
private java.util.Map<java.lang.String,ProcessEs6Modules.NameNodePair> |
exportMap
Maps exported names to their names in current module.
|
private java.util.Map<java.lang.String,ProcessEs6Modules.ModuleOriginalNamePair> |
importMap
Maps symbol names to a pair of (moduleName, originalName).
|
private boolean |
isEs6Module |
(package private) static DiagnosticType |
LHS_OF_GOOG_REQUIRE_MUST_BE_CONST |
private ES6ModuleLoader |
loader |
(package private) static DiagnosticType |
NAMESPACE_IMPORT_CANNOT_USE_STAR |
private boolean |
reportDependencies |
private int |
scriptNodeCount |
private java.util.Set<java.lang.String> |
typedefs |
private static com.google.common.collect.ImmutableSet<java.lang.String> |
USE_STRICT_ONLY |
(package private) static DiagnosticType |
USELESS_USE_STRICT_DIRECTIVE |
Constructor and Description |
---|
ProcessEs6Modules(Compiler compiler,
ES6ModuleLoader loader,
boolean reportDependencies)
Creates a new ProcessEs6Modules instance which can be used to rewrite
ES6 modules to a concatenable form.
|
Modifier and Type | Method and Description |
---|---|
private static void |
checkStrictModeDirective(NodeTraversal t,
Node n) |
void |
processFile(Node root) |
private void |
rewriteRequires(Node script) |
void |
visit(NodeTraversal t,
Node n,
Node parent)
Visits a node in postorder (after its children have been visited).
|
private void |
visitExport(NodeTraversal t,
Node export,
Node parent) |
private void |
visitImport(NodeTraversal t,
Node importDecl,
Node parent) |
private void |
visitScript(NodeTraversal t,
Node script) |
shouldTraverse
private static final java.lang.String DEFAULT_EXPORT_NAME
static final DiagnosticType LHS_OF_GOOG_REQUIRE_MUST_BE_CONST
static final DiagnosticType USELESS_USE_STRICT_DIRECTIVE
static final DiagnosticType NAMESPACE_IMPORT_CANNOT_USE_STAR
private static final com.google.common.collect.ImmutableSet<java.lang.String> USE_STRICT_ONLY
private final ES6ModuleLoader loader
private final Compiler compiler
private int scriptNodeCount
private java.util.Map<java.lang.String,ProcessEs6Modules.NameNodePair> exportMap
private java.util.Map<java.lang.String,ProcessEs6Modules.ModuleOriginalNamePair> importMap
private java.util.Set<java.lang.String> classes
private java.util.Set<java.lang.String> typedefs
private java.util.Set<java.lang.String> alreadyRequired
private boolean isEs6Module
private boolean reportDependencies
public ProcessEs6Modules(Compiler compiler, ES6ModuleLoader loader, boolean reportDependencies)
compiler
- The compilerloader
- The module loader which is used to locate ES6 modulesreportDependencies
- Whether the rewriter should report dependency
information to the Closure dependency manager. This needs to be true
if we want to sort ES6 module inputs correctly. Note that goog.provide
and goog.require calls will still be generated if this argument is
false.public void processFile(Node root)
public void visit(NodeTraversal t, Node n, Node parent)
NodeTraversal.Callback
Visits 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).
private void visitImport(NodeTraversal t, Node importDecl, Node parent)
private void visitExport(NodeTraversal t, Node export, Node parent)
private void visitScript(NodeTraversal t, Node script)
private static void checkStrictModeDirective(NodeTraversal t, Node n)
private void rewriteRequires(Node script)