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
InjectRuntimeLibraries
andInjectTranspilationRuntimeLibraries
.
-
-
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 void
hotSwapScript(Node scriptRoot, Node originalRoot)
Process the JS with root node root.void
process(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 byIsolatePolyfills
to prevent their deletion.
-
-
Method Detail
-
hotSwapScript
public void hotSwapScript(Node scriptRoot, Node originalRoot)
Description copied from interface:HotSwapCompilerPass
Process the JS with root node root. This is supposed to be significantly faster compared to corresponding full-compiler passes.- Specified by:
hotSwapScript
in 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:CompilerPass
Process the JS with root node root. Can modify the contents of each Node tree- Specified by:
process
in interfaceCompilerPass
- Parameters:
externs
- Top of external JS treeroot
- Top of JS tree
-
-