Please note that some of these tests represent existence, not functionality or full conformance.
| Compilers/polyfills | Desktop browsers | Servers/runtimes | Mobile | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Feature name | Current browser | Traceur | 6to5 + |
ES6 Trans- piler |
Closure | JSX[2] | Type- Script |
es6- shim |
IE 10 | IE 11 | IE Technical Preview[3] |
FF 11-12 | FF 13 | FF 16 | FF 17 | FF 18 | FF 23 | FF 24 | FF 25 | FF 27 | FF 28 | FF 29 | FF 30 | FF 31 ESR |
FF 32 | FF 33 | FF 34 | FF 35 | FF 36 | FF 37 | CH <19 | CH 19[4] | CH 21-29[4] | CH 30, OP 17[4] |
CH 31, OP 18[4] |
CH 32-33, OP 19-20[4] |
CH 34, OP 21[4] |
CH 35, OP 22[4] |
CH 36, OP 23[4] |
CH 37, OP 24[4] |
CH 38, OP 25[4] |
CH 39, OP 26[4] |
CH 40, OP 27[4] |
CH 41, OP 28[4] |
CH 42, OP 29[4] |
SF 5.1 | SF 6 | SF 6.1, SF 7 |
SF 7.1, SF 8 |
WK | OP 12 | KQ 4.14[5] | RH | PJS | Node[6] | io.js[6] | Echo JS | iOS7 | iOS8 | |
| Optimisation | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| §proper tail calls (tail call optimisation) | 0/2 | 1/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 | 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 | ||
| direct recursion | Flag[7] | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| mutual recursion | Flag[7] | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| Syntax | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| §default function parameters | 3/5 | 5/5 | 3/5 | 4/5 | 0/5 | 3/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 2/5 | 2/5 | 3/5 | 3/5 | 3/5 | 3/5 | 3/5 | 3/5 | 3/5 | 3/5 | 3/5 | 3/5 | 3/5 | 3/5 | 3/5 | 3/5 | 3/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 3/5 | 0/5 | 0/5 | ||
| basic functionality | Yes | Yes | Yes | Yes | No | Yes | No | No | No | No | No | No | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | No | No | ||
| explicit undefined defers to the default | Yes | Yes | Yes | Yes | No | Yes | No | No | No | No | No | No | No | No | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | No | No | ||
| defaults can refer to previous params | Yes | Yes | Yes | Yes | No | Yes | No | No | No | No | No | No | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | No | No | ||
| temporal dead zone | No | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| separate scope | No | Yes | No | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| §rest parameters | 3/3 | 3/3 | 2/3 | 1/3 | 2/3 | 2/3 | 0/3 | 0/3 | 0/3 | 2/3 | 0/3 | 0/3 | 2/3 | 2/3 | 2/3 | 2/3 | 2/3 | 2/3 | 2/3 | 2/3 | 2/3 | 2/3 | 2/3 | 2/3 | 2/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 | 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 | ||
| basic functionality | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | No | No | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | No | No | ||
| function 'length' property | Yes | Yes | Yes | No | Yes | Yes | No | No | No | Yes | No | No | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | No | No | ||
| arguments object interaction | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| §spread (...) operator | 10/10 | 10/10 | 6/10 | 2/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 4/10 | 0/10 | 0/10 | 1/10 | 2/10 | 2/10 | 2/10 | 2/10 | 2/10 | 8/10 | 8/10 | 8/10 | 8/10 | 8/10 | 8/10 | 8/10 | 8/10 | 8/10 | 10/10 | 10/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 2/10 | 2/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 8/10 | 0/10 | 2/10 | ||
| with arrays, in function calls | Yes | Yes | Yes | Yes | No | No | No | No | No | Yes | 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 | No | No | No | No | No | No | No | Yes | Yes | No | No | No | No | No | No | Yes | No | Yes | ||
| with arrays, in array literals | Yes | Yes | Yes | Yes | No | No | No | No | No | Yes | No | No | 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 | No | No | No | No | No | No | Yes | Yes | No | No | No | No | No | No | Yes | No | Yes | ||
| with strings, in function calls | Yes | Yes | No | No | No | No | No | No | No | Yes | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | No | No | ||
| with strings, in array literals | Yes | Yes | No | No | No | No | No | No | No | Yes | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | No | No | ||
| with astral plane strings, in function calls | 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 | 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 | ||
| with astral plane strings, in array literals | 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 | 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 | ||
| with generic iterables, in calls | Yes | Yes | Yes[8] | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | No | No | ||
| with generic iterables, in arrays | Yes | Yes | Yes[8] | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | No | No | ||
| with instances of iterables, in calls | Yes | Yes | Yes[8] | 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 | No | No | No | No | No | No | No | ||
| with instances of iterables, in arrays | Yes | Yes | Yes[8] | 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 | No | No | No | No | No | No | No | ||
| §object literal extensions | 5/5 | 5/5 | 5/5 | 4/5 | 2/5 | 2/5 | 0/5 | 0/5 | 0/5 | 5/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 1/5 | 5/5 | 5/5 | 5/5 | 5/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 1/5 | 1/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 3/5 | 0/5 | 1/5 | ||
| computed properties | Yes | Yes | Yes | Yes | No | No | No | No | No | Yes | 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 | No | No | No | No | No | No | Yes | Yes | No | No | No | No | No | No | Yes | No | Yes | ||
| shorthand properties | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | No | No | No | No | No | No | 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 | Flag | Flag | Flag | No | No | No | No | No | No | No | No | No | No | Flag | Yes | No | No | ||
| shorthand methods | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | 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 | Flag | Flag | Flag | Flag | No | No | No | No | No | No | No | No | No | No | Flag | Yes | No | No | ||
| computed shorthand methods | Yes | Yes | Yes | Yes | No | No | No | No | No | Yes | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| computed accessors | Yes | Yes | Yes | No | No | No | No | No | No | Yes | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| §for..of loops | 5/5 | 5/5 | 3/5 | 4/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 5/5 | 0/5 | 1/5 | 1/5 | 3/5 | 3/5 | 3/5 | 3/5 | 3/5 | 4/5 | 4/5 | 4/5 | 4/5 | 4/5 | 4/5 | 4/5 | 4/5 | 4/5 | 5/5 | 5/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 5/5 | 5/5 | 5/5 | 5/5 | 5/5 | 0/5 | 0/5 | 0/5 | 1/5 | 1/5 | 0/5 | 0/5 | 0/5 | 0/5 | 5/5 | 5/5 | 4/5 | 0/5 | 1/5 | ||
| with arrays | Yes | Yes | Yes | Yes | No | No | No | No | No | 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 | No | No | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | No | No | No | No | Yes | Yes | Yes | No | Yes | ||
| with strings | Yes | Yes | No | Yes | No | No | No | No | No | Yes | 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 | No | No | No | No | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | No | No | ||
| with astral plane strings | Yes | Yes | No | Yes | No | No | No | No | No | Yes | 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 | No | No | No | No | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | No | No | ||
| with generic iterables | Yes | Yes | Yes[8] | Yes | No | No | No | No | No | Yes | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | No | No | ||
| with instances of generic iterables | Yes | Yes | Yes[8] | No | No | No | No | No | No | Yes | 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 | Flag | Flag | Flag | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Yes | Yes | No | No | No | ||
| §octal and binary literals | 2/4 | 2/4 | 2/4 | 2/4 | 0/4 | 2/4 | 0/4 | 0/4 | 0/4 | 2/4 | 0/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 | 2/4 | 2/4 | 2/4 | 2/4 | 4/4 | 4/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 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 4/4 | 4/4 | 0/4 | 0/4 | ||
| octal literals | Yes | Yes | Yes | Yes | No | Yes | No | No | No | Yes | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Yes | Yes | No | No | No | No | No | No | No | No | No | Flag | Yes | Yes | No | No | ||
| binary literals | Yes | Yes | Yes | Yes | No | Yes | No | No | No | Yes | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Yes | Yes | No | No | No | No | No | No | No | No | No | Flag | Yes | Yes | No | No | ||
| octal supported by Number() | 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 | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Yes | Yes | No | No | No | No | No | No | No | No | No | Flag | Yes | Yes | No | No | ||
| binary supported by Number() | 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 | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Yes | Yes | No | No | No | No | No | No | No | No | No | Flag | Yes | Yes | No | No | ||
| §template strings | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 1/2 | 0/2 | 0/2 | 0/2 | 1/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 | 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 | 2/2 | 2/2 | 0/2 | 0/2 | ||
| basic functionality | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | 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 | No | Yes | Yes | No | No | No | No | No | No | No | No | No | No | Yes | Yes | No | No | ||
| tagged template strings | 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 | Yes | Yes | Yes | Yes | 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 | Yes | Yes | No | No | ||
| §RegExp "y" and "u" flags | 1/2 | 1/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 1/2 | 1/2 | 1/2 | 1/2 | 1/2 | 1/2 | 1/2 | 1/2 | 1/2 | 1/2 | 1/2 | 1/2 | 1/2 | 1/2 | 1/2 | 1/2 | 1/2 | 1/2 | 1/2 | 1/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 | ||
| "y" flag | 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 | Yes | No | No | No | No | No | No | No | No | No | No | No | Flag | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| "u" flag | Yes | Yes | No | No | No | No | No | No | No | 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 | No | No | No | No | No | No | No | No | No | No | No | ||
| §destructuring | 22/24 | 23/24 | 17/24 | 14/24 | 9/24 | 0/24 | 0/24 | 0/24 | 0/24 | 0/24 | 11/24 | 12/24 | 14/24 | 14/24 | 14/24 | 14/24 | 14/24 | 14/24 | 14/24 | 14/24 | 14/24 | 14/24 | 14/24 | 14/24 | 14/24 | 17/24 | 18/24 | 19/24 | 19/24 | 0/24 | 0/24 | 0/24 | 0/24 | 0/24 | 0/24 | 0/24 | 0/24 | 0/24 | 0/24 | 0/24 | 0/24 | 0/24 | 0/24 | 0/24 | 0/24 | 0/24 | 0/24 | 13/24 | 14/24 | 0/24 | 0/24 | 0/24 | 0/24 | 0/24 | 0/24 | 9/24 | 0/24 | 13/24 | ||
| with arrays | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | 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 | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | No | No | No | No | No | No | Yes | No | Yes | ||
| with strings | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | 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 | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | No | No | No | No | No | No | Yes | No | Yes | ||
| with astral plane strings | 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 | 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 | ||
| with generic iterables | 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 | 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 | No | No | No | ||
| with instances of generic iterables | 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 | 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 | ||
| iterable destructuring expression | Yes | Yes | 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 | 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 | Yes | ||
| chained iterable destructuring | Yes | Yes | 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 | 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 | Yes | ||
| with objects | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | 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 | No | No | No | No | No | No | No | No | No | No | No | Yes[9] | Yes[9] | No | No | No | No | No | No | Yes | No | Yes[9] | ||
| object destructuring expression | Yes | Yes | Yes | 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 | 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 | Yes | ||
| chained object destructuring | Yes | Yes | Yes | 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 | 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 | Yes | ||
| throws on null and undefined | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | 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 | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | No | No | No | No | No | No | Yes | No | Yes | ||
| computed properties | 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 | 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 | ||
| multiples in a single var statement | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | 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 | No | No | No | No | No | No | No | No | No | No | No | No | Yes | No | No | No | No | No | No | Yes | No | No | ||
| nested | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | 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 | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | No | No | No | No | No | No | Yes | No | Yes | ||
| in parameters | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | 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 | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | No | No | No | No | No | No | Yes | No | Yes | ||
| in parameters, function 'length' property | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | 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 | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | No | No | No | No | No | No | Yes | No | Yes | ||
| in for-in loop heads | Yes | Yes | No | Yes | 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 | 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 | Yes | ||
| in for-of loop heads | Yes | Yes | Yes | 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 | 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 | Yes | ||
| rest | 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 | 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 | No | No | No | ||
| nested rest | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| defaults | 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 | 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 | ||
| defaults in parameters | 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 | 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 | ||
| defaults, let temporal dead zone | No | Flag | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| defaults in parameters, separate scope | No | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| §Unicode code point escapes | Yes | Yes | Yes | Yes | No | No | No | No | No | 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 | No | No | No | No | No | No | No | No | Yes | No | No | ||
| Bindings | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| §const | 6/8 | 6/8 | 6/8 | 6/8 | 1/8 | 0/8 | 0/8 | 0/8 | 8/8 | 8/8 | 3/8 | 3/8 | 3/8 | 3/8 | 3/8 | 3/8 | 3/8 | 3/8 | 3/8 | 3/8 | 3/8 | 3/8 | 3/8 | 3/8 | 3/8 | 3/8 | 3/8 | 8/8 | 8/8 | 1/8 | 1/8 | 1/8 | 1/8 | 1/8 | 1/8 | 1/8 | 1/8 | 1/8 | 1/8 | 1/8 | 1/8 | 1/8 | 5/8 | 5/8 | 1/8 | 1/8 | 1/8 | 1/8 | 1/8 | 1/8 | 2/8 | 0/8 | 1/8 | 1/8 | 5/8 | 6/8 | 1/8 | 1/8 | ||
| basic support | Yes | Yes | Yes | Yes | 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 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | ||
| is block-scoped | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | 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 | No | No | No | No | Yes | No | No | ||
| redefining a const is an error | Yes | Yes | Yes | Yes | No | No | No | No | Yes | Yes | 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 | No | No | No | No | Yes | No | No | ||
| temporal dead zone | No | Flag | 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 | 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 | ||
| basic support (strict mode) | Yes | Yes | Yes | Yes | 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 | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Yes | Yes | No | No | No | No | No | No | Yes | No | No | Flag | Yes | Yes | No | No | ||
| is block-scoped (strict mode) | Yes | Yes | Yes | Yes | No | No | No | No | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | No | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Yes | Yes | No | No | No | No | No | No | No | No | No | Flag | Yes | Yes | No | No | ||
| redefining a const (strict mode) | Yes | Yes | Yes | Yes | 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 | No | No | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Yes | Yes | No | No | No | No | No | No | No | No | No | Flag | Yes | Yes | No | No | ||
| temporal dead zone (strict mode) | No | Flag | 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 | Yes | Yes | No | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Yes | Yes | No | No | No | No | No | No | No | No | No | Flag | Yes | No | No | No | ||
| §let | 8/10 | 8/10 | 6/10 | 8/10 | 0/10 | 0/10 | 0/10 | 0/10 | 8/10 | 8/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 5/10 | 5/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 5/10 | 10/10 | 0/10 | 0/10 | ||
| basic support | Yes | Yes | Yes | Yes | No | No | No | No | Yes | Yes | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[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 | No | No | Yes | No | No | ||
| is block-scoped | Yes | Yes | Yes | Yes | No | No | No | No | Yes | Yes | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[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 | No | No | Yes | No | No | ||
| for-loop statement scope | Yes | Yes | Yes | Yes | No | No | No | No | Yes | Yes | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[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 | No | No | Yes | No | No | ||
| temporal dead zone | No | Flag | No | No | No | No | No | No | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Flag[10] | Flag[10] | Flag[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 | No | No | Yes | No | No | ||
| for-loop iteration scope | Yes | Yes | No | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | No | No | ||
| basic support (strict mode) | Yes | Yes | Yes | Yes | No | No | No | No | Yes | Yes | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | No | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Yes | Yes | No | No | No | No | No | No | No | No | No | Flag | Yes | Yes | No | No | ||
| is block-scoped (strict mode) | Yes | Yes | Yes | Yes | No | No | No | No | Yes | Yes | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | No | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Yes | Yes | No | No | No | No | No | No | No | No | No | Flag | Yes | Yes | No | No | ||
| for-loop statement scope (strict mode) | Yes | Yes | Yes | Yes | No | No | No | No | Yes | Yes | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | Flag[10] | No | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Yes | Yes | No | No | No | No | No | No | No | No | No | Flag | Yes | Yes | No | No | ||
| temporal dead zone (strict mode) | No | Flag | No | No | No | No | No | No | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Flag[10] | Flag[10] | Flag[10] | No | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Yes | Yes | No | No | No | No | No | No | No | No | No | Flag | Yes | Yes | No | No | ||
| for-loop iteration scope (strict mode) | Yes | Yes | No | 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 | Flag | Flag | Flag | Flag | Yes | Yes | No | No | No | No | No | No | No | No | No | Flag | Yes | Yes | No | No | ||
| §block-level function declaration[11] | Yes | Yes | No | Yes | 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 | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Yes | Yes | No | No | No | No | No | No | No | No | No | Flag | Yes | No | No | No | ||
| Functions | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| §arrow functions | 9/11 | 9/11 | 7/11 | 8/11 | 7/11 | 6/11 | 0/11 | 0/11 | 0/11 | 9/11 | 0/11 | 0/11 | 0/11 | 0/11 | 0/11 | 8/11 | 7/11 | 7/11 | 7/11 | 7/11 | 7/11 | 7/11 | 7/11 | 7/11 | 7/11 | 7/11 | 7/11 | 7/11 | 7/11 | 0/11 | 0/11 | 0/11 | 0/11 | 0/11 | 0/11 | 0/11 | 0/11 | 0/11 | 0/11 | 0/11 | 0/11 | 0/11 | 0/11 | 0/11 | 0/11 | 0/11 | 0/11 | 0/11 | 0/11 | 0/11 | 0/11 | 0/11 | 0/11 | 0/11 | 0/11 | 7/11 | 0/11 | 0/11 | ||
| 0 parameters | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | Flag | Flag | No | No | No | No | No | No | No | No | No | No | No | No | Flag | No | Yes | No | No | ||
| 1 parameter, no brackets | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | Flag | Flag | No | No | No | No | No | No | No | No | No | No | No | No | Flag | No | Yes | No | No | ||
| multiple parameters | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | Flag | Flag | No | No | No | No | No | No | No | No | No | No | No | No | Flag | No | Yes | No | No | ||
| lexical "this" binding | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | No | No | No | No | No | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | No | No | ||
| "this" unchanged by call or apply | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | No | No | No | No | No | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | No | No | ||
| can't be bound, can be curried | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | No | No | No | No | No | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | No | No | ||
| lexical "arguments" binding | Yes | Yes | No | Yes | No | No | No | No | No | Yes | No | No | No | No | No | 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 | No | No | No | No | No | ||
no line break between params and => |
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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| no "prototype" property | No | No | No | No | No | No | No | No | No | Yes | No | No | No | No | No | 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 | Flag | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | No | No | ||
| lexical "super" binding | Yes | Yes | Yes | Yes | Yes | Flag[12] | No | No | No | 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 | No | No | No | No | No | No | No | No | No | No | No | ||
| lexical "new.target" 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| §class | 8/15 | 12/15 | 9/15 | 5/15 | 8/15 | 0/15 | 0/15 | 0/15 | 0/15 | 12/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 10/15 | 0/15 | 0/15 | ||
| class statement | Yes | Yes | Yes | Yes | Yes | Flag[12] | No | No | No | 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 | No | No | No | No | No | No | No | Flag[13] | Yes | No | No | ||
| is block-scoped | No | Yes | No | No | Yes | No | No | No | No | 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 | No | No | No | No | No | No | No | Flag[13] | No | No | No | ||
| class expression | Yes | Yes | Yes | Yes | Yes | No | No | No | No | 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 | No | No | No | No | No | No | No | Flag[13] | Yes | No | No | ||
| constructor | Yes | Yes | Yes | Yes | Yes | Flag[12] | No | No | No | 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 | No | No | No | No | No | No | No | Flag[13] | Yes | No | No | ||
| prototype methods | Yes | Yes | Yes | Yes | Yes | Flag[12] | No | No | No | 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 | No | No | No | No | No | No | No | Flag[13] | Yes | No | No | ||
| static methods | Yes | Yes | Yes | Yes | Yes | Flag[12] | No | No | No | 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 | No | No | No | No | No | No | No | Flag[13] | Yes | No | No | ||
| accessor properties | Yes | Yes | Yes | No | No | Flag[12] | No | No | No | 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 | No | No | No | No | No | No | No | Flag[13] | Yes | No | No | ||
| static accessor properties | Yes | Yes | Yes | No | No | Flag[12] | No | No | No | 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 | No | No | No | No | No | No | No | Flag[13] | Yes | No | No | ||
| methods aren't enumerable | No | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| implicit strict mode | Yes | Yes | Yes | No | Yes | No | No | No | No | 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 | No | No | No | No | No | No | No | Flag[13] | No | No | No | ||
| constructor requires new | No | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| extends | No[14] | No[14] | No[14] | No[15] | No[15] | No[16] | No | No | No | 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 | No | No | No | No | No | No | No | Flag[13] | Yes | No | No | ||
| extends expressions | No[14] | No[14] | No[14] | No | No[15] | No | No | No | No | 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 | No | No | No | No | No | No | No | Flag[13] | Yes | No | No | ||
| extends null | No[14] | Yes | Yes | No | Yes | No | No | No | No | 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 | No | No | No | No | No | No | No | Flag[13] | Yes | No | No | ||
| new.target | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| §super | 4/4 | 4/4 | 4/4 | 3/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 4/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 | 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 | 0/4 | 0/4 | ||
| statement in constructors | Yes | Yes | Yes | Yes | No | Flag[12] | No | No | No | 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 | No | No | No | No | No | No | No | Flag[13] | Yes | No | No | ||
| expression in constructors | Yes | Yes | Yes | Yes | No | Flag[12] | No | No | No | 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 | No | No | No | No | No | No | No | No | Yes | No | No | ||
| in methods | Yes | Yes | Yes | Yes | No | Flag[12] | No | No | No | 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 | No | No | No | No | No | No | No | Flag[13] | Yes | No | No | ||
| is statically bound | Yes | Yes | Yes | No | No | Flag[12] | No | No | No | 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 | No | No | No | No | No | No | No | Flag[13] | Yes | No | No | ||
| §generators | 14/14 | 13/14 | 0/14 | 10/14 | 0/14 | 0/14 | 0/14 | 0/14 | 0/14 | 0/14 | 0/14 | 0/14 | 0/14 | 0/14 | 0/14 | 0/14 | 0/14 | 0/14 | 10/14 | 10/14 | 10/14 | 10/14 | 10/14 | 10/14 | 10/14 | 12/14 | 12/14 | 13/14 | 13/14 | 0/14 | 0/14 | 0/14 | 0/14 | 0/14 | 0/14 | 0/14 | 0/14 | 0/14 | 0/14 | 0/14 | 11/14 | 11/14 | 11/14 | 11/14 | 0/14 | 0/14 | 0/14 | 0/14 | 0/14 | 0/14 | 0/14 | 0/14 | 0/14 | 0/14 | 9/14 | 0/14 | 0/14 | 0/14 | ||
| basic functionality | Yes | Yes | No | Yes | 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 | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Flag | Yes | No | No | No | ||
| correct "this" binding | Yes | Yes | No | Yes | 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 | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Flag | Yes | No | No | No | ||
| sending | Yes | Yes | No | Yes | 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 | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Flag | Yes | No | No | No | ||
| %GeneratorPrototype% | Yes | 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 | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Flag | Yes | No | No | No | ||
| %GeneratorPrototype%.throw | Yes | Yes | No | Yes | 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 | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Flag | Yes | No | No | No | ||
| %GeneratorPrototype%.return | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| yield operator precedence | Yes | Yes | No | Yes | 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 | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Flag | Yes | No | No | No | ||
| yield *, arrays | Yes | Yes | No | Yes | 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 | Flag | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Flag | Yes | No | No | No | ||
| yield *, strings | Yes | Yes | No | Yes | 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 | Flag | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Flag | Yes | No | No | No | ||
| yield *, astral plane strings | 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 | No | No | No | No | No | No | No | No | No | Flag | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Flag | Yes | No | No | No | ||
| yield *, generic iterables | Yes | Yes | No | Yes | 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 | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Flag | No | No | No | No | ||
| yield *, instances of iterables | 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 | Yes | Yes | No | No | No | No | No | No | No | Flag | Flag | Flag | Flag | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Flag | No | No | No | No | ||
| shorthand generator methods | Yes | Yes | No | Yes | 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 | Flag | Flag | Flag | Flag | No | No | No | No | No | No | No | No | No | No | Flag | No | No | No | ||
| computed shorthand generators | Yes | Yes | No | Yes | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| Built-ins | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| §typed arrays | 0/40 | 0/40 | 0/40 | 0/40 | 0/40 | 0/40 | 0/40 | 16/40 | 16/40 | 40/40 | 9/40 | 9/40 | 18/40 | 18/40 | 18/40 | 18/40 | 18/40 | 18/40 | 18/40 | 18/40 | 18/40 | 18/40 | 18/40 | 18/40 | 18/40 | 19/40 | 19/40 | 19/40 | 33/40 | 18/40 | 18/40 | 18/40 | 18/40 | 18/40 | 18/40 | 18/40 | 18/40 | 18/40 | 18/40 | 21/40 | 21/40 | 21/40 | 21/40 | 21/40 | 16/40 | 18/40 | 18/40 | 18/40 | 18/40 | 18/40 | 8/40 | 0/40 | 18/40 | 21/40 | 21/40 | 18/40 | 18/40 | 18/40 | ||
| Int8Array | 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 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | ||
| Uint8Array | 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 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | ||
| Uint8ClampedArray | 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 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | ||
| Int16Array | 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 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | ||
| Uint16Array | 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 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | ||
| Int32Array | 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 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | ||
| Uint32Array | 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 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | ||
| Float32Array | 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 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | ||
| Float64Array | 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 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | ||
| DataView (Int8) | No | No | No | No | No | No | No | Yes | Yes | Yes | 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 | No | No | Yes | Yes | Yes | Yes | Yes | Yes | ||
| DataView (Uint8) | No | No | No | No | No | No | No | Yes | Yes | Yes | 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 | No | No | Yes | Yes | Yes | Yes | Yes | Yes | ||
| DataView (Int16) | No | No | No | No | No | No | No | Yes | Yes | Yes | 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 | No | No | Yes | Yes | Yes | Yes | Yes | Yes | ||
| DataView (Uint16) | No | No | No | No | No | No | No | Yes | Yes | Yes | 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 | No | No | Yes | Yes | Yes | Yes | Yes | Yes | ||
| DataView (Int32) | No | No | No | No | No | No | No | Yes | Yes | Yes | 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 | No | No | Yes | Yes | Yes | Yes | Yes | Yes | ||
| DataView (Uint32) | No | No | No | No | No | No | No | Yes | Yes | Yes | 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 | No | No | Yes | Yes | Yes | Yes | Yes | Yes | ||
| DataView (Float32) | No | No | No | No | No | No | No | Yes | Yes | Yes | 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 | No | No | Yes | Yes | Yes | Yes | Yes | Yes | ||
| DataView (Float64) | No | No | No | No | No | No | No | Yes | Yes | Yes | 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 | No | No | Yes | Yes | Yes | Yes | Yes | Yes | ||
| %TypedArray%.from | No | No | No | No | No | No | No | No | No | 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 | No | No | No | No | No | No | No | No | No | No | No | ||
| %TypedArray%.of | No | No | No | No | No | No | No | No | No | 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 | No | No | No | No | No | No | No | No | No | No | No | ||
| %TypedArray%.prototype.subarray | No | No | No | No | No | No | No | No | No | Yes | 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 | No | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | ||
| %TypedArray%.prototype.join | No | No | No | No | No | No | No | No | No | Yes | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| %TypedArray%.prototype.indexOf | No | No | No | No | No | No | No | No | No | Yes | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| %TypedArray%.prototype.lastIndexOf | No | No | No | No | No | No | No | No | No | Yes | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| %TypedArray%.prototype.slice | No | No | No | No | No | No | No | No | No | 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 | No | No | No | No | No | No | No | No | No | No | No | ||
| %TypedArray%.prototype.every | No | No | No | No | No | No | No | No | No | Yes | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| %TypedArray%.prototype.filter | No | No | No | No | No | No | No | No | No | 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 | No | No | No | No | No | No | No | No | No | No | No | ||
| %TypedArray%.prototype.forEach | No | No | No | No | No | No | No | No | No | 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 | No | No | No | No | No | No | No | No | No | No | No | ||
| %TypedArray%.prototype.map | No | No | No | No | No | No | No | No | No | 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 | No | No | No | No | No | No | No | No | No | No | No | ||
| %TypedArray%.prototype.reduce | No | No | No | No | No | No | No | No | No | Yes | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| %TypedArray%.prototype.reduceRight | No | No | No | No | No | No | No | No | No | Yes | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| %TypedArray%.prototype.reverse | No | No | No | No | No | No | No | No | No | Yes | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| %TypedArray%.prototype.some | No | No | No | No | No | No | No | No | No | Yes | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| %TypedArray%.prototype.sort | No | No | No | No | No | No | No | No | No | 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 | No | No | No | No | No | No | No | No | No | No | No | ||
| %TypedArray%.prototype.copyWithin | No | No | No | No | No | No | No | No | No | Yes | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| %TypedArray%.prototype.find | No | No | No | No | No | No | No | No | No | Yes | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| %TypedArray%.prototype.findIndex | No | No | No | No | No | No | No | No | No | Yes | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| %TypedArray%.prototype.fill | No | No | No | No | No | No | No | No | No | Yes | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| %TypedArray%.prototype.keys | No | No | No | No | No | No | No | No | No | Yes | 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 | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Yes | Yes | No | No | No | ||
| %TypedArray%.prototype.values | No | No | No | No | No | No | No | No | No | Yes | 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 | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Yes | Yes | No | No | No | ||
| %TypedArray%.prototype.entries | No | No | No | No | No | No | No | No | No | Yes | 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 | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Yes | Yes | No | No | No | ||
| §Map | 10/11 | 11/11 | 0/11 | 0/11 | 0/11 | 0/11 | 11/11 | 0/11 | 5/11 | 11/11 | 0/11 | 0/11 | 3/11 | 3/11 | 3/11 | 8/11 | 8/11 | 9/11 | 9/11 | 9/11 | 10/11 | 10/11 | 10/11 | 10/11 | 11/11 | 11/11 | 11/11 | 11/11 | 11/11 | 0/11 | 0/11 | 0/11 | 0/11 | 0/11 | 0/11 | 0/11 | 0/11 | 0/11 | 0/11 | 10/11 | 11/11 | 11/11 | 11/11 | 11/11 | 0/11 | 0/11 | 0/11 | 9/11 | 9/11 | 0/11 | 0/11 | 0/11 | 0/11 | 10/11 | 11/11 | 10/11 | 0/11 | 9/11 | ||
| basic functionality | Yes | Yes | No | No | No | No | Yes | No | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | No | No | No | No | Yes | Yes | Yes | No | Yes | ||
| constructor arguments | Yes | Yes | No | No | No | No | Yes | No | No | Yes | No | No | 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 | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | No | No | ||
| Map.prototype.set returns this | Yes | Yes | No | No | No | No | Yes | No | No | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | No | No | No | No | Yes | Yes | Yes | No | Yes | ||
| -0 key converts to +0 | No | Yes | No | No | No | No | Yes | No | No | Yes | 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 | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Flag | Yes | No | No | No | ||
| Map.prototype.size | Yes | Yes | No | No | No | No | Yes | No | Yes | Yes | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | No | No | No | No | Yes | Yes | Yes | No | Yes | ||
| Map.prototype.delete | Yes | Yes | No | No | No | No | Yes | No | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | No | No | No | No | Yes | Yes | Yes | No | Yes | ||
| Map.prototype.clear | Yes | Yes | No | No | No | No | Yes | No | Yes | Yes | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | No | No | No | No | Yes | Yes | Yes | No | Yes | ||
| Map.prototype.forEach | Yes | Yes | No | No | No | No | Yes | No | Yes | Yes | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | Flag | Flag | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | No | No | No | No | Yes | Yes | Yes | No | Yes | ||
| Map.prototype.keys | Yes | Yes | No | No | No | No | Yes | No | No | Yes | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Flag | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | No | No | No | No | Yes | Yes | Yes | No | Yes | ||
| Map.prototype.values | Yes | Yes | No | No | No | No | Yes | No | No | Yes | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | Flag | Flag | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | No | No | No | No | Yes | Yes | Yes | No | Yes | ||
| Map.prototype.entries | Yes | Yes | No | No | No | No | Yes | No | No | Yes | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | Flag | Flag | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | No | No | No | No | Yes | Yes | Yes | No | Yes | ||
| §Set | 10/11 | 11/11 | 0/11 | 0/11 | 0/11 | 0/11 | 11/11 | 0/11 | 5/11 | 11/11 | 0/11 | 0/11 | 3/11 | 3/11 | 3/11 | 5/11 | 8/11 | 9/11 | 9/11 | 9/11 | 10/11 | 10/11 | 10/11 | 10/11 | 11/11 | 11/11 | 11/11 | 11/11 | 11/11 | 0/11 | 0/11 | 0/11 | 0/11 | 0/11 | 0/11 | 0/11 | 0/11 | 0/11 | 0/11 | 10/11 | 11/11 | 11/11 | 11/11 | 11/11 | 0/11 | 0/11 | 0/11 | 9/11 | 9/11 | 0/11 | 0/11 | 0/11 | 0/11 | 10/11 | 11/11 | 10/11 | 0/11 | 9/11 | ||
| basic functionality | Yes | Yes | No | No | No | No | Yes | No | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | No | No | No | No | Yes | Yes | Yes | No | Yes | ||
| constructor arguments | Yes | Yes | No | No | No | No | Yes | No | No | Yes | No | No | 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 | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | No | No | ||
| Set.prototype.add returns this | Yes | Yes | No | No | No | No | Yes | No | No | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | No | No | No | No | Yes | Yes | Yes | No | Yes | ||
| -0 key converts to +0 | No | Yes | No | No | No | No | Yes | No | No | Yes | 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 | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Flag | Yes | No | No | No | ||
| Set.prototype.size | Yes | Yes | No | No | No | No | Yes | No | Yes | Yes | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | No | No | No | No | Yes | Yes | Yes | No | Yes | ||
| Set.prototype.delete | Yes | Yes | No | No | No | No | Yes | No | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | No | No | No | No | Yes | Yes | Yes | No | Yes | ||
| Set.prototype.clear | Yes | Yes | No | No | No | No | Yes | No | Yes | Yes | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | No | No | No | No | Yes | Yes | Yes | No | Yes | ||
| Set.prototype.forEach | Yes | Yes | No | No | No | No | Yes | No | Yes | Yes | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | Flag | Flag | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | No | No | No | No | Yes | Yes | Yes | No | Yes | ||
| Set.prototype.keys | Yes | Yes | No | No | No | No | Yes | No | No | Yes | 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 | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | No | No | No | No | Yes | Yes | Yes | No | Yes | ||
| Set.prototype.values | Yes | Yes | No | No | No | No | Yes | No | No | Yes | 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 | Flag | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | No | No | No | No | Yes | Yes | Yes | No | Yes | ||
| Set.prototype.entries | Yes | Yes | No | No | No | No | Yes | No | No | Yes | 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 | Flag | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | No | No | No | No | Yes | Yes | Yes | No | Yes | ||
| §WeakMap | 0/5 | 5/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 2/5 | 5/5 | 3/5 | 3/5 | 3/5 | 3/5 | 3/5 | 3/5 | 3/5 | 3/5 | 3/5 | 3/5 | 3/5 | 3/5 | 3/5 | 3/5 | 4/5 | 4/5 | 4/5 | 5/5 | 5/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 3/5 | 3/5 | 5/5 | 5/5 | 5/5 | 5/5 | 5/5 | 0/5 | 0/5 | 0/5 | 4/5 | 4/5 | 0/5 | 0/5 | 0/5 | 0/5 | 5/5 | 5/5 | 5/5 | 0/5 | 4/5 | ||
| basic functionality | No | Yes | 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 | No | No | Flag | Flag | Flag | Flag | Flag | Flag | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | No | No | No | No | Yes | Yes | Yes | No | Yes | ||
| constructor arguments | No | Yes | No | No | No | No | No | No | No | Yes | 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 | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | No | No | ||
| WeakMap.prototype.set returns this | No | Yes | No | No | No | No | No | No | No | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | No | No | No | No | Yes | Yes | Yes | No | Yes | ||
| WeakMap.prototype.delete | No | Yes | 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 | No | No | Flag | Flag | Flag | Flag | Flag | Flag | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | No | No | No | No | Yes | Yes | Yes | No | Yes | ||
| Support frozen objects as keys | 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 | No | No | Flag | Flag | Flag | Flag | Flag | Flag | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | No | No | No | No | Yes | Yes | Yes | No | Yes | ||
| §WeakSet | 0/4 | 4/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 4/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 | 0/4 | 0/4 | 0/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 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 4/4 | 4/4 | 4/4 | 0/4 | 0/4 | ||
| basic functionality | No | Yes | No | No | No | No | No | No | No | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | No | No | No | Flag | Flag | Flag | Flag | Flag | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | No | No | ||
| constructor arguments | No | Yes | No | No | No | No | No | No | No | Yes | 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 | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | No | No | ||
| WeakSet.prototype.add returns this | No | Yes | No | No | No | No | No | No | No | Yes | 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 | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | No | No | ||
| WeakSet.prototype.delete | No | Yes | No | No | No | No | No | No | No | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | No | No | No | Flag | Flag | Flag | Flag | Flag | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | No | No | ||
| §Proxy | 0/20 | 0/20 | 0/20 | 0/20 | 0/20 | 0/20 | 0/20 | 0/20 | 0/20 | 17/20 | 0/20 | 0/20 | 0/20 | 0/20 | 10/20 | 10/20 | 10/20 | 10/20 | 10/20 | 10/20 | 10/20 | 11/20 | 12/20 | 12/20 | 13/20 | 14/20 | 14/20 | 14/20 | 16/20 | 0/20 | 0/20 | 0/20 | 0/20 | 0/20 | 0/20 | 0/20 | 0/20 | 0/20 | 0/20 | 0/20 | 0/20 | 0/20 | 0/20 | 0/20 | 0/20 | 0/20 | 0/20 | 0/20 | 0/20 | 0/20 | 0/20 | 0/20 | 0/20 | 0/20 | 0/20 | 11/20 | 0/20 | 0/20 | ||
| "get" handler | No | No | No | No | No | No | No | No | No | Yes | No | No | No | No | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | No | No | ||
| "get" handler, instances of proxies | No | No | No | No | No | No | No | No | No | Yes | No | No | No | No | No[17] | No[17] | No[17] | No[17] | No[17] | No[17] | No[17] | No[17] | No[17] | No[17] | No[17] | No[17] | No[17] | No[17] | No[17] | 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 | ||
| "set" handler | No | No | No | No | No | No | No | No | No | Yes | No | No | No | No | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | No | No | ||
| "set" handler, instances of proxies | No | No | No | No | No | No | No | No | No | Yes | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | No | No | ||
| "has" handler | No | No | No | No | No | No | No | No | No | Yes | No | No | No | No | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | No | No | ||
| "has" handler, instances of proxies | No | No | No | No | No | No | No | No | No | Yes | No | No | No | No | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | No | No | ||
| "deleteProperty" handler | No | No | No | No | No | No | No | No | No | Yes | No | No | No | No | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | No | No | ||
| "getOwnPropertyDescriptor" handler | No | No | No | No | No | No | No | No | No | Yes | No | No | No | No | No[18] | No[18] | No[18] | No[18] | No[18] | No[18] | No[18] | 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 | No | No | No | No | No | No | No | Yes | No | No | ||
| "defineProperty" handler | No | No | No | No | No | No | No | No | No | Yes | No | No | No | No | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | No | No | ||
| "getPrototypeOf" handler | No | No | No | No | No | No | No | No | No | 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 | No | No | No | No | No | No | No | No | Yes | No | No | ||
| "setPrototypeOf" handler | No | No | No | No | No | No | No | No | No | 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 | No | No | No | No | No | No | No | No | Yes | No | No | ||
| "isExtensible" handler | No | No | No | No | No | No | No | No | No | Yes | No | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| "preventExtensions" handler | No | No | No | No | No | No | No | No | No | Yes | No | No | No | No | No | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| "enumerate" handler | No | No | No | No | No | No | No | No | No | Yes | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| "ownKeys" handler | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No[19] | No[19] | No[19] | No[19] | No[19] | No[19] | No[19] | No[19] | No[19] | No[19] | 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 | No | No | No | ||
| "apply" handler | No | No | No | No | No | No | No | No | No | Yes | No | No | No | No | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| "construct" handler | No | No | No | No | No | No | No | No | No | Yes | No | No | No | No | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| Proxy.revocable | No | No | No | No | No | No | No | No | No | Yes | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| Array.isArray support | 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 | 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 | ||
| JSON.stringify support | 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 | 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 | ||
| §Reflect | 0/15 | 13/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 12/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 0/15 | 14/15 | 0/15 | 0/15 | ||
| Reflect.get | No | Yes | No | No | No | No | No | No | No | 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 | No | No | No | No | No | No | No | No | Yes | No | No | ||
| Reflect.set | No | Yes | No | No | No | No | No | No | No | 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 | No | No | No | No | No | No | No | No | Yes | No | No | ||
| Reflect.has | No | Yes | No | No | No | No | No | No | No | 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 | No | No | No | No | No | No | No | No | Yes | No | No | ||
| Reflect.deleteProperty | No | Yes | No | No | No | No | No | No | No | 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 | No | No | No | No | No | No | No | No | Yes | No | No | ||
| Reflect.getOwnPropertyDescriptor | No | Yes | No | No | No | No | No | No | No | 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 | No | No | No | No | No | No | No | No | Yes | No | No | ||
| Reflect.defineProperty | No | Yes | No | No | No | No | No | No | No | 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 | No | No | No | No | No | No | No | No | Yes | No | No | ||
| Reflect.getPrototypeOf | No | Yes | No | No | No | No | No | No | No | 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 | No | No | No | No | No | No | No | No | Yes | No | No | ||
| Reflect.setPrototypeOf | No | No[14] | No | No | No | No | No | No | No | 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 | No | No | No | No | No | No | No | No | Yes | No | No | ||
| Reflect.isExtensible | No | Yes | No | No | No | No | No | No | No | 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 | No | No | No | No | No | No | No | No | Yes | No | No | ||
| Reflect.preventExtensions | No | Yes | No | No | No | No | No | No | No | 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 | No | No | No | No | No | No | No | No | Yes | No | No | ||
| Reflect.enumerate | No | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | No | No | ||
| Reflect.ownKeys | No | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | No | No | ||
| Reflect.apply | No | Yes | No | No | No | No | No | No | No | 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 | No | No | No | No | No | No | No | No | Yes | No | No | ||
| Reflect.construct | No | Yes | No | No | No | No | No | No | No | 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 | No | No | No | No | No | No | No | No | Yes | No | No | ||
| Reflect.construct, new.target | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| §Promise | 3/3 | 3/3 | 0/3 | 0/3 | 0/3 | 0/3 | 3/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 | 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 | 0/3 | 0/3 | 0/3 | 3/3 | 3/3 | 0/3 | 0/3 | 0/3 | 0/3 | 3/3 | 3/3 | 3/3 | 0/3 | 3/3 | ||
| basic functionality | Yes | Yes | No | No | No | No | Yes | No | No | Yes | No | No | No | No | No | No | No | No | No | No | 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 | Yes | Yes | No | No | No | No | Yes | Yes | Yes | No | Yes | ||
| Promise.all | Yes | Yes | No | No | No | No | Yes | No | No | Yes | No | No | No | No | No | No | No | No | No | No | 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 | Yes | Yes | No | No | No | No | Yes | Yes | Yes | No | Yes | ||
| Promise.race | Yes | Yes | No | No | No | No | Yes | No | No | Yes | No | No | No | No | No | No | No | No | No | No | 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 | Yes | Yes | No | No | No | No | Yes | Yes | Yes | No | Yes | ||
| §Symbol | 3/9 | 5/9 | 0/9 | 0/9 | 0/9 | 0/9 | 0/9 | 0/9 | 0/9 | 8/9 | 0/9 | 0/9 | 0/9 | 0/9 | 0/9 | 0/9 | 0/9 | 0/9 | 0/9 | 0/9 | 0/9 | 0/9 | 0/9 | 0/9 | 0/9 | 0/9 | 0/9 | 9/9 | 9/9 | 0/9 | 0/9 | 0/9 | 0/9 | 0/9 | 0/9 | 0/9 | 0/9 | 0/9 | 0/9 | 7/9 | 8/9 | 8/9 | 8/9 | 8/9 | 0/9 | 0/9 | 0/9 | 0/9 | 8/9 | 0/9 | 0/9 | 0/9 | 0/9 | 7/9 | 8/9 | 8/9 | 0/9 | 0/9 | ||
| basic functionality | Yes | Yes | No | No | No | No | No | No | No | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | No | No | No | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | No | No | Yes | Yes | Yes | No | No | ||
| typeof support | No | Flag | No | No | No | No | No | No | No | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | No | No | No | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | No | No | Yes | Yes | Yes | No | No | ||
| symbol keys are hidden to pre-ES6 code | No | Yes | No | No | No | No | No | No | No | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | No | No | No | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | No | No | Yes | Yes | Yes | No | No | ||
| Object.defineProperty support | Yes | Yes | No | No | No | No | No | No | No | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | No | No | No | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | No | No | Yes | Yes | Yes | No | No | ||
| cannot coerce to string or number | No | No | No | No | No | No | No | No | No | Yes | 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 | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | No | No | Yes | Yes | Yes | No | No | ||
| can convert with String() | 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 | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | No | No | No | Yes | Yes | No | No | ||
| new Symbol() throws | Yes | Yes | No | No | No | No | No | No | No | Yes | 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 | Flag | Flag | Flag | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | No | No | Yes | Yes | Yes | No | No | ||
| Object(symbol) | No | No | No | No | No | No | No | No | No | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | No | No | No | Flag | Flag | Flag | Flag | No | No | No | No | No | No | No | No | No | No | No | No | Yes | No | No | No | No | No | No | No | No | No | ||
| global symbol registry | No | Yes | No | No | No | No | No | No | No | Yes | 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 | Flag | Flag | Flag | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | No | No | ||
| §well-known symbols | 1/7 | 2/7 | 0/7 | 0/7 | 0/7 | 0/7 | 0/7 | 0/7 | 0/7 | 2/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 | 1/7 | 0/7 | 0/7 | 0/7 | 0/7 | 0/7 | 0/7 | 0/7 | 0/7 | 0/7 | 0/7 | 2/7 | 2/7 | 2/7 | 2/7 | 2/7 | 0/7 | 0/7 | 0/7 | 0/7 | 0/7 | 0/7 | 0/7 | 0/7 | 0/7 | 2/7 | 2/7 | 6/7 | 0/7 | 0/7 | ||
| Symbol.hasInstance | 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 | No | No | No | No | No | No | No | No | No | No | No | No | Yes | No | No | ||
| Symbol.isConcatSpreadable | 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 | No | No | No | No | No | No | No | No | No | No | No | No | Yes | No | No | ||
| Symbol.iterator | Yes | Yes | No | No | No | No | No | No | No | Yes | 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 | Flag | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | No | No | ||
| 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 | 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 | No | No | ||
| Symbol.toPrimitive | 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 | No | No | No | No | No | No | No | No | No | No | No | No | Yes | No | No | ||
| Symbol.toStringTag | No | 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 | No | No | Flag | Flag | Flag | No | No | No | No | No | No | No | No | No | No | Flag | Yes | No | No | ||
| Symbol.unscopables | No | No | No | No | No | No | No | No | No | 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 | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Yes | Yes | No[20] | No | No | ||
| Built-in extensions | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| §Object static methods | 3/4 | 2/4 | 0/4 | 0/4 | 0/4 | 0/4 | 2/4 | 0/4 | 1/4 | 3/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 1/4 | 1/4 | 1/4 | 1/4 | 1/4 | 1/4 | 1/4 | 2/4 | 2/4 | 2/4 | 3/4 | 3/4 | 4/4 | 4/4 | 0/4 | 1/4 | 1/4 | 1/4 | 1/4 | 1/4 | 2/4 | 2/4 | 2/4 | 2/4 | 3/4 | 3/4 | 3/4 | 3/4 | 3/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 1/4 | 0/4 | 0/4 | 3/4 | 3/4 | 4/4 | 0/4 | 0/4 | ||
| Object.assign | Yes | Yes | No | No | No | No | Yes | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | No | No | ||
| Object.is | Yes | Yes | No | No | No | No | Yes | No | No | Yes | No | No | No | No | No | 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 | No | No | No | No | No | No | Yes | No | No | Yes | Yes | Yes | No | No | ||
| Object.getOwnPropertySymbols | Yes | No | No | No | No | No | No | No | No | Yes | 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 | Flag | Flag | Flag | Flag | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | No | No | ||
| Object.setPrototypeOf | No | No[14] | No | No | No | No | No[14] | No | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | No | No | ||
| §function "name" property | 0/16 | 9/16 | 0/16 | 0/16 | 0/16 | 0/16 | 0/16 | 0/16 | 0/16 | 0/16 | 3/16 | 3/16 | 3/16 | 3/16 | 3/16 | 3/16 | 3/16 | 3/16 | 3/16 | 3/16 | 3/16 | 3/16 | 3/16 | 3/16 | 3/16 | 4/16 | 4/16 | 4/16 | 4/16 | 2/16 | 2/16 | 2/16 | 2/16 | 2/16 | 2/16 | 2/16 | 2/16 | 2/16 | 2/16 | 2/16 | 2/16 | 2/16 | 2/16 | 2/16 | 3/16 | 3/16 | 3/16 | 3/16 | 3/16 | 2/16 | 3/16 | 3/16 | 3/16 | 2/16 | 3/16 | 3/16 | 3/16 | 3/16 | ||
| function statements | No | Yes | 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 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| function expressions | No | Yes | 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 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| new Function | 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 | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | No | No | No | Yes | Yes | ||
| bound functions | 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 | No | No | No | No | No | No | No | No | No | No | No | No | Yes | No | No | ||
| variables (function) | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| object methods (function) | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| accessor properties | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| shorthand methods | No | 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 | No | No | No | No | No | No | No | No | No | No | No | Flag | Flag | Flag | Flag | No | No | No | No | No | No | No | No | No | No | Yes | No | No | No | ||
| symbol-keyed methods | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| class statements | No | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| class expressions | No | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| variables (class) | No | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| object methods (class) | No | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| class prototype methods | No | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| class static methods | No | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| isn't writable, is configurable | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| §String static methods | 2/2 | 2/2 | 0/2 | 0/2 | 0/2 | 0/2 | 2/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 | 1/2 | 1/2 | 1/2 | 1/2 | 1/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 | 2/2 | 2/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 | ||
| String.raw | Yes | Yes | No | No | No | No | Yes | No | No | Yes | 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 | No | Yes | Yes | No | No | No | No | No | No | No | No | No | No | Yes | Yes | No | No | ||
| String.fromCodePoint | Yes | Yes | No | No | No | No | Yes | No | No | Yes | 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 | Flag | Flag | Flag | Yes | Yes | No | No | No | No | No | No | No | No | No | Flag | Yes | Yes | No | No | ||
| §String.prototype methods | 5/6 | 5/6 | 0/6 | 0/6 | 0/6 | 0/6 | 5/6 | 0/6 | 0/6 | 5/6 | 0/6 | 0/6 | 0/6 | 2/6 | 2/6 | 2/6 | 3/6 | 3/6 | 3/6 | 3/6 | 4/6 | 4/6 | 5/6 | 5/6 | 5/6 | 5/6 | 5/6 | 5/6 | 5/6 | 0/6 | 0/6 | 0/6 | 0/6 | 0/6 | 0/6 | 1/6 | 1/6 | 1/6 | 1/6 | 1/6 | 1/6 | 1/6 | 6/6 | 6/6 | 0/6 | 0/6 | 0/6 | 0/6 | 4/6 | 0/6 | 0/6 | 0/6 | 0/6 | 1/6 | 6/6 | 5/6 | 0/6 | 0/6 | ||
| String.prototype.codePointAt | Yes | Yes | No | No | No | No | Yes | No | No | Yes | 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 | Flag | Flag | Flag | Yes | Yes | No | No | No | No | No | No | No | No | No | Flag | Yes | Yes | No | No | ||
| String.prototype.normalize | No | No | No | No | No | No | No | No | No | Yes | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Yes | Yes | No | No | No | ||
| String.prototype.repeat | Yes | Yes | No | No | No | No | Yes | No | No | Yes | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Yes | Yes | No | No | No | No | Yes | No | No | No | No | Flag | Yes | Yes | No | No | ||
| String.prototype.startsWith | Yes | Yes | No | No | No | No | Yes | No | No | Yes | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Yes | Yes | No | No | No | No | Yes | No | No | No | No | Flag | Yes | Yes | No | No | ||
| String.prototype.endsWith | Yes | Yes | No | No | No | No | Yes | No | No | Yes | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Yes | Yes | No | No | No | No | Yes | No | No | No | No | Flag | Yes | Yes | No | No | ||
| String.prototype.includes | Yes | Yes | No | No | No | No | Yes | No | No | No | No | No | No | No | No[21] | No[21] | No[21] | No[21] | No[21] | No[21] | No[21] | No[21] | No[21] | No[21] | No[21] | No[21] | No[21] | No[21] | No[21] | No | No | No | No[21] | No[21] | No[21] | No[21] | No[21] | No[21] | No[21] | No[21] | No[21] | No[21] | Yes | Yes | No | No | No | No | Yes | No | No | No | No | Flag[21] | Yes | Yes | No | No | ||
| §RegExp.prototype properties | 0/5 | 1/5 | 0/5 | 0/5 | 0/5 | 0/5 | 1/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 1/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 5/5 | 0/5 | 0/5 | ||
| RegExp.prototype.flags | No | Yes | No | No | No | No | Yes | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | No | No | ||
| RegExp.prototype[Symbol.match] | 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 | No | No | No | No | No | No | No | No | No | No | No | No | Yes | No | No | ||
| RegExp.prototype[Symbol.replace] | 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 | No | No | No | No | No | No | No | No | No | No | No | No | Yes | No | No | ||
| RegExp.prototype[Symbol.split] | 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 | No | No | No | No | No | No | No | No | No | No | No | No | Yes | No | No | ||
| RegExp.prototype[Symbol.search] | 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 | No | No | No | No | No | No | No | No | No | No | No | No | Yes | No | No | ||
| §Array static methods | 4/4 | 4/4 | 0/4 | 0/4 | 0/4 | 0/4 | 3/4 | 0/4 | 0/4 | 4/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 1/4 | 1/4 | 1/4 | 1/4 | 1/4 | 1/4 | 3/4 | 3/4 | 3/4 | 3/4 | 4/4 | 4/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 | 1/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 3/4 | 0/4 | 0/4 | ||
| Array.from, array-like objects | Yes | Yes | No | No | No | No | Yes | No | No | Yes | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | No | No | ||
| Array.from, generic iterables | Yes | Yes | No | No | No | No | Yes | No | No | Yes | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | No | No | ||
| Array.from, instances of generic iterables | Yes | Yes | No | No | No | No | No | No | No | Yes | 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 | No | No | No | No | No | No | No | ||
| Array.of | Yes | Yes | No | No | No | No | Yes | No | No | Yes | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | Flag | No | No | No | No | No | No | No | Yes | No | No | No | No | No | No | Yes | No | No | ||
| §Array.prototype methods | 6/8 | 8/8 | 0/8 | 0/8 | 0/8 | 0/8 | 7/8 | 0/8 | 0/8 | 8/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 2/8 | 2/8 | 4/8 | 4/8 | 4/8 | 5/8 | 6/8 | 6/8 | 6/8 | 6/8 | 6/8 | 6/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 0/8 | 3/8 | 3/8 | 3/8 | 3/8 | 3/8 | 0/8 | 0/8 | 0/8 | 5/8 | 5/8 | 0/8 | 0/8 | 0/8 | 0/8 | 4/8 | 3/8 | 7/8 | 0/8 | 5/8 | ||
| Array.prototype.copyWithin | No | Yes | No | No | No | No | Yes | No | No | Yes | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | No | No | ||
| Array.prototype.find | Yes | Yes | No | No | No | No | Yes | No | No | Yes | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | No | No | No | Yes | Yes | No | No | No | No | Flag | No | Yes | No | Yes | ||
| Array.prototype.findIndex | Yes | Yes | No | No | No | No | Yes | No | No | Yes | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Flag | No | No | No | Yes | Yes | No | No | No | No | Flag | No | Yes | No | Yes | ||
| Array.prototype.fill | Yes | Yes | No | No | No | No | Yes | No | No | Yes | No | 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 | No | Flag | Flag | Flag | Flag | Flag | Flag | Flag | No | No | No | Yes | Yes | No | No | No | No | Flag | No | Yes | No | Yes | ||
| Array.prototype.keys | Yes | Yes | No | No | No | No | Yes | No | No | Yes | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | No | No | No | No | Yes | Yes | Yes | No | Yes | ||
| Array.prototype.values | Yes | Yes | No | No | No | No | Yes | No | No | Yes | No | No | No | No[22] | No[22] | No[22] | No[22] | No[22] | No[23] | No[23] | No[23] | No[23] | No[23] | No[23] | No[23] | No[23] | No[23] | No[24] | No[24] | No | No | No | Flag | Flag | Flag | Flag | Flag | Flag | Flag | No[24] | No[24] | No[24] | No[24] | No[24] | No | No | No | No | No | No | No | No | No | Yes | No | Yes | No | No | ||
| Array.prototype.entries | Yes | Yes | No | No | No | No | Yes | No | No | Yes | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Flag | Flag | Flag | Flag | Flag | Flag | Flag | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | No | No | No | No | Yes | Yes | Yes | No | Yes | ||
| Array.prototype[Symbol.unscopables] | No | Yes | No | No | No | No | No | No | No | 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 | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Yes | Yes | No | No | No | ||
| §Number properties | 7/7 | 7/7 | 0/7 | 0/7 | 0/7 | 0/7 | 7/7 | 0/7 | 0/7 | 7/7 | 0/7 | 0/7 | 3/7 | 3/7 | 3/7 | 3/7 | 3/7 | 4/7 | 4/7 | 4/7 | 4/7 | 4/7 | 6/7 | 7/7 | 7/7 | 7/7 | 7/7 | 7/7 | 7/7 | 0/7 | 2/7 | 2/7 | 2/7 | 2/7 | 2/7 | 7/7 | 7/7 | 7/7 | 7/7 | 7/7 | 7/7 | 7/7 | 7/7 | 7/7 | 0/7 | 0/7 | 0/7 | 0/7 | 7/7 | 0/7 | 6/7 | 0/7 | 0/7 | 7/7 | 7/7 | 7/7 | 0/7 | 0/7 | ||
| Number.isFinite | Yes | Yes | No | No | No | No | Yes | No | No | Yes | 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 | No | No | No | No | Yes | No | Yes | No | No | Yes | Yes | Yes | No | No | ||
| Number.isInteger | Yes | Yes | No | No | No | No | Yes | No | No | Yes | No | No | 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 | Yes | No | No | No | No | Yes | No | Yes | No | No | Yes | Yes | Yes | No | No | ||
| Number.isSafeInteger | Yes | Yes | No | No | No | No | Yes | No | No | Yes | 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 | Yes | Yes | Yes | No | No | No | No | Yes | No | Yes | No | No | Yes | Yes | Yes | No | No | ||
| Number.isNaN | Yes | Yes | No | No | No | No | Yes | No | No | Yes | 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 | No | No | No | No | Yes | No | Yes | No | No | Yes | Yes | Yes | No | No | ||
| Number.EPSILON | Yes | Yes | No | No | No | No | Yes | No | No | Yes | No | No | No | No | No | No | No | 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 | Yes | No | No | No | No | Yes | No | No | No | No | Yes | Yes | Yes | No | No | ||
| Number.MIN_SAFE_INTEGER | Yes | Yes | No | No | No | No | Yes | No | No | Yes | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | Yes | No | No | Yes | Yes | Yes | No | No | ||
| Number.MAX_SAFE_INTEGER | Yes | Yes | No | No | No | No | Yes | No | No | Yes | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | Yes | No | No | Yes | Yes | Yes | No | No | ||
| §Math methods | 17/17 | 17/17 | 0/17 | 0/17 | 0/17 | 0/17 | 17/17 | 0/17 | 0/17 | 16/17 | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 1/17 | 1/17 | 14/17 | 16/17 | 16/17 | 16/17 | 16/17 | 17/17 | 17/17 | 17/17 | 17/17 | 17/17 | 17/17 | 17/17 | 0/17 | 0/17 | 1/17 | 1/17 | 1/17 | 1/17 | 1/17 | 1/17 | 1/17 | 1/17 | 17/17 | 17/17 | 17/17 | 17/17 | 17/17 | 0/17 | 0/17 | 1/17 | 15/17 | 16/17 | 0/17 | 14/17 | 0/17 | 1/17 | 17/17 | 17/17 | 17/17 | 1/17 | 15/17 | ||
| Math.clz32 | Yes | Yes | No | No | No | No | Yes | No | No | Yes | No | 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 | Flag | Flag | Flag | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | No | No | ||
| Math.imul | Yes | Yes | No | No | No | No | Yes | No | No | Yes | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes[25] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | No | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | ||
| Math.sign | Yes | Yes | No | No | No | No | Yes | No | No | Yes | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | Flag | Flag | Flag | Flag | Flag | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | Yes | No | No | Yes | Yes | Yes | No | No | ||
| Math.log10 | Yes | Yes | No | No | No | No | Yes | No | No | Yes | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | Flag | Flag | Flag | Flag | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | No | Yes | No | No | Yes | Yes | Yes | No | Yes | ||
| Math.log2 | Yes | Yes | No | No | No | No | Yes | No | No | Yes | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | Flag | Flag | Flag | Flag | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | No | Yes | No | No | Yes | Yes | Yes | No | Yes | ||
| Math.log1p | Yes | Yes | No | No | No | No | Yes | No | No | Yes | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | Flag | Flag | Flag | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | No | Yes | No | No | Yes | Yes | Yes | No | Yes | ||
| Math.expm1 | Yes | Yes | No | No | No | No | Yes | No | No | Yes | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | Flag | Flag | Flag | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | No | No | No | No | Yes | Yes | Yes | No | Yes | ||
| Math.cosh | Yes | Yes | No | No | No | No | Yes | No | No | Yes | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | Flag | Flag | Flag | Flag | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | No | Yes | No | No | Yes | Yes | Yes | No | Yes | ||
| Math.sinh | Yes | Yes | No | No | No | No | Yes | No | No | Yes | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | Flag | Flag | Flag | Flag | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | No | Yes | No | No | Yes | Yes | Yes | No | Yes | ||
| Math.tanh | Yes | Yes | No | No | No | No | Yes | No | No | Yes | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | Flag | Flag | Flag | Flag | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | No | Yes | No | No | Yes | Yes | Yes | No | Yes | ||
| Math.acosh | Yes | Yes | No | No | No | No | Yes | No | No | Yes | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | Flag | Flag | Flag | Flag | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | No | Yes | No | No | Yes | Yes | Yes | No | Yes | ||
| Math.asinh | Yes | Yes | No | No | No | No | Yes | No | No | Yes | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | Flag | Flag | Flag | Flag | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | No | No | No | No | Yes | Yes | Yes | No | Yes | ||
| Math.atanh | Yes | Yes | No | No | No | No | Yes | No | No | Yes | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | Flag | Flag | Flag | Flag | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | No | Yes | No | No | Yes | Yes | Yes | No | Yes | ||
| Math.trunc | Yes | Yes | No | No | No | No | Yes | No | No | Yes | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | Flag | Flag | Flag | Flag | Flag | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | No | Yes | No | No | Yes | Yes | Yes | No | Yes | ||
| Math.fround | Yes | Yes | No | No | No | No | Yes | No | No | Yes | No | No | No | No | No | No | No | No | Yes[26] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | Flag | Flag | Flag | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | No | Yes | No | No | Yes | Yes | Yes | No | Yes | ||
| Math.cbrt | Yes | Yes | No | No | No | No | Yes | No | No | Yes | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | Flag | Flag | Flag | Flag | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | No | Yes | No | No | Yes | Yes | Yes | No | Yes | ||
| Math.hypot | Yes | Yes | No | No | No | No | Yes | 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 | Flag | Flag | Flag | Flag | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | No | Yes | No | No | Yes | Yes | Yes | No | Yes | ||
| Subclassing | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| §Array is subclassable | 0/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 | 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 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | ||
| 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Flag | No | No | No | ||
| Array.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 | 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 | ||
| Array.from | No[14] | No[14] | No | No | No | No | No | No | No | 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 | No | No | No | No | No | No | No | No | No | No | No | ||
| Array.of | No[14] | No[14] | No | No | No | No | No | No | No | 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 | No | No | No | No | No | No | No | No | No | No | No | ||
| §RegExp is subclassable | 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 | 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 | 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 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| RegExp.prototype.exec | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| RegExp.prototype.test | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| §Function is subclassable | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | ||
| can be called | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| can 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 | 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 | ||
| Function.prototype.call | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| Function.prototype.apply | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| Function.prototype.bind | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| §Promise is subclassable | 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 | 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 | 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 functionality | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| Promise.all | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| Promise.race | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| §miscellaneous subclassables | 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 | 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 | 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 | ||
| Boolean is subclassable | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| Number is subclassable | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| String is subclassable | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| Misc | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| §Object static methods accept primitives | 0/10 | 10/10 | 0/10 | 0/10 | 0/10 | 0/10 | 1/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 1/10 | 1/10 | 10/10 | 10/10 | 10/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 2/10 | 2/10 | 2/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 0/10 | 2/10 | 0/10 | 0/10 | 0/10 | ||
| Object.getPrototypeOf | No | 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 | 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 | ||
| Object.getOwnPropertyDescriptor | No | 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 | 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 | ||
| Object.getOwnPropertyNames | No | Yes | 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 | 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 | Yes | No | No | No | ||
| Object.seal | No | 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 | 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 | ||
| Object.freeze | No | 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 | 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 | ||
| Object.preventExtensions | No | 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 | 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 | ||
| Object.isSealed | No | 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 | 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 | ||
| Object.isFrozen | No | 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 | 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 | ||
| Object.isExtensible | No | 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 | 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 | ||
| Object.keys | No | Yes | No | No | No | No | 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 | No | No | No | No | No | No | No | No | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | Yes | No | No | No | ||
| §miscellaneous | 0/7 | 4/7 | 0/7 | 0/7 | 0/7 | 0/7 | 1/7 | 2/7 | 2/7 | 2/7 | 2/7 | 2/7 | 2/7 | 2/7 | 2/7 | 2/7 | 2/7 | 2/7 | 2/7 | 2/7 | 2/7 | 2/7 | 2/7 | 2/7 | 2/7 | 3/7 | 3/7 | 3/7 | 3/7 | 2/7 | 2/7 | 2/7 | 2/7 | 2/7 | 2/7 | 2/7 | 2/7 | 2/7 | 2/7 | 2/7 | 2/7 | 2/7 | 2/7 | 3/7 | 2/7 | 2/7 | 2/7 | 2/7 | 2/7 | 2/7 | 1/7 | 2/7 | 2/7 | 2/7 | 2/7 | 1/7 | 2/7 | 2/7 | ||
| duplicate property names in strict mode | No | 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 | 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 | No | No | No | No | ||
| no semicolon needed after do-while | No | Yes | 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 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | No | Yes | Yes | ||
| no assignments allowed in for-in head | No | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| accessors aren't constructors | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| Invalid Date | 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 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| RegExp constructor can alter flags | No | Yes | No | No | No | No | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| built-in prototypes are not instances | 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 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| Annex b | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| §hoisted block-level function declaration | 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 | 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 | Yes | No | No | No | No | No | No | ||
| §__proto__ in object literals[27] | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 1/5 | 1/5 | 1/5 | 1/5 | 1/5 | 1/5 | 1/5 | 1/5 | 1/5 | 1/5 | 1/5 | 1/5 | 1/5 | 1/5 | 1/5 | 1/5 | 1/5 | 2/5 | 5/5 | 5/5 | 5/5 | 1/5 | 1/5 | 1/5 | 1/5 | 1/5 | 1/5 | 1/5 | 1/5 | 1/5 | 1/5 | 1/5 | 1/5 | 1/5 | 1/5 | 2/5 | 1/5 | 1/5 | 1/5 | 2/5 | 2/5 | 1/5 | 1/5 | 1/5 | 1/5 | 1/5 | 1/5 | 0/5 | 1/5 | 2/5 | ||
| basic support | 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 | Yes | Yes | Yes | Yes | Yes | 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 | ||
| multiple __proto__ is an error | 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 | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| not a computed property | 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 | No | No | No | No | No | No | Yes | Yes | No | No | No | No | No | No | No | No | Yes | ||
| not a shorthand property | 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 | No | No | No | No | No | No | No | No | ||
| not a shorthand method | 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 | No | No | No | No | No | No | No | No | ||
| §Object.prototype.__proto__ | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 3/3 | 3/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 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/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 | 3/3 | 3/3 | 3/3 | 2/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 2/3 | 3/3 | 3/3 | 3/3 | 3/3 | 0/3 | 3/3 | 3/3 | ||
| get prototype | 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 | Yes | Yes | Yes | Yes | Yes | 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 | ||
| set prototype | 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 | Yes | Yes | Yes | Yes | Yes | 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 | ||
| correct property descriptor | No | No | No | No | No | No | No | No | Yes | Yes | No | No | No | 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 | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | No | Yes | Yes | ||
| §String.prototype HTML methods | 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 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | ||
| §RegExp.prototype.compile | 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 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | ||
__createIterableObject(), used in the numerous "generic iterables" tests, is defined as:
[1] Flagged features require an optional transformer setting.
[2] Have to be enabled via harmony option
[3] Have to be enabled via "Experimental Web Platform Features" flag
[4] Flagged features have to be enabled via "Experimental Javascript features" flag
[5] Results are only applicable for the KHTML rendering engine.
[6] Flagged features have to be enabled via --harmony or --es_staging flag
[7] Requires the properTailCalls compile option.
[8] This compiler requires generic iterables have a Symbol.iterator or non-standard "@@iterator" method.
[9] WebKit doesn't support parenthesised object destructuring patterns (e.g. ({f,g}) = {f:9,g:10}).
[10] Available for code in a <script type="application/javascript;version=1.7"> (or version=1.8) tag.
[11] Note that prior to ES6, it was recommended that ES5 implementations forbid block-level declarations in strict mode.
[12] TypeScript only supports class statements at script or module top-level.
[13] Support for this feature incorrectly requires strict mode.
[14] Requires native support for Object.prototype.__proto__
[15] This compiler transforms extends into code that copies properties from the superclass, instead of using the prototype chain.
[16] TypeScript transforms extends into code that copies static properties from the superclass (but uses the prototype chain for instance properties).
[17] Firefox doesn't allow a proxy's "get" handler to be triggered via the prototype chain, unless the proxied object does possess the named property (or the proxy's "has" handler reports it as present).
[18] From Firefox 18 up to 29, the getOwnPropertyDescriptor handler can only report non-existent properties if the proxy target is non-extensible rather than extensible
[19] Available from Firefox 18 up to 33 as the draft standard keys handler
[20] with is not supported in ejs
[21] Available as the draft standard String.prototype.contains
[22] Available from Firefox 17 up to 27 as the non-standard Array.prototype.iterator
[23] Available from Firefox 27 up to 35 as the non-standard Array.prototype["@@iterator"]
[24] Available as Array.prototype[Symbol.iterator]
[25] Available since Chrome 28
[26] Available since Firefox 26
[27] Note that this is distinct from the existence or functionality of Object.prototype.__proto__.