| modules |
ES2015 |
mdn01 mdn02 |
Yes |
|
Yes |
transform-es2015-modules-commonjs |
9 |
Babel transform not used as modules are supported by Webpack 2. Used by AVA based unit testing |
| function.name property |
ES2015 |
mdn03 |
Yes |
|
Yes |
transform-es2015-function-name |
6 LTS |
Transform used for browser. |
| Array#includes |
ES2016 |
mdn05 |
Yes |
core.js |
Yes |
NA |
6 LTS |
|
| exponentiation operator |
ES2016 |
mdn04 |
Yes |
|
Yes |
transform-exponentiation-operator |
8 LTS |
|
| Object.{values,entries} |
ES2017 |
mdn06 mdn07 |
Yes |
core.js |
Yes |
NA |
8 LTS |
|
| String#{padStart,padEnd} |
ES2017 |
mdn08 mdn09 |
Yes |
core.js |
Yes |
NA |
8 LTS |
|
| Object.getOwnPropertyDescriptors |
ES2017 |
mdn10 |
Yes |
core.js |
Yes |
NA |
8 LTS |
|
| trailing commas from function calls |
ES2017 |
2ality00 |
Yes |
|
Yes |
syntax-trailing-function-commas |
8 LTS |
|
| Async Functions |
ES2017 |
mdn11 |
Yes |
|
Yes |
transform-async-to-generator |
8 LTS |
|
| Shared memory and atomics |
ES2017 |
mdn13 |
See notes |
|
Yes |
|
9 |
Typescript supports the syntax. Implementation support javascript runtime and version |
| Lifting Template Literal Restriction |
ES2018 |
mdn14 2ality02 |
|
|
#12700 |
V7 Core See PR #274 |
9 |
On TypeScript 3.2 roadmap |
s (dotAll) flag for regular expressions |
ES2018 |
2ality10 |
Yes |
|
|
transform-modern-regexp |
9 |
|
| RegExp named capture groups |
ES2018 |
2ality09 |
Yes |
|
|
transform-modern-regexp |
10 |
Babel may also support through regexpu See babel proposals #35 |
| RegExp Lookbehind Assertions |
ES2018 |
2ality07 |
|
|
|
No. See transform-modern-regexp #5 |
9 |
|
| RegExp Unicode Property Escapes |
ES2018 |
2ality08 |
Yes |
|
|
transform-unicode-property-regex |
10 |
|
| Rest/Spread Properties |
ES2018 |
2ality04 |
Yes |
|
Yes |
transform-object-rest-spread |
8 LTS |
|
| Promise#finally |
ES2018 |
2ality11 |
Yes |
core.js |
Yes |
|
10 |
promise.prototype.finally |
| Asynchronous Iteration |
ES2018 |
2ality05 |
Yes |
|
Yes |
transform-async-generator-functions |
10 |
|
| Optional catch binding |
ES2019 |
2ality14 |
Yes |
|
Yes |
transform-optional-catch-binding |
|
Added to chrome codebase 2018-01-19 |
| JSON superset |
ES2019 |
|
|
|
|
[proposal-json-strings ] |
|
|
| Function#toString revision |
Stage 3 |
2ality01 |
|
|
|
|
10. 6 LTS (Partial) |
|
| global |
Stage 3 |
2ality03 |
Yes |
core.js |
#12902 |
|
|
|
| import() |
Stage 3 |
2ality06 |
Yes |
|
Yes |
syntax-dynamic-import |
|
Babel syntax/transform not used as dynamic modules are supported by Webpack 2. Used by AVA based unit testing |
| Legacy RegExp features in JavaScript |
Stage 3 |
|
|
|
|
|
|
|
| BigInt |
Stage 3 |
2ality12 |
|
|
#15096 |
PR #6015 |
|
On TypeScript 3.2 roadmap |
import.meta |
Stage 3 |
2ality15 |
Partial |
|
Yes |
|
10. |
See Typescript PR #23327 for instructions how to use |
| Private instance methods and accessors |
Stage 3 |
2ality13 |
|
|
#9950 |
V7 transform-class-properties |
|
See #7842 Merged 2018-05-18 for 7.0.0-beta.48 |
| Array#{flat,flatMap} |
Stage 3 |
|
Yes |
core.sj |
|
|
|
|
| Instance class fields and methods |
Stage 3 |
2ality13 |
Yes |
|
Yes. See comment |
transform-class-properties |
|
Bug in TypeScript #12212 does not pass through to Babel |
| Static class fields and methods |
Stage 3 |
2ality13 |
Yes |
|
Yes. See comment |
transform-class-properties |
|
Bug in TypeScript #12212 does not pass through to Babel |
| String#{trimStart,trimEnd} |
Stage 3 |
|
Yes |
core.js |
|
|
|
|
| String#matchAll |
Stage 3 |
|
Yes |
core.js |
|
|
|
|
| Symbol#description |
Stage 3 |
|
|
core.js |
|
|
|
|
| Object.fromEntries |
Stage 3 |
|
|
core.js |
PR #26149 |
|
|
|
| Numeric separators |
Stage 2 |
|
|
|
2.7 #20582 |
transform-numeric-separator |
|
|
| function.sent metaproperty |
Stage 2 |
|
Yes |
|
|
transform-function-sent |
|
|
| Decorators |
Stage 2 |
|
Yes |
|
Yes |
transform-decorators-legacy |
|
Needs write in Babel |
| Throw expressions |
Stage 2 |
|
|
|
|
|
|
|
| Atomics.waitAsync |
Stage 2 |
|
|
|
|
|
|
|
| Hashbang Grammar |
Stage 2 |
|
|
|
|
|
|
|
| WeakRefs |
Stage 2 |
|
|
|
|
|
|
|
| Top-level await |
Stage 2 |
|
|
|
|
|
|
|
| New Set methods |
Stage 2 |
|
|
|
|
|
|
|
Well-formed JSON.stringify |
Stage 2 |
|
|
|
|
|
|
|
| Function#toString() censorship |
Stage 2 |
|
|
|
|
|
|
|
| Realms |
Stage 2 |
|
|
|
|
|
|
|
| ArrayBuffer#transfer |
Stage 2 |
|
|
|
|
|
|
|
| RegExp Match array offsets |
Stage 2 |
|
|
|
|
|
|
|
| Sequence properties in Unicode property escapes |
Stage 2 |
|
|
|
|
|
|
|
| InterpreterDirective |
Stage 2 |
|
|
|
|
|
|
|
| Temporal |
Stage 2 |
|
|
|
|
|
|
|
| export v from "mod"; statements |
Stage 1 |
|
|
|
|
|
|
|
| Observable |
Stage 1 |
|
Yes |
core.js |
|
|
|
core-js/fn/observable |
| Frozen Realms |
Stage 1 |
|
|
|
|
|
|
|
| Math Extensions |
Stage 1 |
|
Yes |
core.js |
|
|
|
|
of and from on collection constructors |
Stage 1 |
|
Yes |
core.js |
|
|
|
|
| Generator arrow functions |
Stage 1 |
|
|
|
|
|
|
|
| Promise.try |
Stage 1 |
|
Yes |
core.js |
|
|
|
|
| Optional Chaining |
Stage 1 |
|
|
|
|
|
|
|
| Math.signbit: IEEE-754 sign bit |
Stage 1 |
|
Yes |
core.js |
|
|
|
|
| Error stacks |
Stage 1 |
|
|
|
|
|
|
|
| do expressions |
Stage 1 |
|
|
|
|
|
|
|
| Float16 on TypedArrays, DataView, Math.hfround |
Stage 1 |
|
|
|
|
|
|
|
| [Number.{parseInt,parseFloat} changes |
Stage 1 |
|
|
|
|
|
|
|
| Binary AST |
Stage 1 |
|
|
|
|
|
|
|
| Pipeline Operator |
Stage 1 |
|
|
|
|
|
|
|
| Extensible numeric literals |
Stage 1 |
|
|
|
|
|
|
|
| First-Class Protocols |
Stage 1 |
|
|
|
|
|
|
|
| Nullary coalescing operator |
Stage 1 |
|
|
|
|
|
|
|
| Partial application |
Stage 1 |
|
|
|
|
|
|
|
| Cancellation API |
Stage 1 |
|
|
|
|
|
|
|
| String#replaceAll |
Stage 1 |
|
|
|
|
|
|
|
| String#codePoints |
Stage 1 |
|
|
|
|
|
|
|
| Distinguishing literal strings |
Stage 1 |
|
|
|
|
|
|
|
| Object.freeze + Object.seal syntax |
Stage 1 |
|
|
|
|
|
|
|
| Block Params |
Stage 1 |
|
|
|
|
|
|
|
| {BigInt,Number}.fromString |
Stage 1 |
|
|
|
|
|
|
|
| Math.seededRandoms |
Stage 1 |
|
|
|
|
|
|
|
| Maximally minimal mixins |
Stage 1 |
|
|
|
|
|
|
|
| Getting last item from Array |
Stage 1 |
|
|
|
|
|
|
|
| Collection methods |
Stage 1 |
|
|
|
|
|
|
|
| Richer Keys |
Stage 1 |
|
|
|
|
|
|
|
| Slice notation |
Stage 1 |
|
|
|
|
|
|
|
| Logical Assignment Operators |
Stage 1 |
|
|
|
|
|
|
|
| Module Keys |
Stage 1 |
|
|
|
|
|
|
|
| Class Static Block |
Stage 1 |
|
|
|
|
|
|
|
| class Access Expressions |
Stage 1 |
|
|
|
|
|
|
|
| Pattern Matching |
Stage 1 |
|
|
|
|
|
|
|
| Explicit Resource Management |
Stage 1 |
|
|
|
|
|
|
|
| Dynamic Modules |
Stage 1 |
|
|
|
|
|
|
|
| JavaScript Standard Library |
Stage 1 |
|
|
|
|
|
|
|
| "use modules" |
Stage 1 |
|
|
|
|
|
|
|
| for-in mechanics |
Stage 1 |
|
|
|
|
|
|
|
| Uniform Date.parse |
Stage 1 |
|
|
|
|
|
|
|
| JSON.parse source text access |
Stage 1 |
|
|
|
|
|
|
|