V8 SpiderMonkey JavaScriptCore Chakra Other
Minor difference (1 point) Small feature (2 points) Medium feature (4 points) Large feature (8 points)
Feature name Current browser Traceur Babel +
core-js
[2]
Closure Type-
Script +
core-js
es7-shim IE 9 IE 10 IE 11 Edge 12[3] Edge 13[3] Edge 14[3] Edge 15[3] FF 38
ESR
FF 44 FF 45 ESR FF 46 FF 47 FF 48 FF 49 FF 50 FF 51 FF 52 FF 53 Beta FF 54 Aurora FF 55 Nightly CH 47,
OP 34
[1]
CH 48,
OP 35
[1]
CH 49,
OP 36
[1]
CH 50,
OP 37
[1]
CH 51,
OP 38
[1]
CH 52,
OP 39
[1]
CH 53,
OP 40
[1]
CH 54,
OP 41
[1]
CH 55,
OP 42
[1]
CH 56,
OP 43
[1]
CH 57,
OP 44
[1]
CH 58,
OP 45
[1]
CH 59,
OP 46
[1]
SF
5.1
SF 6 SF 6.1,
SF 7
SF 7.1,
SF 8
SF 9 SF 10 SF 10.1 SF TP WK PJS Node 0.10[4] Node 0.12[4] io.js[4] Node 4[4] Node 5[4] Node 6.0-6.4[4] Node >=6.5 <7[4] Node 7.0-7.5[4] Node >=7.6 <8[4] AN 4.0 AN 4.1 AN 4.2 AN 4.3 AN 4.4 AN 5.0 AN 5.1 iOS 5.1 iOS 6 iOS 7 iOS 8 iOS 9 iOS 10
2016 features
§exponentiation (**) operator 2/3 3/3 3/3 2/3 0/3 0/3 0/3 0/3 0/3 0/3 3/3 3/3 0/3 0/3 0/3 0/3 0/3 0/3 0/3 0/3 0/3 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 0/3 0/3 0/3 0/3 0/3 0/3 3/3 3/3 3/3 0/3 0/3 0/3 0/3 0/3 0/3 0/3 0/3 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
§basic support Yes Yes Yes Yes No No No No No Flag Yes Yes No No[5] No[5] No[5] No[5] No[5] No[5] No[5] No[5] Yes Yes Yes Yes No No No No Flag Yes Yes Yes Yes Yes Yes Yes Yes No No No No No No Yes Yes Yes No No No No No No No Flag Yes Yes No No No No No No No No No No No No No
§assignment Yes Yes Yes Yes No No No No No Flag Yes Yes No No No No No No[5] No[5] No[5] No[5] Yes Yes Yes Yes No No No No Flag Yes Yes Yes Yes Yes Yes Yes Yes No No No No No No Yes Yes Yes No No No No No No No Flag Yes Yes No No No No No No No No No No No No No
§early syntax error for unary negation without parens No Yes Yes No No No No No No No Yes Yes No No No No No No No No No Yes Yes Yes Yes No No No No Flag Yes Yes Yes Yes Yes Yes Yes Yes No No No No No No Yes Yes Yes No No No No No No No Flag Yes Yes No No No No No No No No No No No No No
§Array.prototype.includes 0/3 3/3 0/3 3/3 2/3 0/3 0/3 0/3 0/3 0/3 3/3 3/3 0/3 3/3 3/3 3/3 3/3 3/3 3/3 3/3 3/3 3/3 3/3 3/3 3/3 3/3 3/3 3/3 3/3 3/3 3/3 3/3 3/3 3/3 3/3 3/3 3/3 3/3 0/3 0/3 0/3 0/3 2/3 3/3 3/3 3/3 3/3 0/3 0/3 0/3 0/3 0/3 0/3 3/3 3/3 3/3 3/3 0/3 0/3 0/3 0/3 0/3 0/3 0/3 0/3 0/3 0/3 0/3 2/3 3/3
§Array.prototype.includes No Yes No Yes[6] Yes No No No No No Yes Yes No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No No No Yes Yes Yes Yes Yes No No No No No No Yes Yes Yes Yes No No No No No No No No No No No Yes Yes
§Array.prototype.includes is generic No Yes No Yes[6] Yes No No No No No Yes Yes No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No No No Yes Yes Yes Yes Yes No No No No No No Yes Yes Yes Yes No No No No No No No No No No No Yes Yes
§%TypedArray%.prototype.includes No Yes No Yes[6] No No No No No No Yes Yes No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No No No No Yes Yes Yes Yes No No No No No No Yes Yes Yes Yes No No No No No No No No No No No No Yes
2016 misc
§generator functions can't be used with "new"[7] No No No No No No No No No Yes Yes Yes No 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 No No No No No Yes Yes Yes Yes No No No No No No Yes Yes Yes Yes No No No No No No No No No No No No Yes
§generator throw() caught by inner generator[8] No No Yes No No No No No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No No No No Yes Yes Yes Yes No No Flag Flag Yes Yes Yes Yes Yes Yes No No No No No No Yes No No No No No Yes
§strict fn w/ non-strict non-simple params is error[9] No No No No No No No No Yes Yes Yes Yes No No No No No No No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No No No No Yes Yes Yes Yes No No No No No No Yes Yes Yes Yes No No No No No No No No No No No No Yes
§nested rest destructuring, declarations[10] No Yes Yes Yes No No No No No Flag Yes Yes No No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No No No No No Yes Yes Yes No No No No No No Yes Yes Yes Yes No No No No No No No No No No No No No
§nested rest destructuring, parameters[11] No Yes Yes Yes No No No No No Flag Yes Yes No No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No No No No No Yes Yes Yes No No No No No No Yes Yes Yes Yes No No No No No No No No No No No No No
§Proxy, "enumerate" handler removed[12] No No No No No No No No No No No Yes No No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No No No No Yes Yes Yes Yes No No No No No No Yes Yes Yes Yes No No No No No No No No No No No No Yes
§Proxy internal calls, Array.prototype.includes No No No No No No No No No No Yes Yes No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No No No No Yes Yes Yes Yes No No No No No No Yes Yes Yes Yes No No No No No No No No No No No No Yes
2017 features
§Object static methods 0/4 3/4 0/4 3/4 3/4 0/4 0/4 0/4 0/4 0/4 2/4 4/4 0/4 0/4 0/4 0/4 2/4 2/4 2/4 4/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 4/4 4/4 4/4 4/4 4/4 4/4 0/4 0/4 0/4 0/4 0/4 1/4 4/4 4/4 4/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 0/4 0/4 1/4
§Object.values No Yes No Yes[6] Yes No No No No No Yes Yes No No No[5] No[5] Yes Yes Yes Yes Yes Yes Yes Yes Yes No No No No Flag Flag Flag Yes Yes Yes Yes Yes Yes No No No No No No Yes Yes Yes No No No No No No No Flag Yes Yes No No No No No No No No No No No No No
§Object.entries No Yes No Yes[6] Yes No No No No No Yes Yes No No No[5] No[5] Yes Yes Yes Yes Yes Yes Yes Yes Yes No No No No Flag Flag Flag Yes Yes Yes Yes Yes Yes No No No No No No Yes Yes Yes No No No No No No No Flag Yes Yes No No No No No No No No No No No No No
§Object.getOwnPropertyDescriptors No Yes No Yes[6] Yes No No No No No No Yes No No No No No No No Yes Yes Yes Yes Yes Yes No No No No Flag Flag Flag Yes Yes Yes Yes Yes Yes No No No No No Yes Yes Yes Yes No No No No No No No Flag Yes Yes No No No No No No No No No No No No Yes
§Object.getOwnPropertyDescriptors doesn't provide undefined descriptors No No No No No No No No No No No Yes No No No No No No No Yes Yes Yes Yes Yes Yes No No No No No No No Yes Yes Yes Yes Yes Yes No No No No No No Yes Yes Yes No No No No No No No No Yes Yes No No No No No No No No No No No No No
§String padding 0/2 2/2 0/2 2/2 2/2 0/2 0/2 0/2 0/2 0/2 0/2 2/2 0/2 0/2 0/2 0/2 0/2 2/2 2/2 2/2 2/2 2/2 2/2 2/2 2/2 0/2 0/2 0/2 0/2 0/2 0/2 0/2 0/2 0/2 0/2 2/2 2/2 2/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 0/2 0/2 0/2 0/2 0/2 0/2 0/2 0/2 0/2 2/2
§String.prototype.padStart No Yes No Yes[6] Yes No No No No No Flag Yes No No No No No Yes Yes Yes Yes Yes Yes Yes Yes No No No No No Flag Flag Flag Flag Flag Yes Yes Yes No No No No No Yes Yes Yes Yes No No No No No No No No Flag Flag No No No No No No No No No No No No Yes
§String.prototype.padEnd No Yes No Yes[6] Yes No No No No No Flag Yes No No No No No Yes Yes Yes Yes Yes Yes Yes Yes No No No No No Flag Flag Flag Flag Flag Yes Yes Yes No No No No No Yes Yes Yes Yes No No No No No No No No Flag Flag No No No No No No No No No No No No Yes
§trailing commas in function syntax 0/2 2/2 0/2 2/2 0/2 0/2 0/2 0/2 0/2 0/2 2/2 2/2 0/2 0/2 0/2 0/2 0/2 0/2 0/2 0/2 0/2 2/2 2/2 2/2 2/2 0/2 0/2 0/2 0/2 0/2 0/2 0/2 0/2 0/2 0/2 0/2 2/2 2/2 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 0/2 0/2 0/2 0/2 0/2 0/2 0/2 0/2 0/2 2/2
§in parameter lists No Yes No Yes No No No No No No Yes Yes No No No No No No No No No Yes Yes Yes Yes No No No No No No No No No No Flag Yes Yes 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 Yes
§in argument lists No Yes No Yes No No No No No No Yes Yes No No No No No No No No No Yes Yes Yes Yes No No No No No No No No No No Flag Yes Yes 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 Yes
§async functions 3/15 3/15 3/15 2/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 15/15 15/15 15/15 15/15 0/15 0/15 0/15 0/15 0/15 0/15 0/15 0/15 15/15 15/15 15/15 15/15 15/15 0/15 0/15 0/15 0/15 0/15 0/15 15/15 15/15 15/15 0/15 0/15 0/15 0/15 0/15 0/15 0/15 0/15 0/15 15/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
§return Yes Yes[13] Yes Yes[14] No No No No No Flag Flag Flag No No No No No No No No No Yes Yes Yes Yes No No No No No Flag Flag Flag Yes Yes Yes Yes Yes No No No No No No Yes Yes Yes No No No No No No No No Flag Yes No No No No No No No No No No No No No
§throw ? ? ? ? No No No No No Flag Flag Flag No No No No No No No No No Yes Yes Yes Yes No No No No No ? ? ? Yes Yes Yes Yes Yes No No No No No No Yes Yes Yes No No No No No No No No ? Yes No No No No No No No No No No No No No
§no line break between async and function ? ? ? ? No No No No No No Flag Flag No No No No No No No No No Yes Yes Yes Yes No No No No No ? ? ? Yes Yes Yes Yes Yes No No No No No No Yes Yes Yes No No No No No No No No ? Yes No No No No No No No No No No No No No
§no "prototype" property ? ? ? ? No No No No No Flag Flag Flag No No No No No No No No No Yes Yes Yes Yes No No No No No ? ? ? Yes Yes Yes Yes Yes No No No No No No Yes Yes Yes No No No No No No No No ? Yes No No No No No No No No No No No No No
§await Yes Yes[13] Yes Yes[14] No No No No No Flag Flag Flag No No No No No No No No No Yes Yes Yes Yes No No No No No Flag Flag Flag Yes Yes Yes Yes Yes No No No No No No Yes Yes Yes No No No No No No No No Flag Yes No No No No No No No No No No No No No
§await, rejection ? ? ? ? No No No No No Flag Flag Flag No No No No No No No No No Yes Yes Yes Yes No No No No No ? ? ? Yes Yes Yes Yes Yes No No No No No No Yes Yes Yes No No No No No No No No ? Yes No No No No No No No No No No No No No
§must await a value ? ? ? ? No No No No No Flag Flag Flag No No No No No No No No No Yes Yes Yes Yes No No No No No ? ? ? Yes Yes Yes Yes Yes No No No No No No Yes Yes Yes No No No No No No No No ? Yes No No No No No No No No No No No No No
§can await non-Promise values ? ? ? ? No No No No No Flag Flag Flag No No No No No No No No No Yes Yes Yes Yes No No No No No ? ? ? Yes Yes Yes Yes Yes No No No No No No Yes Yes Yes No No No No No No No No ? Yes No No No No No No No No No No No No No
§cannot await in parameters ? ? ? ? No No No No No Flag Flag Flag No No No No No No No No No Yes Yes Yes Yes No No No No No ? ? ? Yes Yes Yes Yes Yes No No No No No No Yes Yes Yes No No No No No No No No ? Yes No No No No No No No No No No No No No
§async methods, object literals ? ? ? ? No No No No No Flag Flag Flag No No No No No No No No No Yes Yes Yes Yes No No No No No ? ? ? Yes Yes Yes Yes Yes No No No No No No Yes Yes Yes No No No No No No No No ? Yes No No No No No No No No No No No No No
§async methods, classes ? ? ? ? No No No No No Flag Flag Flag No No No No No No No No No Yes Yes Yes Yes No No No No No ? ? ? Yes Yes Yes Yes Yes No No No No No No Yes Yes Yes No No No No No No No No ? Yes No No No No No No No No No No No No No
§async arrow functions Yes Yes[13] Yes No No No No No No Flag Flag Flag No No No No No No No No No Yes Yes Yes Yes No No No No No Flag Flag Flag Yes Yes Yes Yes Yes No No No No No No Yes Yes Yes No No No No No No No No Flag Yes No No No No No No No No No No No No No
§correct prototype chain ? ? ? ? No No No No No No Flag Flag No No No No No No No No No Yes Yes Yes Yes No No No No No ? ? ? Yes Yes Yes Yes Yes No No No No No No Yes Yes Yes No No No No No No No No ? Yes No No No No No No No No No No No No No
§async function prototype, Symbol.toStringTag ? ? ? ? No No No No No No No Flag No No No No No No No No No Yes Yes Yes Yes No No No No No ? ? ? Yes Yes Yes Yes Yes No No No No No No Yes Yes Yes No No No No No No No No ? Yes No No No No No No No No No No No No No
§async function constructor ? ? ? ? No No No No No No Flag Flag No No No No No No No No No Yes Yes Yes Yes No No No No No ? ? ? Yes Yes Yes Yes Yes No No No No No No Yes Yes Yes No No No No No No No No ? Yes No No No No No No No No No No No No No
§shared memory and atomics 0/17 0/17 0/17 0/17 0/17 0/17 0/17 0/17 0/17 0/17 0/17 0/17 0/17 0/17 0/17 0/17 0/17 0/17 0/17 0/17 0/17 0/17 17/17 17/17 17/17 0/17 0/17 0/17 0/17 0/17 0/17 0/17 0/17 0/17 0/17 0/17 0/17 0/17 0/17 0/17 0/17 0/17 0/17 0/17 16/17 17/17 17/17 0/17 0/17 0/17 0/17 0/17 0/17 0/17 0/17 0/17 0/17 0/17 0/17 0/17 0/17 0/17 0/17 0/17 0/17 0/17 0/17 0/17 0/17 0/17
§SharedArrayBuffer No No No No No No No No No No No No No No No No[5] No[5] No[5] No[5] No[5] No[15] No[15] Yes Yes Yes No Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] No No No No No No Yes Yes Yes No No No No No No Flag[16] Flag[16] Flag[16] Flag[16] No No No No No No No No No No No No No
§SharedArrayBuffer[Symbol.species] No No No No No No No No No No No No No No No No No No No No No No[15] Yes Yes Yes No No No No No No No No No No No No No No No No No No No Yes Yes Yes No No No No No No No No No No No No No No No No No No No No No No No
§SharedArrayBuffer.prototype.byteLength No No No No No No No No No No No No No No No No[5] No[5] No[5] No[5] No[5] No[15] No[15] Yes Yes Yes No Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] No No No No No No No Yes Yes No No No No No No Flag[16] Flag[16] Flag[16] Flag[16] No No No No No No No No No No No No No
§SharedArrayBuffer.prototype.slice No No No No No No No No No No No No No No No No No No No No No No[15] Yes Yes Yes No No No No No No No No No No No No No No No No No No No Yes Yes Yes No No No No No No No No No No No No No No No No No No No No No No No
§SharedArrayBuffer.prototype[Symbol.toStringTag] No No No No No No No No No No No No No No No No No No No No No No[15] Yes Yes Yes No Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] No No No No No No Yes Yes Yes No No No No No No Flag[16] Flag[16] Flag[16] Flag[16] No No No No No No No No No No No No No
§Atomics.add No No No No No No No No No No No No No No No No[5] No[5] No[5] No[5] No[5] No[15] No[15] Yes Yes Yes No Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] No No No No No No Yes Yes Yes No No No No No No Flag[16] Flag[16] Flag[16] Flag[16] No No No No No No No No No No No No No
§Atomics.and No No No No No No No No No No No No No No No No[5] No[5] No[5] No[5] No[5] No[15] No[15] Yes Yes Yes No Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] No No No No No No Yes Yes Yes No No No No No No Flag[16] Flag[16] Flag[16] Flag[16] No No No No No No No No No No No No No
§Atomics.compareExchange No No No No No No No No No No No No No No No No[5] No[5] No[5] No[5] No[5] No[15] No[15] Yes Yes Yes No Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] No No No No No No Yes Yes Yes No No No No No No Flag[16] Flag[16] Flag[16] Flag[16] No No No No No No No No No No No No No
§Atomics.exchange No No No No No No No No No No No No No No No No[5] No[5] No[5] No[5] No[5] No[15] No[15] Yes Yes Yes No Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] No No No No No No Yes Yes Yes No No No No No No Flag[16] Flag[16] Flag[16] Flag[16] No No No No No No No No No No No No No
§Atomics.wait No No No No No No No No No No No No No No No No No No[5] No[5] No[5] No[15] No[15] Yes Yes Yes No Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] No No No No No No Yes Yes Yes No No No No No No Flag[16] Flag[16] Flag[16] Flag[16] No No No No No No No No No No No No No
§Atomics.wake No No No No No No No No No No No No No No No No No No[5] No[5] No[5] No[15] No[15] Yes Yes Yes No Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] No No No No No No Yes Yes Yes No No No No No No Flag[16] Flag[16] Flag[16] Flag[16] No No No No No No No No No No No No No
§Atomics.isLockFree No No No No No No No No No No No No No No No No[5] No[5] No[5] No[5] No[5] No[15] No[15] Yes Yes Yes No Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] No No No No No No Yes Yes Yes No No No No No No Flag[16] Flag[16] Flag[16] Flag[16] No No No No No No No No No No No No No
§Atomics.load No No No No No No No No No No No No No No No No[5] No[5] No[5] No[5] No[5] No[15] No[15] Yes Yes Yes No Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] No No No No No No Yes Yes Yes No No No No No No Flag[16] Flag[16] Flag[16] Flag[16] No No No No No No No No No No No No No
§Atomics.or No No No No No No No No No No No No No No No No[5] No[5] No[5] No[5] No[5] No[15] No[15] Yes Yes Yes No Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] No No No No No No Yes Yes Yes No No No No No No Flag[16] Flag[16] Flag[16] Flag[16] No No No No No No No No No No No No No
§Atomics.store No No No No No No No No No No No No No No No No[5] No[5] No[5] No[5] No[5] No[15] No[15] Yes Yes Yes No Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] No No No No No No Yes Yes Yes No No No No No No Flag[16] Flag[16] Flag[16] Flag[16] No No No No No No No No No No No No No
§Atomics.sub No No No No No No No No No No No No No No No No[5] No[5] No[5] No[5] No[5] No[15] No[15] Yes Yes Yes No Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] No No No No No No Yes Yes Yes No No No No No No Flag[16] Flag[16] Flag[16] Flag[16] No No No No No No No No No No No No No
§Atomics.xor No No No No No No No No No No No No No No No No[5] No[5] No[5] No[5] No[5] No[15] No[15] Yes Yes Yes No Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] Flag[16] No No No No No No Yes Yes Yes No No No No No No Flag[16] Flag[16] Flag[16] Flag[16] No No No No No No No No No No No No No
2017 misc
§Proxy "ownKeys" handler, duplicate keys for non-extensible targets No No No No No No No No No No No No No No No No No No No No Yes Yes Yes Yes Yes No No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes No No No No No Yes Yes Yes Yes No No No No No No No Yes Yes Yes No No No No No No No No No No No No Yes
§RegExp "u" flag, case folding No No No No No No No No No No No No No No No No No No No No No No No Yes Yes No No No No No No No No No No No No Yes 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 Yes
§arguments.caller removed No No No No No No No No No No No No No No No No No No No No No No Yes Yes Yes No No No No No No No No No Yes Yes Yes Yes No No No No No No Yes Yes Yes No No No No No No No No No No No No No No No No No No No No No No No
2017 annex b
§Object.prototype getter/setter methods 0/16 16/16 0/16 16/16 0/16 0/16 0/16 8/16 12/16 12/16 12/16 12/16 14/16 14/16 14/16 14/16 14/16 16/16 16/16 16/16 16/16 16/16 16/16 16/16 16/16 10/16 10/16 10/16 10/16 10/16 10/16 10/16 10/16 10/16 10/16 12/16 12/16 12/16 12/16 12/16 12/16 12/16 16/16 16/16 16/16 16/16 16/16 12/16 0/16 10/16 10/16 10/16 10/16 10/16 10/16 10/16 10/16 10/16 10/16 10/16 10/16 6/16 6/16 10/16 8/16 12/16 12/16 12/16 16/16 16/16
§__defineGetter__ No Yes No Yes[6] No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
§__defineGetter__, symbols No Yes No Yes[6] No No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No No No Yes Yes Yes Yes Yes No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No Yes No No No No Yes Yes
§__defineGetter__, ToObject(this) No Yes No Yes[6] No No No No No No No No No No No No No Yes Yes Yes Yes Yes Yes Yes Yes No No No No No No No No No 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 No Yes Yes Yes Yes Yes
§__defineSetter__ No Yes No Yes[6] No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
§__defineSetter__, symbols No Yes No Yes[6] No No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No No No Yes Yes Yes Yes Yes No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No Yes No No No No Yes Yes
§__defineSetter__, ToObject(this) No Yes No Yes[6] No No No No No No No No No No No No No Yes Yes Yes Yes Yes Yes Yes Yes No No No No No No No No No 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 No Yes Yes Yes Yes Yes
§__lookupGetter__ No Yes No Yes[6] No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
§__lookupGetter__, prototype chain No Yes No Yes[6] No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
§__lookupGetter__, symbols No Yes No Yes[6] No No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No No No Yes Yes Yes Yes Yes No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No Yes No No No No Yes Yes
§__lookupGetter__, ToObject(this) No Yes No Yes[6] No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No No No No No No No No No No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No No No No No No No No No No No No No No No No Yes Yes Yes Yes Yes
§__lookupGetter__, data properties can shadow accessors No Yes No Yes[6] No No No No No No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No No No No No No No No No 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 Yes Yes Yes Yes Yes Yes
§__lookupSetter__ No Yes No Yes[6] No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
§__lookupSetter__, prototype chain No Yes No Yes[6] No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
§__lookupSetter__, symbols No Yes No Yes[6] No No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No No No Yes Yes Yes Yes Yes No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No Yes No No No No Yes Yes
§__lookupSetter__, ToObject(this) No Yes No Yes[6] No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No No No No No No No No No No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No No No No No No No No No No No No No No No No Yes Yes Yes Yes Yes
§__lookupSetter__, data properties can shadow accessors No Yes No Yes[6] No No No No No No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No No No No No No No No No 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 Yes Yes Yes Yes Yes Yes
§Proxy internal calls, getter/setter methods 0/4 0/4 0/4 0/4 0/4 0/4 0/4 0/4 0/4 2/4 4/4 4/4 2/4 2/4 2/4 2/4 2/4 2/4 4/4 4/4 4/4 4/4 4/4 4/4 4/4 0/4 0/4 0/4 0/4 0/4 2/4 2/4 2/4 2/4 2/4 4/4 4/4 4/4 0/4 0/4 0/4 0/4 0/4 4/4 4/4 4/4 4/4 0/4 0/4 0/4 0/4 0/4 0/4 0/4 0/4 2/4 2/4 0/4 0/4 0/4 0/4 0/4 0/4 0/4 0/4 0/4 0/4 0/4 0/4 4/4
§__defineGetter__ No No No No No No No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No No No No Yes Yes Yes Yes Yes Yes Yes Yes No No No No No Yes Yes Yes Yes No No No No No No No No Yes Yes No No No No No No No No No No No No Yes
§__defineSetter__ No No No No No No No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No No No No Yes Yes Yes Yes Yes Yes Yes Yes No No No No No Yes Yes Yes Yes No No No No No No No No Yes Yes No No No No No No No No No No No No Yes
§__lookupGetter__ No No No No No No No No No No Yes Yes No No No No No No Yes Yes Yes Yes Yes Yes Yes No No No No No No No No No No Yes Yes Yes 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 Yes
§__lookupSetter__ No No No No No No No No No No Yes Yes No No No No No No Yes Yes Yes Yes Yes Yes Yes No No No No No No No No No No Yes Yes Yes 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 Yes
§assignments allowed in for-in head in non-strict mode Yes No No No No No Yes Yes Yes Yes Yes Yes Yes No No No No No No No No 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 No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No
2018 features
§template literal revision 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 Flag 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

[1] Flagged features have to be enabled via "Experimental Javascript features" flag unless otherwise stated

[2] Flagged features require an optional transformer setting.

[3] Flagged features have to be enabled via "Enable experimental Javascript features" setting under about:flags

[4] Flagged features have to be enabled via --harmony or --es_staging flag

[5] The feature is enabled by default only in Firefox Nightly.

[6] This feature is supported when using TypeScript with core-js, or when a native ES6 host is used.

[7] TC39 meeting notes from July 28, 2015.

[8] 'Semantics of yield* in throw case' GitHub issue in ECMA-262 repo.

[9] TC39 meeting notes from July 29, 2015.

[10] TC39 meeting notes from July 28, 2015.

[11] TC39 meeting notes from July 28, 2015.

[12] 'Normative: Remove [[Enumerate]] and associated reflective capabilities' GitHub Pull Request in ECMA-262 repo.

[13] This feature requires native generators or regenerator-runtime, it's a part of babel-polyfill or babel-runtime.

[14] TypeScript async / await requires native generators support.

[15] The feature is enabled by default only in Firefox Developer and Firefox Nightly.

[16] The feature have to be enabled via "Experimental enabled SharedArrayBuffer support in JavaScript." setting under about:flags