| Compilers/polyfills | Desktop browsers | Servers/runtimes | Mobile | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Feature name | Current browser | Traceur | Babel 6 + |
Babel 7 + |
Babel 7 + |
Closure 2018.02 | Closure 2018.10 | Closure 2018.11 | Closure 2018.12 | Closure 2019.01 | Closure 2019.01 | Closure 2019.02 | Closure 2019.03 | Closure 2019.03 | Type- Script + |
Type- Script + |
Type- Script + |
Type- Script + |
Type- Script + |
Type- Script + |
Type- Script + |
Type- Script + |
Type- Script + |
es7-shim | IE 11 | Edge 15 | Edge 16 | Edge 17 | Edge 18 | Edge 19 Preview | FF 59 | FF 60 ESR | FF 61 | FF 62 | FF 63 | FF 64 | FF 65 | FF 66 | FF 67 | FF 68 Beta | FF 69 Nightly | OP 12.10 | CH 67, OP 54 |
CH 68, OP 55 |
CH 69, OP 56 |
CH 70, OP 57 |
CH 71, OP 58 |
CH 72, OP 59 |
CH 73, OP 60 |
CH 74, OP 61 |
CH 75, OP 62 |
CH 76, OP 63 |
CH 77, OP 64 |
SF 10.1 | SF 11 | SF 11.1 | SF 12 | SF 12.1 | SF TP | WK | PJS | Node 0.10[1] | Node 0.12[2] | Node 4[2] | Node >=6.5 <7[2] | Node 7.0-7.5[2] | Node >=7.6 <8[2] | Node >=8.0 <8.3[2] | Node >=8.3 <8.7[2] | Node >=8.7 <8.10[2] | Node >=8.10 <9[2] | Node >=10.0 <10.4[2] | Node >=10.4 <10.9[2] | Node >=10.9 <11[2] | Node >=11[2] | DUK 2.0 | DUK 2.1 | DUK 2.2 | DUK 2.3 | GraalVM 19.0.0[3] | AN 4.4 | AN 4.4.3 | iOS >=10.3 <11 | iOS 11 | iOS 11.3 | iOS 12 | iOS 12.2 | Samsung 6.4 | Samsung 7.2 | Samsung 8.2 | |
| 2016 features | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| §exponentiation (**) operator |
2/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 2/3 | 2/3 | 2/3 | 2/3 | 2/3 | 2/3 | 2/3 | 2/3 | 2/3 | 0/3 | 0/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 0/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 2/3 | 2/3 | 2/3 | 2/3 | 3/3 | 0/3 | 0/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | ||
| §basic support | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Flag[4] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §assignment | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Flag[4] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §early syntax error for unary negation without parens | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Flag[4] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §Array.prototype.includes |
0/3 | 3/3 | 3/3 | 3/3 | 1/3 | 2/3 | 2/3 | 2/3 | 2/3 | 2/3 | 2/3 | 2/3 | 2/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 2/3 | 0/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 0/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 0/3 | 0/3 | 0/3 | 0/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 0/3 | 0/3 | 0/3 | 0/3 | 3/3 | 0/3 | 0/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | ||
| §Array.prototype.includes |
No | Yes[5] | Yes[5] | Yes[5] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §Array.prototype.includes is generic | No | Yes[5] | Yes[5] | Yes[5] | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §%TypedArray%.prototype.includes |
No | Yes[5] | Yes[5] | Yes[5] | No | No | No | No | No | No | No | No | No | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| 2016 misc | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| §generator functions can't be used with "new" |
No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §generator throw() caught by inner generator |
No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes[9] | Yes[9] | Yes[9] | Yes[9] | Yes[9] | Yes[9] | Yes[9] | Yes[9] | Yes[9] | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Flag | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §strict fn w/ non-strict non-simple params is error[10] | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §nested rest destructuring, declarations |
No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §nested rest destructuring, parameters[12] | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §Proxy, "enumerate" handler removed |
No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §Proxy internal calls, Array.prototype.includes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| 2017 features | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| §Object static methods | 0/4 | 4/4 | 4/4 | 4/4 | 3/4 | 3/4 | 3/4 | 3/4 | 3/4 | 3/4 | 3/4 | 3/4 | 3/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 3/4 | 0/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 0/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 0/4 | 0/4 | 0/4 | 0/4 | 4/4 | 0/4 | 0/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | ||
| §Object.values |
No | Yes[5] | Yes[5] | Yes[5] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Flag[4] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §Object.entries |
No | Yes[5] | Yes[5] | Yes[5] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Flag[4] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §Object.getOwnPropertyDescriptors |
No | Yes[5] | Yes[5] | Yes[5] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Flag[4] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §Object.getOwnPropertyDescriptors doesn't provide undefined descriptors | No | Yes[5] | Yes[5] | Yes[5] | No | No | No | No | No | No | No | No | No | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §String padding | 0/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 0/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 0/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 0/2 | 0/2 | 0/2 | 0/2 | 2/2 | 0/2 | 0/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 0/2 | 2/2 | 2/2 | ||
| §String.prototype.padStart |
No | Yes[5] | Yes[5] | Yes[5] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | Flag[4] | Flag[4] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Flag[4] | Yes | Yes | ||
| §String.prototype.padEnd |
No | Yes[5] | Yes[5] | Yes[5] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | Flag[4] | Flag[4] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Flag[4] | Yes | Yes | ||
| §trailing commas in function syntax |
0/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 0/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 0/2 | 0/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 0/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 0/2 | 0/2 | 0/2 | 0/2 | 2/2 | 0/2 | 0/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 0/2 | 2/2 | 2/2 | ||
| §in parameter lists |
No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | ||
| §in argument lists |
No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | ||
| §async functions |
4/16 | 4/16 | 4/16 | 4/16 | 10/16 | 10/16 | 10/16 | 10/16 | 10/16 | 10/16 | 10/16 | 10/16 | 10/16 | 9/16 | 9/16 | 9/16 | 9/16 | 9/16 | 9/16 | 9/16 | 9/16 | 9/16 | 0/16 | 0/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 0/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 15/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 0/16 | 0/16 | 0/16 | 0/16 | 0/16 | 0/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 0/16 | 0/16 | 0/16 | 0/16 | 16/16 | 0/16 | 0/16 | 15/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | ||
| §return | Yes | Yes[14] | Yes[14] | Yes[14] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes[9] | Yes[9] | Yes[9] | Yes[9] | Yes[9] | Yes[9] | Yes[9] | Yes[9] | Yes[9] | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | Flag[4] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §throw | ? | ? | ? | ? | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes[9] | Yes[9] | Yes[9] | Yes[9] | Yes[9] | Yes[9] | Yes[9] | Yes[9] | Yes[9] | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | ? | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §no line break between async and function | ? | ? | ? | ? | No | No | No | No | No | No | No | No | No | ? | ? | ? | ? | ? | ? | ? | ? | ? | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | ? | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §no "prototype" property | ? | ? | ? | ? | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | ? | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §await |
Yes | Yes[14] | Yes[14] | Yes[14] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes[9] | Yes[9] | Yes[9] | Yes[9] | Yes[9] | Yes[9] | Yes[9] | Yes[9] | Yes[9] | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | Flag[4] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §await, rejection | ? | ? | ? | ? | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes[9] | Yes[9] | Yes[9] | Yes[9] | Yes[9] | Yes[9] | Yes[9] | Yes[9] | Yes[9] | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | ? | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §must await a value | ? | ? | ? | ? | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ? | ? | ? | ? | ? | ? | ? | ? | ? | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | ? | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §can await non-Promise values | ? | ? | ? | ? | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes[9] | Yes[9] | Yes[9] | Yes[9] | Yes[9] | Yes[9] | Yes[9] | Yes[9] | Yes[9] | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | ? | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §cannot await in parameters | ? | ? | ? | ? | No | No | No | No | No | No | No | No | No | ? | ? | ? | ? | ? | ? | ? | ? | ? | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | ? | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §async methods, object literals | ? | ? | ? | ? | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes[9] | Yes[9] | Yes[9] | Yes[9] | Yes[9] | Yes[9] | Yes[9] | Yes[9] | Yes[9] | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | ? | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §async methods, classes | ? | ? | ? | ? | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes[9] | Yes[9] | Yes[9] | Yes[9] | Yes[9] | Yes[9] | Yes[9] | Yes[9] | Yes[9] | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | ? | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §async arrow functions in methods, classes | Yes | Yes[14] | Yes[14] | Yes[14] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes[9] | Yes[9] | Yes[9] | Yes[9] | Yes[9] | Yes[9] | Yes[9] | Yes[9] | Yes[9] | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | Flag[4] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §async arrow functions | Yes | Yes[14] | Yes[14] | Yes[14] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes[9] | Yes[9] | Yes[9] | Yes[9] | Yes[9] | Yes[9] | Yes[9] | Yes[9] | Yes[9] | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | Flag[4] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §correct prototype chain | ? | ? | ? | ? | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | ? | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §async function prototype, Symbol.toStringTag | ? | ? | ? | ? | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | ? | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §async function constructor | ? | ? | ? | ? | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | ? | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §shared memory and atomics | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 17/17 | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 17/17 | 17/17 | 17/17 | 17/17 | 17/17 | 17/17 | 17/17 | 17/17 | 17/17 | 17/17 | 16/17 | 12/17 | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 17/17 | 17/17 | 17/17 | 0/17 | 0/17 | 17/17 | 17/17 | 0/17 | 0/17 | 0/17 | 0/17 | 17/17 | 0/17 | 0/17 | 16/17 | 12/17 | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | ||
| §SharedArrayBuffer |
No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Flag[15] | Yes | No[16] | No[16] | No[16] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | No | No[18] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No[19] | No[19] | No[19] | No[19] | No[19] | No[19] | No | No | No | No | Flag[20] | Flag[20] | Flag[20] | Flag[20] | Yes | Yes | Yes | No[18] | No[18] | Yes | Yes | No | No | No | No | Yes | No | No | Yes | No[19] | No[19] | No[19] | No[19] | Flag[20] | Flag[20] | No[18] | ||
| §SharedArrayBuffer[Symbol.species] | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Flag[15] | Yes | No[16] | No[16] | No[16] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | No | No[18] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No[19] | No[19] | No[19] | No[19] | No[19] | No[19] | No | No | No | No | No | No | No | No | Yes | Yes | Yes | No[18] | No[18] | Yes | Yes | No | No | No | No | Yes | No | No | Yes | No[19] | No[19] | No[19] | No[19] | No | No | No[18] | ||
| §SharedArrayBuffer.prototype.byteLength |
No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Flag[15] | Yes | No[16] | No[16] | No[16] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | No | No[18] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No[19] | No[19] | No[19] | No[19] | No[19] | No[19] | No | No | No | No | Flag[20] | Flag[20] | Flag[20] | Flag[20] | Yes | Yes | Yes | No[18] | No[18] | Yes | Yes | No | No | No | No | Yes | No | No | No | No[19] | No[19] | No[19] | No[19] | Flag[20] | Flag[20] | No[18] | ||
| §SharedArrayBuffer.prototype.slice |
No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Flag[15] | Yes | No[16] | No[16] | No[16] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | No | No[18] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No[19] | No[19] | No[19] | No[19] | No[19] | No[19] | No | No | No | No | No | No | No | No | Yes | Yes | Yes | No[18] | No[18] | Yes | Yes | No | No | No | No | Yes | No | No | Yes | No[19] | No[19] | No[19] | No[19] | No | No | No[18] | ||
| §SharedArrayBuffer.prototype[Symbol.toStringTag] | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Flag[15] | Yes | No[16] | No[16] | No[16] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | No | No[18] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No[19] | No[19] | No[19] | No[19] | No[19] | No[19] | No | No | No | No | Flag[20] | Flag[20] | Flag[20] | Flag[20] | Yes | Yes | Yes | No[18] | No[18] | Yes | Yes | No | No | No | No | Yes | No | No | Yes | No[19] | No[19] | No[19] | No[19] | Flag[20] | Flag[20] | No[18] | ||
| §Atomics.add |
No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Flag[15] | Yes | No[16] | No[16] | No[16] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | No | No[18] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No[19] | No[19] | No[19] | No[19] | No[19] | No | No | No | No | Flag[20] | Flag[20] | Flag[20] | Flag[20] | Yes | Yes | Yes | No[18] | No[18] | Yes | Yes | No | No | No | No | Yes | No | No | Yes | Yes | No[19] | No[19] | No[19] | Flag[20] | Flag[20] | No[18] | ||
| §Atomics.and |
No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Flag[15] | Yes | No[16] | No[16] | No[16] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | No | No[18] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No[19] | No[19] | No[19] | No[19] | No[19] | No | No | No | No | Flag[20] | Flag[20] | Flag[20] | Flag[20] | Yes | Yes | Yes | No[18] | No[18] | Yes | Yes | No | No | No | No | Yes | No | No | Yes | Yes | No[19] | No[19] | No[19] | Flag[20] | Flag[20] | No[18] | ||
| §Atomics.compareExchange |
No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Flag[15] | Yes | No[16] | No[16] | No[16] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | No | No[18] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No[19] | No[19] | No[19] | No[19] | No[19] | No | No | No | No | Flag[20] | Flag[20] | Flag[20] | Flag[20] | Yes | Yes | Yes | No[18] | No[18] | Yes | Yes | No | No | No | No | Yes | No | No | Yes | Yes | No[19] | No[19] | No[19] | Flag[20] | Flag[20] | No[18] | ||
| §Atomics.exchange |
No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Flag[15] | Yes | No[16] | No[16] | No[16] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | No | No[18] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No[19] | No[19] | No[19] | No[19] | No[19] | No | No | No | No | Flag[20] | Flag[20] | Flag[20] | Flag[20] | Yes | Yes | Yes | No[18] | No[18] | Yes | Yes | No | No | No | No | Yes | No | No | Yes | Yes | No[19] | No[19] | No[19] | Flag[20] | Flag[20] | No[18] | ||
| §Atomics.wait |
No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Flag[15] | Yes | No[16] | No[16] | No[16] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | No | No[18] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No[19] | No[19] | No[19] | No[19] | No[19] | No | No | No | No | Flag[20] | Flag[20] | Flag[20] | Flag[20] | Yes | Yes | Yes | No[18] | No[18] | Yes | Yes | No | No | No | No | Yes | No | No | Yes | Yes | No[19] | No[19] | No[19] | Flag[20] | Flag[20] | No[18] | ||
| §Atomics.wake |
No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Flag[15] | Yes | No[16] | No[16] | No[16] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | No | No[18] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No[19] | No[19] | No[19] | No[19] | No[19] | No | No | No | No | Flag[20] | Flag[20] | Flag[20] | Flag[20] | Yes | Yes | Yes | No[18] | No[18] | Yes | Yes | No | No | No | No | Yes | No | No | Yes | Yes | No[19] | No[19] | No[19] | Flag[20] | Flag[20] | No[18] | ||
| §Atomics.isLockFree |
No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Flag[15] | Yes | No[16] | No[16] | No[16] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | No | No[18] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No[19] | No[19] | No[19] | No[19] | No[19] | No | No | No | No | Flag[20] | Flag[20] | Flag[20] | Flag[20] | Yes | Yes | Yes | No[18] | No[18] | Yes | Yes | No | No | No | No | Yes | No | No | Yes | Yes | No[19] | No[19] | No[19] | Flag[20] | Flag[20] | No[18] | ||
| §Atomics.load |
No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Flag[15] | Yes | No[16] | No[16] | No[16] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | No | No[18] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No[19] | No[19] | No[19] | No[19] | No[19] | No | No | No | No | Flag[20] | Flag[20] | Flag[20] | Flag[20] | Yes | Yes | Yes | No[18] | No[18] | Yes | Yes | No | No | No | No | Yes | No | No | Yes | Yes | No[19] | No[19] | No[19] | Flag[20] | Flag[20] | No[18] | ||
| §Atomics.or |
No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Flag[15] | Yes | No[16] | No[16] | No[16] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | No | No[18] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No[19] | No[19] | No[19] | No[19] | No[19] | No | No | No | No | Flag[20] | Flag[20] | Flag[20] | Flag[20] | Yes | Yes | Yes | No[18] | No[18] | Yes | Yes | No | No | No | No | Yes | No | No | Yes | Yes | No[19] | No[19] | No[19] | Flag[20] | Flag[20] | No[18] | ||
| §Atomics.store |
No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Flag[15] | Yes | No[16] | No[16] | No[16] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | No | No[18] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No[19] | No[19] | No[19] | No[19] | No[19] | No | No | No | No | Flag[20] | Flag[20] | Flag[20] | Flag[20] | Yes | Yes | Yes | No[18] | No[18] | Yes | Yes | No | No | No | No | Yes | No | No | Yes | Yes | No[19] | No[19] | No[19] | Flag[20] | Flag[20] | No[18] | ||
| §Atomics.sub |
No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Flag[15] | Yes | No[16] | No[16] | No[16] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | No | No[18] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No[19] | No[19] | No[19] | No[19] | No[19] | No | No | No | No | Flag[20] | Flag[20] | Flag[20] | Flag[20] | Yes | Yes | Yes | No[18] | No[18] | Yes | Yes | No | No | No | No | Yes | No | No | Yes | Yes | No[19] | No[19] | No[19] | Flag[20] | Flag[20] | No[18] | ||
| §Atomics.xor |
No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Flag[15] | Yes | No[16] | No[16] | No[16] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | Flag[17] | No | No[18] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No[19] | No[19] | No[19] | No[19] | No[19] | No | No | No | No | Flag[20] | Flag[20] | Flag[20] | Flag[20] | Yes | Yes | Yes | No[18] | No[18] | Yes | Yes | No | No | No | No | Yes | No | No | Yes | Yes | No[19] | No[19] | No[19] | Flag[20] | Flag[20] | No[18] | ||
| 2017 misc | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| §Proxy "ownKeys" handler, duplicate keys for non-extensible targets (ES 2017 semantics) |
No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §RegExp "u" flag, case folding | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | ||
| §arguments.caller removed |
No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| 2017 annex b | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| §Object.prototype getter/setter methods | 0/16 | 16/16 | 16/16 | 16/16 | 0/16 | 0/16 | 0/16 | 0/16 | 0/16 | 0/16 | 0/16 | 0/16 | 0/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 0/16 | 8/16 | 12/16 | 14/16 | 14/16 | 14/16 | 14/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 12/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 12/16 | 0/16 | 10/16 | 10/16 | 10/16 | 10/16 | 10/16 | 12/16 | 12/16 | 12/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 0/16 | 0/16 | 16/16 | 16/16 | 16/16 | 6/16 | 6/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 10/16 | 12/16 | 16/16 | ||
| §__defineGetter__ |
No | Yes[5] | Yes[5] | Yes[5] | No | No | No | No | No | No | No | No | No | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §__defineGetter__, symbols | No | Yes[5] | Yes[5] | Yes[5] | No | No | No | No | No | No | No | No | No | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Flag[4] | Flag[4] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §__defineGetter__, ToObject(this) | No | Yes[5] | Yes[5] | Yes[5] | No | No | No | No | No | No | No | No | No | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | Flag[22] | Flag[22] | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | No | No | Yes | ||
| §__defineSetter__ |
No | Yes[5] | Yes[5] | Yes[5] | No | No | No | No | No | No | No | No | No | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §__defineSetter__, symbols | No | Yes[5] | Yes[5] | Yes[5] | No | No | No | No | No | No | No | No | No | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Flag[4] | Flag[4] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §__defineSetter__, ToObject(this) | No | Yes[5] | Yes[5] | Yes[5] | No | No | No | No | No | No | No | No | No | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | Flag[22] | Flag[22] | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | No | No | Yes | ||
| §__lookupGetter__ |
No | Yes[5] | Yes[5] | Yes[5] | No | No | No | No | No | No | No | No | No | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §__lookupGetter__, prototype chain | No | Yes[5] | Yes[5] | Yes[5] | No | No | No | No | No | No | No | No | No | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §__lookupGetter__, symbols | No | Yes[5] | Yes[5] | Yes[5] | No | No | No | No | No | No | No | No | No | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Flag[4] | Flag[4] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §__lookupGetter__, ToObject(this) | No | Yes[5] | Yes[5] | Yes[5] | No | No | No | No | No | No | No | No | No | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | Flag[22] | Flag[22] | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | No | No | Yes | ||
| §__lookupGetter__, data properties can shadow accessors | No | Yes[5] | Yes[5] | Yes[5] | No | No | No | No | No | No | No | No | No | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | ||
| §__lookupSetter__ |
No | Yes[5] | Yes[5] | Yes[5] | No | No | No | No | No | No | No | No | No | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §__lookupSetter__, prototype chain | No | Yes[5] | Yes[5] | Yes[5] | No | No | No | No | No | No | No | No | No | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §__lookupSetter__, symbols | No | Yes[5] | Yes[5] | Yes[5] | No | No | No | No | No | No | No | No | No | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Flag[4] | Flag[4] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §__lookupSetter__, ToObject(this) | No | Yes[5] | Yes[5] | Yes[5] | No | No | No | No | No | No | No | No | No | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | Flag[22] | Flag[22] | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | No | No | Yes | ||
| §__lookupSetter__, data properties can shadow accessors | No | Yes[5] | Yes[5] | Yes[5] | No | No | No | No | No | No | No | No | No | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | ||
| §Proxy internal calls, getter/setter methods | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 0/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 2/4 | 2/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 0/4 | 0/4 | 0/4 | 0/4 | 4/4 | 0/4 | 0/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 2/4 | 4/4 | 4/4 | ||
| §__defineGetter__ | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §__defineSetter__ | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §__lookupGetter__ | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | ||
| §__lookupSetter__ | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | ||
| §assignments allowed in for-in head in non-strict mode |
Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| 2018 features | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| §object rest/spread properties | 0/2 | 2/2 | 2/2 | 2/2 | 2/2 | 1/2 | 1/2 | 1/2 | 1/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 0/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 0/2 | 0/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 0/2 | 0/2 | 0/2 | 0/2 | 2/2 | 0/2 | 0/2 | 0/2 | 0/2 | 2/2 | 2/2 | 2/2 | 0/2 | 0/2 | 2/2 | ||
| §object rest properties | No | Yes | Yes | Yes | Yes | No[23] | No[23] | No[23] | No[23] | No[23] | No[23] | No[23] | No[23] | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | Flag[4] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | No | No | Yes | Yes | Yes | No | Flag[4] | Yes | ||
| §object spread properties | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No[23] | No[23] | No[23] | No[23] | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | Flag[4] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | No | No | Yes | Yes | Yes | No | Flag[4] | Yes | ||
| §Promise.prototype.finally |
0/3 | 3/3 | 3/3 | 3/3 | 0/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 0/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 0/3 | 0/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 3/3 | 3/3 | 3/3 | 3/3 | 0/3 | 0/3 | 0/3 | 0/3 | 3/3 | 0/3 | 0/3 | 0/3 | 0/3 | 3/3 | 3/3 | 3/3 | 0/3 | 0/3 | 3/3 | ||
| §basic support | No | Yes[5] | Yes[5] | Yes[5] | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No[24] | No[24] | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | No | No | Yes | Yes | Yes | No | No | Yes | ||
| §don't change resolution value | No | Yes[5] | Yes[5] | Yes[5] | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No[24] | No[24] | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | No | No | Yes | Yes | Yes | No | No | Yes | ||
| §change rejection value | No | Yes[5] | Yes[5] | Yes[5] | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No[24] | No[24] | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | No | No | Yes | Yes | Yes | No | No | Yes | ||
| §s (dotAll) flag for regular expressions | ? | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | ? | ? | ? | ? | ? | ? | ? | ? | ? | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | No | ? | ? | ? | ? | ? | ? | ? | Flag[22] | Flag[22] | Yes | Yes | Yes | Yes | Yes | ? | ? | No | No | Yes | ? | ? | No | No | Yes | Yes | Yes | ? | ? | Yes | ||
| §RegExp named capture groups | No | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | Flag[22] | Flag[22] | Flag[22] | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | No | No | Yes | Yes | Yes | No | No | Flag[22] | ||
| §RegExp Lookbehind Assertions | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | Flag[22] | Flag[22] | Flag[22] | Flag[22] | Flag[22] | Flag[22] | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | No | No | No | No | No | Flag[22] | Flag[22] | Yes | ||
| §RegExp Unicode Property Escapes | No | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | Flag[22] | Flag[22] | Flag[22] | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | No | No | Yes | Yes | Yes | No | Flag[22] | Flag[22] | ||
| §Asynchronous Iterators | 0/2 | 2/2 | 2/2 | 2/2 | 0/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 0/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 0/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 0/2 | 0/2 | 0/2 | 2/2 | 2/2 | 2/2 | 2/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 2/2 | 2/2 | 2/2 | 2/2 | 0/2 | 0/2 | 0/2 | 0/2 | 2/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 2/2 | 2/2 | 0/2 | 0/2 | 2/2 | ||
| §async generators | No | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | Flag[22] | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | No | No | No | Yes | Yes | No | No | Yes | ||
| §for-await-of loops | No | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | Flag[22] | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | No | No | No | Yes | Yes | No | No | Yes | ||
| 2018 misc | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| §template literal revision | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | Flag[22] | Flag[22] | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | No | Yes | Yes | Yes | Yes | No | Flag[22] | Yes | ||
| 2019 features | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| §Object.fromEntries |
No | No | No | Yes[5] | No | No | No | No | No | No | No | No | Yes | No[25] | No[25] | No[25] | No[25] | No[25] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | No | No | No | No | No | No | Yes | No | No | No | ||
| §string trimming | 0/4 | 4/4 | 4/4 | 4/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 2/4 | 0/4 | 2/4 | 2/4 | 2/4 | 2/4 | 2/4 | 2/4 | 2/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 0/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 2/4 | 2/4 | 2/4 | 4/4 | 4/4 | 4/4 | 4/4 | 2/4 | 2/4 | 2/4 | 2/4 | 2/4 | 2/4 | 2/4 | 2/4 | 2/4 | 2/4 | 2/4 | 4/4 | 4/4 | 4/4 | 4/4 | 0/4 | 0/4 | 0/4 | 0/4 | 4/4 | 2/4 | 2/4 | 2/4 | 2/4 | 2/4 | 4/4 | 4/4 | 2/4 | 2/4 | 2/4 | ||
| §String.prototype.trimLeft |
No | Yes[5] | Yes[5] | Yes[5] | No | No | No | No | No | No | No | No | No | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §String.prototype.trimRight |
No | Yes[5] | Yes[5] | Yes[5] | No | No | No | No | No | No | No | No | No | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §String.prototype.trimStart |
No | Yes[5] | Yes[5] | Yes[5] | No | No | No | No | No | No | No | No | No[26] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | No | No | No | No | No | No | No | No | Flag[27] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | No | No | No | Yes | Yes | No | No | No | ||
| §String.prototype.trimEnd |
No | Yes[5] | Yes[5] | Yes[5] | No | No | No | No | No | No | No | No | No[28] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | No | No | No | No | No | No | No | No | Flag[27] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | No | No | No | Yes | Yes | No | No | No | ||
| §Array.prototype.{flat, flatMap}[29] | 0/3 | 1/3 | 1/3 | 3/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 2/3 | 2/3 | 1/3 | 1/3 | 1/3 | 1/3 | 1/3 | 3/3 | 3/3 | 3/3 | 3/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 2/3 | 2/3 | 2/3 | 2/3 | 2/3 | 3/3 | 3/3 | 3/3 | 0/3 | 0/3 | 0/3 | 2/3 | 2/3 | 2/3 | 2/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 0/3 | 0/3 | 0/3 | 2/3 | 2/3 | 2/3 | 2/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 2/3 | 0/3 | 0/3 | 0/3 | 0/3 | 3/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 2/3 | 2/3 | 0/3 | 0/3 | 0/3 | ||
| §Array.prototype.flat |
No | No | No | Yes[5] | No | No | No | No | No | No | No | Yes | Yes | No[25] | No[25] | No[25] | No[25] | No[25] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | No | No | No | No | No | No | No | No[30] | No[30] | No[30] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | No | No | No | No | Yes | No | No | No | No | No | Yes | Yes | No | No | No | ||
| §Array.prototype.flatMap |
No | Yes[5] | Yes[5] | Yes[5] | No | No | No | No | No | No | No | Yes | Yes | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | No | No | No | No | No | No | No | Flag[27] | Flag[27] | Flag[27] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | No | No | No | No | Yes | No | No | No | No | No | Yes | Yes | No | No | No | ||
| §flat and flatMap in Array.prototype[@@unscopables] | No | No | No | Yes[5] | No | No | No | No | No | No | No | No | No | No[25] | No[25] | No[25] | No[25] | No[25] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | No | No | No | No | No | No | No | No | No | No | ||
| 2019 misc | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| §optional catch binding | 0/3 | 0/3 | 3/3 | 3/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 3/3 | 3/3 | 3/3 | 0/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 0/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 0/3 | 0/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 3/3 | 3/3 | 3/3 | 3/3 | 0/3 | 0/3 | 0/3 | 0/3 | 3/3 | 0/3 | 0/3 | 0/3 | 0/3 | 3/3 | 3/3 | 3/3 | 0/3 | 0/3 | 0/3 | ||
| §basic | No | No | Yes | Yes | No | No | No | No | No | No | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | No | No | Yes | Yes | Yes | No | No | No | ||
| §await | No | No | Yes | Yes | No | No | No | No | No | No | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | No | No | Yes | Yes | Yes | No | No | No | ||
| §yield | No | No | Yes | Yes | No | No | No | No | No | No | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | No | No | Yes | Yes | Yes | No | No | No | ||
| §Symbol.prototype.description |
0/3 | 0/3 | 0/3 | 3/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 2/3 | 2/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 3/3 | 3/3 | 3/3 | 3/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 0/3 | 0/3 | 0/3 | 0/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 0/3 | 0/3 | 0/3 | 2/3 | 3/3 | 3/3 | 3/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 3/3 | 0/3 | 0/3 | 0/3 | 0/3 | 3/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 2/3 | 3/3 | 0/3 | 0/3 | 0/3 | ||
| §basic | No | No | No | Yes[5] | No | No | No | No | No | No | No | Yes | Yes | No[25] | No[25] | No[25] | No[25] | No[25] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Flag[22] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | No | No | No | No | Yes | No | No | No | No | No | Yes | Yes | No | No | No | ||
| §empty description | No | No | No | Yes[5] | No | No | No | No | No | No | No | Yes | Yes | No[25] | No[25] | No[25] | No[25] | No[25] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Flag[22] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | No | No | No | No | Yes | No | No | No | No | No | Yes | Yes | No | No | No | ||
| §undefined description | No | No | No | Yes[5] | No | No | No | No | No | No | No | No | No | No[25] | No[25] | No[25] | No[25] | No[25] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Flag[22] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | No | No | No | No | Yes | No | No | No | No | No | No | Yes | No | No | No | ||
| §Function.prototype.toString revision |
0/7 | 0/7 | 0/7 | 0/7 | 0/7 | 0/7 | 0/7 | 0/7 | 0/7 | 0/7 | 0/7 | 0/7 | 0/7 | 0/7 | 0/7 | 0/7 | 0/7 | 0/7 | 0/7 | 0/7 | 0/7 | 0/7 | 0/7 | 1/7 | 4/7 | 4/7 | 4/7 | 4/7 | 4/7 | 7/7 | 7/7 | 7/7 | 7/7 | 7/7 | 7/7 | 7/7 | 7/7 | 7/7 | 7/7 | 7/7 | 0/7 | 7/7 | 7/7 | 7/7 | 7/7 | 7/7 | 7/7 | 7/7 | 7/7 | 7/7 | 7/7 | 7/7 | 4/7 | 4/7 | 4/7 | 4/7 | 4/7 | 4/7 | 4/7 | 1/7 | 0/7 | 0/7 | 4/7 | 4/7 | 4/7 | 4/7 | 4/7 | 4/7 | 4/7 | 4/7 | 7/7 | 7/7 | 7/7 | 7/7 | 1/7 | 1/7 | 1/7 | 1/7 | 7/7 | 0/7 | 0/7 | 4/7 | 4/7 | 4/7 | 4/7 | 4/7 | 4/7 | 4/7 | 4/7 | ||
| §functions created with the Function constructor | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Flag[22] | Flag[22] | Flag[22] | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | No | No | No | No | No | No | Flag[22] | Flag[22] | ||
| §arrows | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §[native code] | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §class expression with implicit constructor | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §class expression with explicit constructor | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §unicode escape sequences in identifiers | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Flag[22] | Flag[22] | Flag[22] | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | No | No | No | No | No | No | Flag[22] | Flag[22] | ||
| §methods and computed property names | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Flag[22] | Flag[22] | Flag[22] | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | No | No | No | No | No | No | Flag[22] | Flag[22] | ||
| §JSON superset | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 2/2 | 2/2 | 2/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 0/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 0/2 | 0/2 | 0/2 | 2/2 | 2/2 | 2/2 | 2/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 2/2 | 2/2 | 2/2 | 2/2 | 0/2 | 0/2 | 0/2 | 0/2 | 2/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 2/2 | 2/2 | 0/2 | 0/2 | 0/2 | ||
| §LINE SEPARATOR can appear in string literals | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | No | No | No | Yes | Yes | No | No | No | ||
| §PARAGRAPH SEPARATOR can appear in string literals | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | No | No | No | Yes | Yes | No | No | No | ||
| §Well-formed JSON.stringify | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | No | No | No | No | No | No | Yes | No | No | No | ||
| 2020 features | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| §String.prototype.matchAll | No | Yes[5] | Yes[5] | Yes[5] | No | No | No | No | No | No | No | No | No | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Flag[27] | Yes | Yes | Yes | No | No | Flag[22] | Flag[22] | Flag[22] | Flag[22] | Flag[22] | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Flag[22] | Flag[22] | No | No | No | No | Yes | No | No | No | No | No | No | No | No | No | No | ||
| §BigInt | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 8/8 | 8/8 | 0/8 | 0/8 | 8/8 | 8/8 | 8/8 | 8/8 | 8/8 | 8/8 | 8/8 | 8/8 | 8/8 | 8/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 8/8 | 8/8 | 8/8 | 0/8 | 0/8 | 0/8 | 0/8 | 8/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | |||
| §basic functionality | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Flag[31] | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | No | No | No | No | Yes | No | No | No | No | No | No | No | No | No | No | |||
| §constructor | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Flag[31] | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | No | No | No | No | Yes | No | No | No | No | No | No | No | No | No | No | |||
| §BigInt.asUintN | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Flag[31] | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | No | No | No | No | Yes | No | No | No | No | No | No | No | No | No | No | |||
| §BigInt.asIntN | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Flag[31] | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | No | No | No | No | Yes | No | No | No | No | No | No | No | No | No | No | |||
| §BigInt64Array | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | No | No | No | No | Yes | No | No | No | No | No | No | No | No | No | No | |||
| §BigUint64Array | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | No | No | No | No | Yes | No | No | No | No | No | No | No | No | No | No | |||
| §DataView.prototype.getBigInt64 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Flag[31] | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | No | No | No | No | Yes | No | No | No | No | No | No | No | No | No | No | |||
| §DataView.prototype.getBigUint64 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Flag[31] | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | No | No | No | No | Yes | No | No | No | No | No | No | No | No | No | No | |||
[1] Flagged features have to be enabled via --harmony flag
[2] Flagged features have to be enabled via --harmony or --es_staging flag
[3] Executed in Node.js/JVM mode via graalvm/bin/node --jvm.
[4] The feature have to be enabled via "Experimental Javascript features" setting under about:flags
[5] This feature is supported when using Babel with core-js.
[6] This feature is supported when using TypeScript with core-js.
[7] TC39 meeting notes from July 28, 2015.
[8] 'Semantics of yield* in throw case' GitHub issue in ECMA-262 repo.
[9] Requires the downlevelIteration compile option.
[10] TC39 meeting notes from July 29, 2015.
[11] TC39 meeting notes from July 28, 2015.
[12] TC39 meeting notes from July 28, 2015.
[14] This feature requires native generators or regenerator-runtime, it's a part of babel-polyfill or babel-runtime.
[15] Flagged features have to be enabled via "Enable experimental Javascript features" setting under about:flags
[21] The behaviour of the Proxy “ownKeys” handler in presence of duplicate keys has been modified later.
[22] The feature have to be enabled via --js-flags="--harmony" flag
[23] Requires native support for Object.assign
[24] The feature is considered unstable, but can be enabled via --js-flags="--harmony-promise-finally" flag
[25] TypeScript's compiler will accept code using this feature if the --target ES6 flag is set, but passes it through unmodified and does not supply a runtime polyfill.
[26] Requires native support for String.prototype.trimLeft.
[27] The feature is available only in Firefox Nightly builds.
[28] Requires native support for String.prototype.trimRight.
[29] Name of Array.prototype.flatten() changed to Array.prototype.flat() due to web compatibility issues.
[30] Older Firefox Nightly builds support only the obsolete draft function name Array.prototype.flatten().
[31] The feature have to be enabled via javascript.options.bigint setting under about:config.