Feature name | Current browser | Traceur | Babel + |
Closure | Type- Script + |
es7-shim | IE 9 | IE 10 | IE 11 | Edge 12[3] | Edge 13[3] | Edge 14[3] | Edge 15[3] | FF 38 ESR |
FF 42 | FF 43 | FF 44 | FF 45 ESR | FF 46 | FF 47 | FF 48 | FF 49 | FF 50 | FF 51 Beta | FF 52 Aurora | FF 53 Nightly | CH 46, OP 33[1] |
CH 47, OP 34[1] |
CH 48, OP 35[1] |
CH 49, OP 36[1] |
CH 50, OP 37[1] |
CH 51, OP 38[1] |
CH 52, OP 39[1] |
CH 53, OP 40[1] |
CH 54, OP 41[1] |
CH 55, OP 42[1] |
CH 56, OP 43[1] |
CH 57, OP 44[1] |
SF 5.1 |
SF 6 | SF 6.1, SF 7 |
SF 7.1, SF 8 |
SF 9 | SF 10 | SF TP | WK | PJS | Node 0.10[4] | Node 0.12[4] | io.js[4] | Node 4[4] | Node 5[4] | Node 6.0-6.4[4] | Node 6.5[4] | Node 7[4] | AN 4.0 | AN 4.1 | AN 4.2 | AN 4.3 | AN 4.4 | AN 5.0 | AN 5.1 | iOS 5.1 | iOS 6 | iOS 7 | iOS 8 | iOS 9 | iOS 10 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2016 features | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
§exponentiation (**) operator | 2/3 | 3/3 | 3/3 | 2/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/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 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/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 | 3/3 | 3/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 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | ||
§basic support | Yes | Yes | Yes | Yes | No | No | No | No | No | Flag | Yes | Yes | No | No[5] | No[5] | No[5] | No[5] | No[5] | No[5] | No[5] | No[5] | No[5] | No[5] | Yes | Yes | No | No | No | No | No | Flag | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | Yes | Yes | No | No | No | No | No | No | No | Flag | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
§assignment | Yes | Yes | Yes | Yes | No | No | No | No | No | Flag | Yes | Yes | No | No | No | No | No | No | No | No[5] | No[5] | No[5] | No[5] | Yes | Yes | No | No | No | No | No | Flag | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | Yes | Yes | No | No | No | No | No | No | No | Flag | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
§early syntax error for unary negation without parens | No | Yes | Yes | No | No | No | No | No | No | No | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | No | No | No | No | No | Flag | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | Yes | Yes | No | No | No | No | No | No | No | Flag | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
§Array.prototype.includes | 0/3 | 3/3 | 0/3 | 3/3 | 2/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 3/3 | 3/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 | 0/3 | 0/3 | 2/3 | 3/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 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 2/3 | 3/3 | ||
§Array.prototype.includes | No | Yes | No | Yes[6] | Yes | No | No | No | No | No | Yes | Yes | 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 | Yes | Yes | Yes | Yes | No | No | No | No | No | No | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | ||
§Array.prototype.includes is generic | No | Yes | No | Yes[6] | Yes | No | No | No | No | No | Yes | Yes | 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 | Yes | Yes | Yes | Yes | No | No | No | No | No | No | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | ||
§%TypedArray%.prototype.includes | No | Yes | No | Yes[6] | No | No | No | No | No | No | Yes | Yes | 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 | Yes | Yes | Yes | No | No | No | No | No | No | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | Yes | ||
2016 misc | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
§generator functions can't be used with "new"[7] | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | Yes | Yes | Yes | No | No | No | No | No | No | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | Yes | ||
§generator throw() caught by inner generator[8] | No | No | Yes | 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 | No | No | No | No | No | Yes | Yes | Yes | No | No | Flag | Flag | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | Yes | No | No | No | No | No | Yes | ||
§strict fn w/ non-strict non-simple params is error[9] | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | Yes | Yes | Yes | No | No | No | No | No | No | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | Yes | ||
§nested rest destructuring, declarations[10] | No | Yes | Yes | Yes | No | No | No | No | No | Flag | Yes | Yes | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | Yes | Yes | No | No | No | No | No | No | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
§nested rest destructuring, parameters[11] | No | Yes | Yes | Yes | No | No | No | No | No | Flag | Yes | Yes | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | Yes | Yes | No | No | No | No | No | No | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
§Proxy, "enumerate" handler removed[12] | No | No | No | No | No | No | No | No | No | No | No | Yes | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | Yes | Yes | Yes | No | No | No | No | No | No | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | Yes | ||
§Proxy internal calls, Array.prototype.includes | No | No | No | No | No | No | No | No | No | No | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | Yes | Yes | Yes | No | No | No | No | No | No | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | Yes | ||
2017 features | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
§Object.values | No | Yes | No | Yes[6] | Yes | No | No | No | No | No | Yes | Yes | No | No | No | No | No[5] | No[5] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | Flag | Flag | Flag | Yes | Yes | Yes | Yes | No | No | No | No | No | No | Yes | Yes | No | No | No | No | No | No | No | Flag | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
§Object.entries | No | Yes | No | Yes[6] | Yes | No | No | No | No | No | Yes | Yes | No | No | No | No | No[5] | No[5] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | Flag | Flag | Flag | Yes | Yes | Yes | Yes | No | No | No | No | No | No | Yes | Yes | No | No | No | No | No | No | No | Flag | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
§Object.getOwnPropertyDescriptors | 0/2 | 1/2 | 0/2 | 1/2 | 1/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 2/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 | 0/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 | 1/2 | 2/2 | 2/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/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 | 1/2 | ||
§basic support | No | Yes | No | Yes[6] | Yes | No | No | No | No | No | No | Yes | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | No | No | No | No | No | Flag | Flag | Flag | Yes | Yes | Yes | Yes | No | No | No | No | No | Yes | Yes | Yes | No | No | No | No | No | No | No | Flag | Yes | No | No | No | No | No | No | No | No | No | No | No | No | Yes | ||
§doesn't provide undefined descriptors | No | No | No | No | No | No | No | No | No | No | No | Yes | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | No | No | No | No | No | No | Yes | Yes | No | No | No | No | No | No | No | No | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
§String padding | 0/2 | 2/2 | 0/2 | 2/2 | 2/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/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 | 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 | 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 | 0/2 | 0/2 | 2/2 | ||
§String.prototype.padStart | No | Yes | No | Yes[6] | Yes | No | No | No | No | No | Flag | Yes | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | Flag | Flag | Flag | Flag | Flag | Flag | No | No | No | No | No | Yes | Yes | Yes | No | No | No | No | No | No | No | No | Flag | No | No | No | No | No | No | No | No | No | No | No | No | Yes | ||
§String.prototype.padEnd | No | Yes | No | Yes[6] | Yes | No | No | No | No | No | Flag | Yes | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | Flag | Flag | Flag | Flag | Flag | Flag | No | No | No | No | No | Yes | Yes | Yes | No | No | No | No | No | No | No | No | Flag | No | No | No | No | No | No | No | No | No | No | No | No | Yes | ||
§trailing commas in function syntax | 0/2 | 2/2 | 0/2 | 2/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/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 | 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 | 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 | 0/2 | 0/2 | 2/2 | ||
§in parameter lists | No | Yes | No | Yes | No | No | No | No | No | No | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | Flag | 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 | No | No | Yes | ||
§in argument lists | No | Yes | No | Yes | No | No | No | No | No | No | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | Flag | 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 | No | No | Yes | ||
§async functions | 3/3 | 3/3 | 3/3 | 2/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 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 3/3 | 3/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 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/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 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | ||
§basic support | Yes | Yes[13] | Yes | Yes[14] | No | No | No | No | No | Flag | Flag | Yes | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | No | No | No | No | No | No | Flag | Flag | Flag | Yes | Yes | Yes | No | No | No | No | No | No | Yes | Yes | No | No | No | No | No | No | No | No | Flag | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
§await support | Yes | Yes[13] | Yes | Yes[14] | No | No | No | No | No | Flag | Flag | Yes | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | No | No | No | No | No | No | Flag | Flag | Flag | Yes | Yes | Yes | No | No | No | No | No | No | Yes | Yes | No | No | No | No | No | No | No | No | Flag | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
§arrow async functions | Yes | Yes[13] | Yes | No | No | No | No | No | No | Flag | Flag | Yes | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | No | No | No | No | No | No | Flag | Flag | Flag | Yes | Yes | Yes | No | No | No | No | No | No | Yes | Yes | No | No | No | No | No | No | No | No | Flag | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
2017 misc | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
§class extends null | 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 | 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 | 0/2 | 0/2 | 0/2 | 0/2 | 0/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 | 0/2 | 0/2 | 0/2 | ||
§proper default 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 | No | No | No | No | No | No | No | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
§proper "this" binding | 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 | No | No | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
§Proxy "ownKeys" handler, duplicate keys for non-extensible targets | 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 | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | Yes | Yes | Yes | No | No | No | No | No | No | No | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | 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 | No | No | No | 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 | No | No | 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 | No | No | No | No | No | No | No | No | No | No | Yes | Yes | No | No | No | No | No | No | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
2017 annex b | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
§Object.prototype getter/setter methods | 0/16 | 16/16 | 0/16 | 16/16 | 0/16 | 0/16 | 0/16 | 8/16 | 12/16 | 12/16 | 12/16 | 12/16 | 14/16 | 14/16 | 14/16 | 14/16 | 14/16 | 14/16 | 14/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 10/16 | 10/16 | 10/16 | 10/16 | 10/16 | 10/16 | 10/16 | 10/16 | 10/16 | 10/16 | 10/16 | 10/16 | 12/16 | 12/16 | 12/16 | 12/16 | 16/16 | 16/16 | 16/16 | 16/16 | 12/16 | 0/16 | 10/16 | 10/16 | 10/16 | 10/16 | 10/16 | 10/16 | 10/16 | 10/16 | 10/16 | 10/16 | 10/16 | 6/16 | 6/16 | 10/16 | 8/16 | 12/16 | 12/16 | 12/16 | 16/16 | 16/16 | ||
§__defineGetter__ | No | Yes | No | 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 | 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 | ||
§__defineGetter__, symbols | No | Yes | No | Yes[6] | 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 | No | No | No | No | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | No | No | No | No | Yes | Yes | ||
§__defineGetter__, ToObject(this) | No | Yes | No | Yes[6] | 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 | No | No | No | No | No | No | 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 | Yes | Yes | Yes | Yes | Yes | ||
§__defineSetter__ | No | Yes | No | 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 | 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 | ||
§__defineSetter__, symbols | No | Yes | No | Yes[6] | 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 | No | No | No | No | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | No | No | No | No | Yes | Yes | ||
§__defineSetter__, ToObject(this) | No | Yes | No | Yes[6] | 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 | No | No | No | No | No | No | 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 | Yes | Yes | Yes | Yes | Yes | ||
§__lookupGetter__ | No | Yes | No | 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 | 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 | ||
§__lookupGetter__, prototype chain | No | Yes | No | 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 | 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 | ||
§__lookupGetter__, symbols | No | Yes | No | Yes[6] | 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 | No | No | No | No | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | No | No | No | No | Yes | Yes | ||
§__lookupGetter__, ToObject(this) | No | Yes | No | Yes[6] | No | No | 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 | No | No | No | No | 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 | Yes | Yes | Yes | Yes | Yes | ||
§__lookupGetter__, data properties can shadow accessors | No | Yes | No | Yes[6] | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | ||
§__lookupSetter__ | No | Yes | No | 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 | 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 | ||
§__lookupSetter__, prototype chain | No | Yes | No | 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 | 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 | ||
§__lookupSetter__, symbols | No | Yes | No | Yes[6] | 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 | No | No | No | No | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | No | No | No | No | Yes | Yes | ||
§__lookupSetter__, ToObject(this) | No | Yes | No | Yes[6] | No | No | 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 | No | No | No | No | 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 | Yes | Yes | Yes | Yes | Yes | ||
§__lookupSetter__, data properties can shadow accessors | No | Yes | No | Yes[6] | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | 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 | 2/4 | 4/4 | 4/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 | 4/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 2/4 | 2/4 | 2/4 | 2/4 | 2/4 | 2/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 4/4 | 4/4 | 4/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 2/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 | ||
§__defineGetter__ | 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 | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | Yes | Yes | Yes | No | No | No | No | No | No | No | No | Yes | No | No | No | No | No | No | No | No | No | No | No | No | Yes | ||
§__defineSetter__ | 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 | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | Yes | Yes | Yes | No | No | No | No | No | No | No | No | Yes | No | No | No | No | No | No | No | No | No | No | No | No | Yes | ||
§__lookupGetter__ | No | No | No | No | No | No | No | No | No | No | Yes | Yes | No | 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 | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | ||
§__lookupSetter__ | No | No | No | No | No | No | No | No | No | No | Yes | Yes | No | 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 | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | ||
§assignments allowed in for-in head in non-strict mode | Yes | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | 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 | Yes | No | No | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No |
[1] Flagged features have to be enabled via "Experimental Javascript features" flag
[2] Flagged features require an optional transformer setting.
[3] Flagged features have to be enabled via "Enable experimental Javascript features" setting under about:flags
[4] Flagged features have to be enabled via --harmony
or --es_staging
flag
[5] The feature is enabled by default only in Firefox Nightly.
[6] This feature is supported when using TypeScript with core-js, or when a native ES6 host is used.
[7] TC39 meeting notes from July 28, 2015.
[8] 'Semantics of yield* in throw case' GitHub issue in ECMA-262 repo.
[9] TC39 meeting notes from July 29, 2015.
[10] TC39 meeting notes from July 28, 2015.
[11] TC39 meeting notes from July 28, 2015.
[13] This feature requires native generators or regenerator-runtime
, it's a part of babel-polyfill
or babel-runtime
.
[14] TypeScript async
/ await
requires native generators support.