Downleveling
Arrow functions
The arrow function is downleveled to a regular function
when target
is set to ES5
.
Async and await
When target
is ES5
or ES6
with lib
set to ["es2015", "dom"]
, the transpiler will rewrite async
functions to use generator functions and a helper.
This is transpiled to the following JavaScript code:
If you are facing issues with the compiled JavaScript, you may need to include regenerator-runtime from Facebook's regenerator compatibility compiler that this is based on.
Trade offs
Downleveling often creates a much larger output JavaScript file than if the program had been written in JavaScript to begin with. Some features are also less efficient when polyfilled, and certain features cannot be fully downleveled like proxies and top-level await.