Class AbstractCompiler
- All Implemented Interfaces:
CompilerInputProvider
,SourceExcerptProvider
- Direct Known Subclasses:
Compiler
This is an abstract class, so that we can make the methods package-private.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enum
What point in optimizations we're in.Nested classes/interfaces inherited from interface com.google.javascript.jscomp.SourceExcerptProvider
SourceExcerptProvider.ExcerptFormatter, SourceExcerptProvider.SourceExcerpt
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionabstract void
addExportedNames
(Set<String> exportedVariableNames) Adds exported names to keep track.abstract void
addInputSourceMap
(String name, SourceMapInput sourceMap) Adds aSourceMapInput
for the givensourceFileName
, to be used for error reporting and source map combining.abstract void
final com.google.javascript.jscomp.AstFactory
Returns a new AstFactory that will add type information to the nodes it creates if and only if type checking has already happened and types have not been converted into colors.final com.google.javascript.jscomp.AstFactory
Returns a new AstFactory that will not add type information, regardless of whether type checking has already happened.com.google.javascript.jscomp.ExpressionDecomposer
com.google.javascript.jscomp.ExpressionDecomposer
createExpressionDecomposer
(Supplier<String> uniqueNameIdSupplier, com.google.common.collect.ImmutableSet<String> knownConstantFunctions, Scope scope) final LogFile
createOrReopenIndexedLog
(Class<?> owner, String firstNamePart, String... restNameParts) Provides logging access to a file with the specified name, differentiated by the index of the current pass.final LogFile
createOrReopenLog
(Class<?> owner, String firstNamePart, String... restNameParts) Provides logging access to a file with the specified name.Returns a new AstAnalyzer configured correctly to answer questions about Nodes in the AST currently being compiled.abstract String
getBase64SourceMapContents
(String sourceFileName) abstract CodingConvention
Gets the current coding convention.abstract ColorRegistry
Gets a central registry of colors from deserialized JS types.abstract IdGenerator
Gets the id generator for cross-module motion.abstract com.google.common.collect.ImmutableSet
<String> abstract ErrorManager
Gets the error manager.Gets the names that have been exported.abstract com.google.common.collect.ImmutableSet
<String> Gets the names of the properties defined in externs or null if GatherExternProperties pass was not run yet.abstract CompilerInput
Looks up an input (possibly an externs input) by input id.Returns the current life-cycle stage of the AST we're working on.abstract ModuleMap
abstract ModuleMetadataMap
abstract ReverseAbstractInterpreter
Get an interpreter for type analysis.abstract Node
getRoot()
Returns the root node of the AST, which includes both externs and source.abstract @Nullable Node
getScriptNode
(String filename) abstract @Nullable TypedScope
Gets the top scope.abstract boolean
Gets whether any file needed to transpile any featureabstract Iterable
<TypeMismatch> Gets the central registry of type violations.abstract JSTypeRegistry
Gets a central registry of type information from the compiled JS.abstract boolean
Whether the AST has been annotated with optimization colors.abstract boolean
Returns whether the typechecking passes have runvoid
initRuntimeLibraryTypedAsts
(com.google.common.base.Optional<ColorPool.Builder> colorPoolBuilder) Deserialize runtime libraries from a TypedAST packaged as a JAR resource and reconcile their Colors with the current inputs.final boolean
static boolean
isFillFileName
(String fileName) Returns whether a file name was created bycreateFillFileName(java.lang.String)
.abstract boolean
Returns `true` when type checking has run, but the type registry has been cleared.abstract Node
parseSyntheticCode
(String filename, String code) Parses code for injecting, and associate it with a given source file.abstract void
Report an error or warning.abstract void
reportAmbiguatePropertiesSummary
(Supplier<String> summarySupplier) Used by `AmbiguateProperties` to record a one-line summary of the work it accomplished, if any.abstract void
reportChangeToChangeScope
(Node changeScopeRoot) Mark modifications in a scope that is different than the Compiler.currentScope use this (eg, InlineVariables and many others)abstract void
Passes that make modifications in a scope that is different than the Compiler.currentScope use this (eg, InlineVariables and many others)abstract void
reportDisambiguatePropertiesSummary
(Supplier<String> summarySupplier) Used by `DisambiguateProperties` to record a one-line summary of the work it accomplished, if any.abstract void
setAccessorSummary
(com.google.javascript.jscomp.AccessorSummary summary) Sets the summary of properties with getters and setters.abstract void
setAnonymousFunctionNameMap
(VariableMap functionMap) Sets the naming map for anonymous functionsabstract void
setColorRegistry
(ColorRegistry registry) Sets the color registryabstract void
setCssNames
(Set<String> newCssNames) Sets the css names found during compilation.abstract void
setDefineNames
(Collection<String> defineNames) Adds @define names to keep track.abstract void
setIdGeneratorMap
(String serializedIdMappings) Sets the id generator for cross-module motion.abstract void
setInstrumentationMapping
(VariableMap instrumentationMapping) Sets the mapping for instrumentation parameter encoding.abstract void
setModuleMap
(ModuleMap moduleMap) abstract void
setModuleMetadataMap
(ModuleMetadataMap moduleMetadataMap) abstract void
setPropertyMap
(VariableMap propertyMap) Sets the property renaming mapabstract void
setStringMap
(VariableMap stringMap) Sets the string replacement mapabstract void
setVariableMap
(VariableMap variableMap) Sets the variable renaming mapabstract String
toSource()
Prints a node to source code.abstract String
Prints a node to source code.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.google.javascript.jscomp.SourceExcerptProvider
getSourceLine, getSourceLines, getSourceMapping, getSourceRegion
-
Constructor Details
-
AbstractCompiler
public AbstractCompiler()
-
-
Method Details
-
getInput
Looks up an input (possibly an externs input) by input id. May return null.- Specified by:
getInput
in interfaceCompilerInputProvider
-
getScriptNode
-
addExportedNames
Adds exported names to keep track. -
getExportedNames
Gets the names that have been exported. -
setDefineNames
Adds @define names to keep track. -
getDefineNames
-
setVariableMap
Sets the variable renaming map -
setPropertyMap
Sets the property renaming map -
setStringMap
Sets the string replacement map -
setCssNames
Sets the css names found during compilation. -
setInstrumentationMapping
Sets the mapping for instrumentation parameter encoding. -
setIdGeneratorMap
Sets the id generator for cross-module motion. -
getTranspiledFiles
public abstract boolean getTranspiledFiles()Gets whether any file needed to transpile any feature -
getCrossModuleIdGenerator
Gets the id generator for cross-module motion. -
setAnonymousFunctionNameMap
Sets the naming map for anonymous functions -
hasTypeCheckingRun
public abstract boolean hasTypeCheckingRun()Returns whether the typechecking passes have run -
hasOptimizationColors
public abstract boolean hasOptimizationColors()Whether the AST has been annotated with optimization colors. -
isTypeRegistryCleared
public abstract boolean isTypeRegistryCleared()Returns `true` when type checking has run, but the type registry has been cleared.See also `clearJSTypeRegistry()`.
-
getTypeRegistry
Gets a central registry of type information from the compiled JS. -
clearJSTypeRegistry
public abstract void clearJSTypeRegistry() -
getColorRegistry
Gets a central registry of colors from deserialized JS types. -
setColorRegistry
Sets the color registry -
getTopScope
Gets the top scope. -
report
Report an error or warning. -
getCodingConvention
Gets the current coding convention. -
reportChangeToEnclosingScope
Passes that make modifications in a scope that is different than the Compiler.currentScope use this (eg, InlineVariables and many others) -
reportChangeToChangeScope
Mark modifications in a scope that is different than the Compiler.currentScope use this (eg, InlineVariables and many others) -
reportDisambiguatePropertiesSummary
Used by `DisambiguateProperties` to record a one-line summary of the work it accomplished, if any.This information will be included in the tracer mode output, if that is enabled.
-
reportAmbiguatePropertiesSummary
Used by `AmbiguateProperties` to record a one-line summary of the work it accomplished, if any.This information will be included in the tracer mode output, if that is enabled.
-
getTypeMismatches
Gets the central registry of type violations. -
parseSyntheticCode
Parses code for injecting, and associate it with a given source file. -
toSource
Prints a node to source code. -
toSource
Prints a node to source code. -
getReverseAbstractInterpreter
Get an interpreter for type analysis. -
getLifeCycleStage
Returns the current life-cycle stage of the AST we're working on. -
isFillFileName
Returns whether a file name was created bycreateFillFileName(java.lang.String)
. -
initRuntimeLibraryTypedAsts
public void initRuntimeLibraryTypedAsts(com.google.common.base.Optional<ColorPool.Builder> colorPoolBuilder) Deserialize runtime libraries from a TypedAST packaged as a JAR resource and reconcile their Colors with the current inputs.This method must be called anywhere that Colors are reconciled for application to the AST. Otherwise Color information won't be consistent. `colorPoolBuilder` must be the same builder as used for the other inputs, and the caller retains ownership.
- Parameters:
colorPoolBuilder
- if present, includes inferred optimization colors on the deserialized ASTs. If absent, does not include colors.
-
getErrorManager
Gets the error manager. -
getRoot
Returns the root node of the AST, which includes both externs and source. -
getExternProperties
Gets the names of the properties defined in externs or null if GatherExternProperties pass was not run yet. -
addInputSourceMap
Adds aSourceMapInput
for the givensourceFileName
, to be used for error reporting and source map combining. -
getBase64SourceMapContents
-
setAccessorSummary
public abstract void setAccessorSummary(com.google.javascript.jscomp.AccessorSummary summary) Sets the summary of properties with getters and setters. -
createAstFactory
public final com.google.javascript.jscomp.AstFactory createAstFactory()Returns a new AstFactory that will add type information to the nodes it creates if and only if type checking has already happened and types have not been converted into colors.Note that the AstFactory will /not/ add colors to the AST if types have been converted into colors. The AstFactory does not understand colors, although color support could certainly be added if it proves useful.
-
createAstFactoryWithoutTypes
public final com.google.javascript.jscomp.AstFactory createAstFactoryWithoutTypes()Returns a new AstFactory that will not add type information, regardless of whether type checking has already happened. -
getAstAnalyzer
Returns a new AstAnalyzer configured correctly to answer questions about Nodes in the AST currently being compiled. -
createDefaultExpressionDecomposer
public com.google.javascript.jscomp.ExpressionDecomposer createDefaultExpressionDecomposer() -
createExpressionDecomposer
-
getModuleMetadataMap
-
setModuleMetadataMap
-
getModuleMap
-
setModuleMap
-
isDebugLoggingEnabled
public final boolean isDebugLoggingEnabled() -
getDebugLogFilterList
-
createOrReopenLog
@MustBeClosed public final LogFile createOrReopenLog(Class<?> owner, String firstNamePart, String... restNameParts) Provides logging access to a file with the specified name. -
createOrReopenIndexedLog
@MustBeClosed public final LogFile createOrReopenIndexedLog(Class<?> owner, String firstNamePart, String... restNameParts) Provides logging access to a file with the specified name, differentiated by the index of the current pass.Indexing helps in separating logs from different pass loops. The filename pattern is "[debug_log_directory]/[owner_name]/([name_part[i]]/){0,n-1}[pass_index]_[name_part[n]]".
-