Please note that some of these tests represent existence, not functionality or full conformance.

Feature name Current browser Traceur EJS 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 FF 31 FF 32 FF 33 FF 34 CH <19 CH 19[1] CH 21-29[1] CH 30,
OP 17
[1]
CH 33,
OP 20
[1]
CH 34,
OP 21
[1]
CH 35,
OP 22
[1]
CH 37,
OP 24
[1]
SF 5.1 SF 6 SF 7 WK OP 12 KQ 4.13 RH PH Node Node harmony[2]
§proper tail calls (tail call optimisation) No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No
§arrow functions Yes Yes No No No No No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No No No No No No Yes No No No No No No No No No No
§const Yes Yes 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 No Yes Yes Yes Yes Yes No Yes Yes Yes
§let Yes Yes No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No Yes Yes Yes Yes Yes Yes Yes No No No No No No No No No Yes
§default function parameters Yes Yes No No No No No No Yes[3] Yes[3] Yes[3] Yes[3] Yes[3] Yes[3] Yes[3] Yes[3] Yes[3] Yes[3] Yes[3] No No No No No No No No No No No No No No No No No No
§rest parameters Yes Yes No No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No No No No No No No No No No No No No No No No No
§spread call (...) operator Yes Yes 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 Yes No No No No No No
§spread array (...) operator Yes Yes No No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No No No No No No No No No No Yes No No No No No No
§string spreading Yes Yes No No No No No[4] 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
§class 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
§super 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
§computed properties Yes 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 No Yes No No No No No No
§shorthand properties Yes Yes 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
§shorthand methods Yes 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 No No No No No No No No
§modules 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
§for..of loops Yes Yes No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No No No No No No Yes No No No Yes No No No No No No
§generators (yield) Yes No No No No No No No No No No No Yes Yes Yes Yes Yes Yes Yes No No Yes Yes Yes Yes Yes Yes No No No No No No No No No Yes
§octal literals Yes No No No No No No No No No No Yes Yes Yes Yes Yes Yes Yes Yes No No No Yes[5] Yes[5] Yes[5] Yes[5] Yes[5] No No No No No No No No No No
§binary literals Yes No No No No No No No No No No Yes Yes Yes Yes Yes Yes Yes Yes No No No Yes[5] Yes[5] Yes[5] Yes[5] Yes[5] No No No No No No No No No No
§template strings Yes 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 No No No No No No No No
§tagged template strings Yes 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 No No No No No No No No
§RegExp "y" flag 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
§RegExp "u" flag 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
§typed arrays No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No Yes Yes Yes
§typed arrays (DataView) 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 No No Yes Yes Yes
§Map Yes Yes No Yes[6] No No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No Yes[6] Yes[6] Yes[6] Yes[6] Yes[6] Yes[6] No No No Yes[6] No No No No No Yes[6]
§Set Yes Yes No Yes[6] No No No No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes No No Yes[6] Yes[6] Yes[6] Yes[6] Yes[6] Yes[6] No No No Yes[6] No No No No No Yes[6]
§WeakMap No No No Yes[7] No No No No No Yes[7] Yes[7] Yes[7] Yes[7] Yes[7] Yes[7] Yes[7] Yes[7] Yes[7] Yes[7] No No Yes[7] Yes[7] Yes[7] Yes[7] Yes[7] Yes[7] No No No Yes[7] No No No No No Yes[7]
§WeakSet No No No No No No No No No No No No No No No No No No Yes No No No No Yes[7] Yes[7] Yes[7] Yes[7] No No No No No No No No No Yes[7]
§Proxy No Yes 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
§Reflect No No No No No No No No No No No No No 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.Loader No No No No No No No No No No No No No 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 Yes No No Yes No No No No No No No No No No No No No No No No No Yes Yes Yes Yes Yes Yes No No No No No No No No No Yes
§destructuring Yes Yes 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 Yes No No No No No No
§destructuring parameters Yes Yes 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 Yes No No No No No No
§destructuring defaults 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
§destructuring rest 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
§Promise Yes Yes No No No No No No No No No No No Yes Yes Yes Yes Yes Yes No No No No Yes Yes Yes Yes No No No Yes No No No No No Yes
§Object.assign Yes 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 No No No No No No No No
§Object.is Yes Yes No No No No No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No Yes Yes Yes Yes Yes Yes Yes No No No No No Yes No No Yes Yes
§Object.getOwnPropertySymbols Yes Yes No No No No No No No No No No No No No No No Yes Yes No No No No No Yes Yes Yes No No No No No No No No No Yes
§Object.setPrototypeOf No Yes No Yes No No No No No No No No No No No Yes Yes Yes Yes No No No No No Yes Yes Yes No No No No No No No No No Yes
§function "name" property 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 Yes
§Function.prototype.toMethod No No No No No No No No No No No No No 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.raw Yes 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
§String.fromCodePoint Yes Yes No No No No No No No No No No No Yes Yes Yes Yes Yes Yes No No No No No No No Yes No No No No No No No No No No
§String.prototype.codePointAt Yes Yes No No No No No No No No No No No Yes Yes Yes Yes Yes Yes No No No No No No No Yes No No No No No No No No No No
§String.prototype.normalize No No No No No No No No No No No No No No No Yes Yes Yes Yes No No No No No Yes Yes Yes No No No No No No No No No No
§String.prototype.repeat Yes Yes No No No No No No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes No No No Yes Yes Yes Yes Yes No No No No No No No No No Yes
§String.prototype.startsWith Yes Yes No No No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No No Yes Yes Yes Yes Yes No No No No No No No No No Yes
§String.prototype.endsWith Yes Yes No No No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No No Yes Yes Yes Yes Yes No No No No No No No No No Yes
§String.prototype.contains Yes Yes No No No No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No No Yes Yes Yes Yes Yes No No No No No No No No No Yes
§Unicode code point escapes 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
§Symbol No Yes No No No No No No No No No No No No No No No Yes Yes No No No No Yes Yes Yes Yes No No No No No No No No No Yes
§Global symbol registry 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 Yes Yes No No No No No No No No No Yes
§Symbol.create No No No No No No No No No No No No No 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.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
§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
§Symbol.isRegExp No No No No No No No No No No No No No 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.iterator No No No No No No No No No No No No No 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.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
§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
§Symbol.unscopables No No No No No No No No No No No No No 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.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
§RegExp.prototype.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
§RegExp.prototype.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
§RegExp.prototype.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
§Array.from Yes Yes 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
§Array.of Yes Yes No No No No No No No No No Yes Yes Yes Yes Yes Yes Yes Yes No No No No No No No No No No No No No No No No No No
§Array.prototype.copyWithin 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
§Array.prototype.find Yes Yes No No No No No No No No No Yes Yes Yes Yes Yes Yes Yes Yes No No No Yes Yes Yes Yes Yes No No No Yes No No No No No Yes
§Array.prototype.findIndex Yes Yes No No No No No No No No No Yes Yes Yes Yes Yes Yes Yes Yes No No No Yes Yes Yes Yes Yes No No No Yes No No No No No Yes
§Array.prototype.fill Yes 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 Yes No No No Yes No No No No No No
§Array.prototype.keys Yes Yes No No No No No No No No No No No Yes Yes Yes Yes Yes Yes No No No Yes Yes Yes Yes Yes No No No Yes No No No No No Yes
§Array.prototype.values Yes Yes No No No No No No[8] No No No No No[9] No No No No No No No No No Yes Yes Yes Yes Yes No No No No No No No No No Yes
§Array.prototype.entries Yes Yes No No No No No No No No No No No Yes Yes Yes Yes Yes Yes No No No Yes Yes Yes Yes Yes No No No Yes No No No No No Yes
§Array.prototype[Symbol.unscopables] No No No No No No No No No No No No No 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 Yes Yes No No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No Yes Yes Yes Yes Yes Yes Yes No No No No No Yes No No Yes Yes
§Number.isInteger Yes Yes No No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No No No No Yes Yes Yes No No No No No Yes No No No Yes
§Number.isSafeInteger Yes Yes No No No No No No No No No No No No No No Yes Yes Yes No No No No No Yes Yes Yes No No No No No Yes No No No Yes
§Number.isNaN Yes Yes No No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No Yes Yes Yes Yes Yes Yes Yes No No No No No Yes No No Yes Yes
§Number.EPSILON Yes Yes No No No No No No No No No Yes Yes Yes Yes Yes Yes Yes Yes No No No No No Yes Yes Yes No No No No No No No No No Yes
§Number.MIN_SAFE_INTEGER Yes Yes No No No No No No No No No No No No No Yes Yes Yes Yes No No No No No Yes Yes Yes No No No No No Yes No No No Yes
§Number.MAX_SAFE_INTEGER Yes Yes No No No No No No No No No No No No No Yes Yes Yes Yes No No No No No Yes Yes Yes No No No No No Yes No No No Yes
§Math.clz32 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 Yes Yes No No No No No No No No No Yes
§Math.imul No Yes No No No No No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No Yes[10] Yes Yes Yes Yes Yes No No Yes Yes No Yes No No No Yes
§Math.sign No Yes No No No No No No No No No Yes Yes Yes Yes Yes Yes Yes Yes No No No No No Yes Yes Yes No No No Yes No Yes No No No Yes
§Math.log10 No Yes No No No No No No No No No Yes Yes Yes Yes Yes Yes Yes Yes No No No No No Yes Yes Yes No No No Yes No Yes No No No Yes
§Math.log2 No Yes No No No No No No No No No Yes Yes Yes Yes Yes Yes Yes Yes No No No No No Yes Yes Yes No No No Yes No Yes No No No Yes
§Math.log1p No Yes No No No No No No No No No Yes Yes Yes Yes Yes Yes Yes Yes No No No No No No Yes Yes No No No Yes No Yes No No No Yes
§Math.expm1 No Yes No No No No No No No No No Yes Yes Yes Yes Yes Yes Yes Yes No No No No No No Yes Yes No No No Yes No No No No No Yes
§Math.cosh No Yes No No No No No No No No No Yes Yes Yes Yes Yes Yes Yes Yes No No No No No Yes Yes Yes No No No Yes No Yes No No No Yes
§Math.sinh No Yes No No No No No No No No No Yes Yes Yes Yes Yes Yes Yes Yes No No No No No Yes Yes Yes No No No Yes No Yes No No No Yes
§Math.tanh No Yes No No No No No No No No No Yes Yes Yes Yes Yes Yes Yes Yes No No No No No Yes Yes Yes No No No Yes No Yes No No No Yes
§Math.acosh No Yes No No No No No No No No No Yes Yes Yes Yes Yes Yes Yes Yes No No No No No Yes Yes Yes No No No Yes No Yes No No No Yes
§Math.asinh No Yes No No No No No No No No No Yes Yes Yes Yes Yes Yes Yes Yes No No No No No Yes Yes Yes No No No Yes No No No No No Yes
§Math.atanh No Yes No No No No No No No No No Yes Yes Yes Yes Yes Yes Yes Yes No No No No No Yes Yes Yes No No No Yes No Yes No No No Yes
§Math.hypot No Yes No No No No No No No No No No Yes Yes Yes Yes Yes Yes Yes No No No No No Yes Yes Yes No No No Yes No Yes No No No Yes
§Math.trunc No Yes No No No No No No No No No Yes Yes Yes Yes Yes Yes Yes Yes No No No No No Yes Yes Yes No No No Yes No Yes No No No Yes
§Math.fround No Yes No No No No No No No No No No Yes[11] Yes Yes Yes Yes Yes Yes No No No No No No Yes Yes No No No Yes No Yes No No No Yes
§Math.cbrt No Yes No No No No No No No No No Yes Yes Yes Yes Yes Yes Yes Yes No No No No No Yes Yes Yes No No No Yes No Yes No No No Yes
§__proto__ in object literals[12] Yes No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes[13] Yes[13] Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
§Hoisted block-level function declaration No No No No No No No No No No No No No No No No No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No Yes Yes Yes
§Object.prototype.__proto__ No No No Yes No No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No Yes No No Yes
§String.prototype HTML methods Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes 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.prototype.compile Yes No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes

[1] Have to be enabled via "Experimental Javascript features" flag

[2] Have to be enabled via --harmony flag

[3] In Firefox, defaults can incorrectly refer to later parameters (a=b, b), themselves (a=a), and/or identifiers in the function body (function(a=function(){ return b; }){ var b=true; ... })

[4] Spreading strings in array literals, but not in calls, is supported from Firefox 16 up.

[5] Number("0o1") and Number("0b1") incorrectly evaluate to 1 instead of NaN.

[6] Map and Set constructor arguments, such as new Map([[key, val]]) or new Set([obj1, obj2]), are not supported.

[7] WeakMap (and, except in Firefox, WeakSet) constructor arguments, such as new WeakMap([[key, val]]) or new WeakSet([obj1, obj2]), are not supported.

[8] Available from Firefox 17 up to 27 as the non-standard Array.prototype.iterator

[9] Available since Firefox 27 as the non-standard Array.prototype["@@iterator"]

[10] Available since Chrome 28

[11] Available since Firefox 26

[12] Note that this is distinct from the existence or functionality of Object.prototype.__proto__.

[13] Firefox 33+ incorrectly regards both of the following as true: