NativeScript | Desktop browsers | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Feature name | Current browser | NS 6.5 Android v8 |
NS 7.0 Android v8 |
NS 8.0 Android v8 |
NS 6.5 iOS JSC |
NS 7.0 iOS v8 |
NS 8.0 iOS v8 |
CH 89 | CH 90 | SF 14 Beta | SF TP | |
2016 features | ||||||||||||
§exponentiation (**) operator ![]() |
3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | ||
§basic support | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§assignment | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§early syntax error for unary negation without parens | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§Array.prototype.includes ![]() |
3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | ||
§Array.prototype.includes ![]() |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§Array.prototype.includes is generic | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§%TypedArray%.prototype.includes ![]() |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
2016 misc | ||||||||||||
§generator functions can't be used with "new" ![]() |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§generator throw() caught by inner generator ![]() |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§strict fn w/ non-strict non-simple params is error[3] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§nested rest destructuring, declarations ![]() |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§nested rest destructuring, parameters[5] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§Proxy, "enumerate" handler removed ![]() |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§Proxy internal calls, Array.prototype.includes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
2017 features | ||||||||||||
§Object static methods | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | ||
§Object.values ![]() |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§Object.entries ![]() |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§Object.getOwnPropertyDescriptors ![]() |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§Object.getOwnPropertyDescriptors doesn't provide undefined descriptors | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§String padding | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | ||
§String.prototype.padStart ![]() |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§String.prototype.padEnd ![]() |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§trailing commas in function syntax ![]() |
2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | ||
§in parameter lists ![]() |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§in argument lists ![]() |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§async functions ![]() |
16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | ||
§return | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§throw | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§no line break between async and function | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§no "prototype" property | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§await ![]() |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§await, rejection | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§must await a value | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§can await non-Promise values | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§cannot await in parameters | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§async methods, object literals | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§async methods, classes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§async arrow functions in methods, classes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§async arrow functions | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§correct prototype chain | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§async function prototype, Symbol.toStringTag | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§async function constructor | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§shared memory and atomics | 17/17 | 17/17 | 17/17 | 0/17 | 17/17 | 16/17 | 17/17 | 17/17 | 0/17 | 0/17 | ||
§SharedArrayBuffer ![]() |
Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | No[7] | No[7] | ||
§SharedArrayBuffer[Symbol.species] | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | No[7] | No[7] | ||
§SharedArrayBuffer.prototype.byteLength ![]() |
Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | No[7] | No[7] | ||
§SharedArrayBuffer.prototype.slice ![]() |
Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | No[7] | No[7] | ||
§SharedArrayBuffer.prototype[Symbol.toStringTag] | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | No[7] | No[7] | ||
§Atomics.add ![]() |
Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | No[7] | No[7] | ||
§Atomics.and ![]() |
Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | No[7] | No[7] | ||
§Atomics.compareExchange ![]() |
Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | No[7] | No[7] | ||
§Atomics.exchange ![]() |
Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | No[7] | No[7] | ||
§Atomics.wait ![]() |
Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | No[7] | No[7] | ||
§Atomics.wake ![]() |
Yes | Yes | Yes | No | Yes | No | Yes | Yes | No[7] | No[7] | ||
§Atomics.isLockFree ![]() |
Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | No[7] | No[7] | ||
§Atomics.load ![]() |
Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | No[7] | No[7] | ||
§Atomics.or ![]() |
Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | No[7] | No[7] | ||
§Atomics.store ![]() |
Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | No[7] | No[7] | ||
§Atomics.sub ![]() |
Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | No[7] | No[7] | ||
§Atomics.xor ![]() |
Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | No[7] | No[7] | ||
2017 misc | ||||||||||||
§RegExp "u" flag, case folding | No | No | No | Yes | No | No | Yes | Yes | Yes | Yes | ||
§arguments.caller removed ![]() |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
2017 annex b | ||||||||||||
§Object.prototype getter/setter methods | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | ||
§__defineGetter__ ![]() |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§__defineGetter__, symbols | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§__defineGetter__, ToObject(this) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§__defineSetter__ ![]() |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§__defineSetter__, symbols | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§__defineSetter__, ToObject(this) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§__lookupGetter__ ![]() |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§__lookupGetter__, prototype chain | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§__lookupGetter__, symbols | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§__lookupGetter__, ToObject(this) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§__lookupGetter__, data properties can shadow accessors | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§__lookupSetter__ ![]() |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§__lookupSetter__, prototype chain | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§__lookupSetter__, symbols | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§__lookupSetter__, ToObject(this) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§__lookupSetter__, data properties can shadow accessors | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§Proxy internal calls, getter/setter methods | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | ||
§__defineGetter__ | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§__defineSetter__ | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§__lookupGetter__ | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§__lookupSetter__ | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§assignments allowed in for-in head in non-strict mode ![]() |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
2018 features | ||||||||||||
§object rest/spread properties | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | ||
§object rest properties | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§object spread properties | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§Promise.prototype.finally ![]() |
3/3 | 3/3 | 3/3 | 3/3 | 2/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | ||
§basic support | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§don't change resolution value | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§change rejection value | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | ||
§s (dotAll) flag for regular expressions ![]() |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§RegExp named capture groups ![]() |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§RegExp Lookbehind Assertions ![]() |
Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | No | No | ||
§RegExp Unicode Property Escapes ![]() |
No | No | No | Yes | No | No | Yes | Yes | Yes | Yes | ||
§Asynchronous Iterators | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | ||
§async generators | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§for-await-of loops ![]() |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
2018 misc | ||||||||||||
§Proxy "ownKeys" handler, duplicate keys for non-extensible targets ![]() |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§template literal revision | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
2019 features | ||||||||||||
§Object.fromEntries ![]() |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§string trimming | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | ||
§String.prototype.trimLeft ![]() |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§String.prototype.trimRight ![]() |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§String.prototype.trimStart ![]() |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§String.prototype.trimEnd ![]() |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§Array.prototype.{flat, flatMap}[8] | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | ||
§Array.prototype.flat ![]() |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§Array.prototype.flatMap ![]() |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§flat and flatMap in Array.prototype[@@unscopables] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
2019 misc | ||||||||||||
§optional catch binding | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | ||
§basic | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§await | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§yield | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§Symbol.prototype.description ![]() |
3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | ||
§basic | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§empty description | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§undefined description | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§Function.prototype.toString revision ![]() |
7/7 | 7/7 | 7/7 | 4/7 | 7/7 | 7/7 | 7/7 | 7/7 | 4/7 | 4/7 | ||
§functions created with the Function constructor | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | ? | ? | ||
§arrows | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§[native code] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§class expression with implicit constructor | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§class expression with explicit constructor | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§unicode escape sequences in identifiers | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | ? | ? | ||
§methods and computed property names | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | ? | ? | ||
§JSON superset | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | ||
§LINE SEPARATOR can appear in string literals | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§PARAGRAPH SEPARATOR can appear in string literals | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§Well-formed JSON.stringify ![]() |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
2020 features | ||||||||||||
§String.prototype.matchAll ![]() |
2/2 | 2/2 | 2/2 | 1/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | ||
§basic functionality | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§throws on non-global regex | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | ||
§BigInt ![]() |
8/8 | 8/8 | 8/8 | 0/8 | 8/8 | 8/8 | 8/8 | 8/8 | 4/8 | 8/8 | ||
§basic functionality | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | ||
§constructor | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | ||
§BigInt.asUintN | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | ||
§BigInt.asIntN | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | ||
§BigInt64Array | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | ? | Yes | ||
§BigUint64Array | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | ? | Yes | ||
§DataView.prototype.getBigInt64 | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | ? | Yes | ||
§DataView.prototype.getBigUint64 | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | ? | Yes | ||
§Promise.allSettled ![]() |
? | ? | ? | ? | ? | ? | Yes | Yes | Yes | Yes | ||
§globalThis ![]() |
2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | ||
§"globalThis" global property is global object | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§"globalThis" global property has correct property descriptor | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
§optional chaining operator (?.) ![]() |
4/5 | 4/5 | 4/5 | 0/5 | 4/5 | 4/5 | 4/5 | 4/5 | 5/5 | 5/5 | ||
§optional property access | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | ||
§optional bracket access | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | ||
§optional method call | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | ||
§optional function call | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | ||
§spread parameters after optional chaining | No | No | No | No | No | No | No | No | Yes | Yes | ||
§nullish coalescing operator (??) ![]() |
Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | ||
2021 features | ||||||||||||
§String.prototype.replaceAll ![]() |
No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | ||
§Promise.any ![]() |
0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | ||
§fulfillment | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | ||
§AggregateError | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | ||
§WeakReferences | 0/2 | 0/2 | 0/2 | 0/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | ||
§WeakRef minimal support | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | ||
§FinalizationRegistry minimal support | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | ||
§Logical Assignment | 0/9 | 0/9 | 0/9 | 0/9 | 0/9 | 9/9 | 9/9 | 9/9 | 9/9 | 9/9 | ||
§||= basic support | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | ||
§||= short-circuiting behaviour | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | ||
§||= setter not unecessarily invoked | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | ||
§&&= basic support | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | ||
§&&= short-circuiting behaviour | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | ||
§&&= setter not unecessarily invoked | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | ||
§??= basic support | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | ||
§??= short-circuiting behaviour | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | ||
§??= setter not unecessarily invoked | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | ||
§numeric separators | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
[1] TC39 meeting notes from July 28, 2015.
[2] 'Semantics of yield* in throw case' GitHub issue in ECMA-262 repo.
[3] TC39 meeting notes from July 29, 2015.
[4] TC39 meeting notes from July 28, 2015.
[5] TC39 meeting notes from July 28, 2015.
[8] Name of Array.prototype.flatten()
changed to Array.prototype.flat()
due to web compatibility issues.