class GenerateExports extends java.lang.Object implements CompilerPass
Modifier and Type | Field and Description |
---|---|
private boolean |
allowNonGlobalExports |
private AbstractCompiler |
compiler |
private java.util.Set<java.lang.String> |
exportedVariables |
private java.lang.String |
exportPropertyFunction |
private java.lang.String |
exportSymbolFunction |
private static java.lang.String |
PROTOTYPE_PROPERTY |
Constructor and Description |
---|
GenerateExports(AbstractCompiler compiler,
boolean allowNonGlobalExports,
java.lang.String exportSymbolFunction,
java.lang.String exportPropertyFunction)
Creates a new generate exports compiler pass.
|
Modifier and Type | Method and Description |
---|---|
private void |
addExportMethod(java.util.Map<java.lang.String,Node> exports,
java.lang.String export,
Node context) |
private void |
addExtern(java.lang.String export) |
private void |
addStatement(Node context,
Node stmt) |
private void |
annotate(Node node) |
(package private) java.util.Set<java.lang.String> |
getExportedVariableNames() |
private static java.lang.String |
getPropertyName(Node node)
Assumes the node type is correct and returns the property name
(not fully qualified).
|
private Node |
getSynthesizedExternsRoot()
Lazily create a "new" externs root for undeclared variables.
|
void |
process(Node externs,
Node root)
Process the JS with root node root.
|
private void |
recordExportSymbol(java.lang.String qname) |
private static final java.lang.String PROTOTYPE_PROPERTY
private final AbstractCompiler compiler
private final java.lang.String exportSymbolFunction
private final java.lang.String exportPropertyFunction
private final boolean allowNonGlobalExports
private final java.util.Set<java.lang.String> exportedVariables
GenerateExports(AbstractCompiler compiler, boolean allowNonGlobalExports, java.lang.String exportSymbolFunction, java.lang.String exportPropertyFunction)
compiler
- JS compiler.exportSymbolFunction
- function used for exporting symbols.exportPropertyFunction
- function used for exporting property names.java.util.Set<java.lang.String> getExportedVariableNames()
public void process(Node externs, Node root)
CompilerPass
process
in interface CompilerPass
externs
- Top of external JS treeroot
- Top of JS treeprivate void addExtern(java.lang.String export)
private void recordExportSymbol(java.lang.String qname)
private void addExportMethod(java.util.Map<java.lang.String,Node> exports, java.lang.String export, Node context)
private void annotate(Node node)
private static java.lang.String getPropertyName(Node node)
node
- nodeprivate Node getSynthesizedExternsRoot()