class ProcessTweaks extends java.lang.Object implements CompilerPass
Modifier and Type | Class and Description |
---|---|
private class |
ProcessTweaks.CollectTweaks
Processes all calls to goog.tweak functions.
|
private static class |
ProcessTweaks.CollectTweaksResult |
private static class |
ProcessTweaks.TweakFunction
An enum of goog.tweak functions.
|
private static class |
ProcessTweaks.TweakFunctionCall
Holds information about a call to a goog.tweak function.
|
private class |
ProcessTweaks.TweakInfo
Stores information about a single tweak.
|
Modifier and Type | Field and Description |
---|---|
private AbstractCompiler |
compiler |
private java.util.SortedMap<java.lang.String,Node> |
compilerDefaultValueOverrides |
private static com.google.common.base.CharMatcher |
ID_MATCHER |
(package private) static DiagnosticType |
INVALID_TWEAK_DEFAULT_VALUE_WARNING |
(package private) static DiagnosticType |
INVALID_TWEAK_ID_ERROR |
(package private) static DiagnosticType |
NON_GLOBAL_TWEAK_INIT_ERROR |
(package private) static DiagnosticType |
NON_LITERAL_TWEAK_ID_ERROR |
private boolean |
stripTweaks |
private static java.util.Map<java.lang.String,ProcessTweaks.TweakFunction> |
TWEAK_FUNCTIONS_MAP |
(package private) static DiagnosticType |
TWEAK_MULTIPLY_REGISTERED_ERROR |
(package private) static DiagnosticType |
TWEAK_OVERRIDE_AFTER_REGISTERED_ERROR |
(package private) static DiagnosticType |
TWEAK_WRONG_GETTER_TYPE_WARNING |
(package private) static DiagnosticType |
UNKNOWN_TWEAK_WARNING |
Constructor and Description |
---|
ProcessTweaks(AbstractCompiler compiler,
boolean stripTweaks,
java.util.Map<java.lang.String,Node> compilerDefaultValueOverrides) |
Modifier and Type | Method and Description |
---|---|
private void |
applyCompilerDefaultValueOverrides(java.util.Map<java.lang.String,ProcessTweaks.TweakInfo> tweakInfos)
Sets the default values of tweaks based on compiler options.
|
private ProcessTweaks.CollectTweaksResult |
collectTweaks(Node root)
Finds all calls to goog.tweak functions and emits warnings/errors if any
of the calls have issues.
|
private Node |
createCompilerDefaultValueOverridesVarNode(Node sourceInformationNode)
Creates a JS object that holds a map of tweakId -> default value override.
|
void |
process(Node externs,
Node root)
Process the JS with root node root.
|
private boolean |
replaceGetCompilerOverridesCalls(java.util.List<ProcessTweaks.TweakFunctionCall> calls)
Passes the compiler default value overrides to the JS by replacing calls
to goog.tweak.getCompilerOverrids_ with a map of tweak ID->default value;
|
private boolean |
stripAllCalls(java.util.Map<java.lang.String,ProcessTweaks.TweakInfo> tweakInfos)
Removes all CALL nodes in the given TweakInfos, replacing calls to getter
functions with the tweak's default value.
|
private final AbstractCompiler compiler
private final boolean stripTweaks
private final java.util.SortedMap<java.lang.String,Node> compilerDefaultValueOverrides
private static final com.google.common.base.CharMatcher ID_MATCHER
static final DiagnosticType UNKNOWN_TWEAK_WARNING
static final DiagnosticType TWEAK_MULTIPLY_REGISTERED_ERROR
static final DiagnosticType NON_LITERAL_TWEAK_ID_ERROR
static final DiagnosticType INVALID_TWEAK_DEFAULT_VALUE_WARNING
static final DiagnosticType NON_GLOBAL_TWEAK_INIT_ERROR
static final DiagnosticType TWEAK_OVERRIDE_AFTER_REGISTERED_ERROR
static final DiagnosticType TWEAK_WRONG_GETTER_TYPE_WARNING
static final DiagnosticType INVALID_TWEAK_ID_ERROR
private static final java.util.Map<java.lang.String,ProcessTweaks.TweakFunction> TWEAK_FUNCTIONS_MAP
ProcessTweaks(AbstractCompiler compiler, boolean stripTweaks, java.util.Map<java.lang.String,Node> compilerDefaultValueOverrides)
public void process(Node externs, Node root)
CompilerPass
process
in interface CompilerPass
externs
- Top of external JS treeroot
- Top of JS treeprivate boolean replaceGetCompilerOverridesCalls(java.util.List<ProcessTweaks.TweakFunctionCall> calls)
private boolean stripAllCalls(java.util.Map<java.lang.String,ProcessTweaks.TweakInfo> tweakInfos)
private Node createCompilerDefaultValueOverridesVarNode(Node sourceInformationNode)
private void applyCompilerDefaultValueOverrides(java.util.Map<java.lang.String,ProcessTweaks.TweakInfo> tweakInfos)
private ProcessTweaks.CollectTweaksResult collectTweaks(Node root)
ProcessTweaks.TweakInfo
structures, keyed by tweak ID.