Also see compatibility tables for ES5 or non-standard features
by kangaxPlease note that some of these tests represent existence, not functionality or full conformance.
| Feature name | Current browser | Traceur | IE 10 | IE 11 | FF 11-12 | FF 13 | FF 16 | FF 17 | FF 18 | FF 23 | FF 24 | FF 25 | FF 27-28 | FF 29 | FF 30 | CH <19 | CH 19[1] | CH 21-29[1] | CH 30[1] | CH 33[1] | CH 34[1] | SF 5.1 | SF 6 | SF 7 | WK | OP 12 | OP 15 | KQ 4.9 | RH | Node | Node harmony[2] | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| §arrow functions | Yes | 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 | ||
| §const | Yes | No | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | ||
| §let | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Yes | ||
| §default function params | Yes | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| §rest parameters | Yes | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| §spread call (...) operator | Yes | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Yes | No | No | No | No | No | No | ||
| §spread array (...) operator | Yes | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Yes | No | No | No | No | No | No | ||
| §class | 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 properties | 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 | ||
| §Modules | 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 | Yes | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Yes | No | No | No | No | No | No | ||
| §Array comprehensions | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| §Generator comprehensions | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| §Iterators | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| §Generators (yield) | Yes | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Yes | ||
| §Template Strings | 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 | ||
| §RegExp "y" flag | Yes | 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 | ||
| §Map | No | No | Yes | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | No | No | No | Yes | No | No | No | No | No | Yes | ||
| §Set | No | No | Yes | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | No | No | No | Yes | No | No | No | No | No | Yes | ||
| §WeakMap | No | No | Yes | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | No | No | No | Yes | No | No | No | No | No | Yes | ||
| §WeakSet | 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 | ||
| §Proxy | 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 | ||
| §Structs (binary data storage) | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| §Block-level function declaration | No | No | Yes | 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 | Yes | ||
| §Destructuring | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Yes | No | No | No | No | No | No | ||
| §Promise | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | No | No | No | No | Yes | Yes | No | No | No | Yes | No | No | No | No | No | No | ||
| §Object.assign | 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.getOwnPropertyDescriptors | No | No | No | No | No | No | 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.getPropertyDescriptor | 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.getPropertyNames | No | No | No | No | No | No | 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.is | Yes | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | Yes | No | No | Yes | Yes | ||
| §Object.setPrototypeOf | No | No | Yes | 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 | ||
| §Object.observe (part of ES7) | 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 | ||
| §String.fromCodePoint | Yes | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| §String.prototype.codePointAt | Yes | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| a class="anchor" href="#String.prototype.repeat">§String.prototype.repeat | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Yes | ||
| §String.prototype.startsWith | Yes | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Yes | ||
| §String.prototype.endsWith | Yes | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Yes | ||
| §String.prototype.contains | Yes | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Yes | ||
| §String.prototype.toArray | 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 | ||
| §Symbol | 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 | ||
| §Unicode code point escapes | No | No | No | No | No | No | 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 | No | No | No | No | No | 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 | 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 | ||
| §Array.prototype.find | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Yes | ||
| §Array.prototype.findIndex | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Yes | ||
| §Array.prototype.fill | No | No | No | No | No | No | 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.isFinite | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | Yes | No | No | Yes | Yes | ||
| §Number.isInteger | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | Yes | No | No | No | No | No | No | No | No | No | No | ||
| §Number.isNaN | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | Yes | No | No | Yes | Yes | ||
| §Number.toInteger | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| §Number.prototype.clz | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| §Math.imul | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes[3] | Yes | Yes | Yes | No | No | Yes | Yes | No | Yes | No | No | No | Yes | ||
| §Math.sign | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | No | No | No | No | No | Yes | No | No | No | No | No | No | No | No | No | No | ||
| §Math.log10 | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | No | No | No | No | No | Yes | No | No | No | Yes | No | No | No | No | No | No | ||
| §Math.log2 | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | No | No | No | No | No | Yes | No | No | No | Yes | No | No | No | No | No | No | ||
| §Math.log1p | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Yes | No | No | No | No | No | No | ||
| §Math.expm1 | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Yes | No | No | No | No | No | No | ||
| §Math.cosh | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | No | No | No | No | No | Yes | No | No | No | Yes | No | No | No | No | No | No | ||
| §Math.sinh | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | No | No | No | No | No | Yes | No | No | No | Yes | No | No | No | No | No | No | ||
| sect;Math.tanh | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | No | No | No | No | No | Yes | No | No | No | Yes | No | No | No | No | No | No | ||
| §Math.acosh | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | No | No | No | No | No | Yes | No | No | No | Yes | No | No | No | No | No | No | ||
| §Math.asinh | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | No | No | No | No | No | Yes | No | No | No | Yes | No | No | No | No | No | No | ||
| §Math.atanh | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | No | No | No | No | No | Yes | No | No | No | Yes | No | No | No | No | No | No | ||
| §Math.hypot | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | No | No | No | No | No | Yes | No | No | No | No | No | No | No | No | No | No | ||
| §Math.trunc | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | No | No | No | No | No | Yes | No | No | No | Yes | No | No | No | No | No | No | ||
| §Math.fround | No | No | No | No | No | No | No | No | No | No | No | Yes[4] | Yes | Yes | No | No | No | No | No | No | No | No | No | Yes | No | No | No | No | No | No |
[1] Have to be enabled via "Experimental Javascript features" flag
[2] Have to be enabled via --harmony flag
[3] Available since Chrome 28
[4] Available since Firefox 26