Package com.google.javascript.jscomp
Class RewritePolyfills
- java.lang.Object
-
- com.google.javascript.jscomp.RewritePolyfills
-
- All Implemented Interfaces:
CompilerPass,HotSwapCompilerPass
public class RewritePolyfills extends java.lang.Object implements HotSwapCompilerPass
Injects polyfill libraries to ensure that ES6+ library functions are available.Also runs if polyfill isolation is enabled, even if polyfill injection is disabled, in order to prevent deletion of a required library function by dead code elimination.
TODO(b/120486392): consider merging this pass with
InjectRuntimeLibrariesandInjectTranspilationRuntimeLibraries.
-
-
Constructor Summary
Constructors Constructor Description RewritePolyfills(AbstractCompiler compiler, boolean injectPolyfills, boolean isolatePolyfills)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidhotSwapScript(Node scriptRoot, Node originalRoot)Process the JS with root node root.voidprocess(Node externs, Node root)Process the JS with root node root.
-
-
-
Constructor Detail
-
RewritePolyfills
public RewritePolyfills(AbstractCompiler compiler, boolean injectPolyfills, boolean isolatePolyfills)
- Parameters:
injectPolyfills- if true, injects $jscomp.polyfill initializations into the first input. if false, no polyfills are injected.isolatePolyfills- if true, adds externs for library functions used byIsolatePolyfillsto prevent their deletion.
-
-
Method Detail
-
hotSwapScript
public void hotSwapScript(Node scriptRoot, Node originalRoot)
Description copied from interface:HotSwapCompilerPassProcess the JS with root node root. This is supposed to be significantly faster compared to corresponding full-compiler passes.- Specified by:
hotSwapScriptin interfaceHotSwapCompilerPass- Parameters:
scriptRoot- Root node corresponding to the file that is modified, should be of typeToken.SCRIPT.originalRoot- Root node corresponding to the original version of the file that is modified. Should be of typetoken.SCRIPT.
-
process
public void process(Node externs, Node root)
Description copied from interface:CompilerPassProcess the JS with root node root. Can modify the contents of each Node tree- Specified by:
processin interfaceCompilerPass- Parameters:
externs- Top of external JS treeroot- Top of JS tree
-
-