This is a tracking issue for failed compat-table tests with links to each input, output, error and related issue (updated with v20200426).
These items are filtered out as "won't fix":
ES2015
Optimisation
proper tail calls (tail call optimisation)
- direct recursion (in/out)
- mutual recursion (in/out)
Syntax
default function parameters
- arguments object interaction (in/out)
rest parameters
- function 'length' property (in/out)
- arguments object interaction (in/out)
spread syntax for iterable objects
- with sparse arrays, in array literals (in/out)
- with astral plane strings, in function calls (in/out)
- with astral plane strings, in array literals (in/out)
- spreading non-iterables is a runtime error (in/out)
object literal extensions
for..of loops
octal and binary literals
- octal supported by Number() (in/out)
- binary supported by Number() (in/out)
template literals
- toString conversion (in/out)
- tagged template literals (in/out)
- passed array is frozen (in/out)
- TemplateStrings call site caching (in/out)
- TemplateStrings permanent caching (in/out)
RegExp "y" and "u" flags
- "y" flag (in/out)
- "y" flag, lastIndex (in/out)
- "u" flag (in/out)
- "u" flag, non-BMP Unicode characters (in/out)
- "u" flag, Unicode code point escapes (in/out)
- "u" flag, case folding (in/out)
destructuring, declarations
destructuring, assignment
destructuring, parameters
Unicode code point escapes
new.target
Bindings
const
- temporal dead zone (in/out)
- temporal dead zone (strict mode) (in/out)
let
- temporal dead zone (in/out)
- temporal dead zone (strict mode) (in/out)
Functions
arrow functions
class
super
- constructor calls use correct "new.target" binding (compile error)
generators
- can't use "this" with new (in/out)
- %GeneratorPrototype% (in/out)
- %GeneratorPrototype% prototype chain (in/out)
- %GeneratorPrototype%.constructor (in/out)
- yield *, astral plane strings (in/out)
- yield * on non-iterables is a runtime error (in/out)
- yield *, iterator closing via throw() (in/out)
- shorthand generators can't be constructors (compile error)
Built ins
Map
Set
WeakMap
WeakSet
Reflect
- Reflect.ownKeys, symbol keys (in/out)
- Reflect.construct sets new.target meta-property (compile error)
- Reflect.construct, Promise subclassing (in/out)
Promise
- Promise.prototype isn't an instance (in/out)
- Promise[Symbol.species] (in/out)
Symbol
- typeof support (in/out)
- symbol keys are hidden to pre-ES6 code (in/out)
- symbols inherit from Symbol.prototype (in/out)
- cannot coerce to string or number (in/out)
- can convert with String() (in/out)
- Object(symbol) (in/out)
- JSON.stringify ignores symbol primitives (in/out)
- JSON.stringify ignores symbol objects (in/out)
- global symbol registry (in/out)
well-known symbols
- Symbol.hasInstance (in/out)
- Symbol.isConcatSpreadable (in/out)
- Symbol.iterator, arguments object (in/out)
- Symbol.species, existence (in/out)
- Symbol.species, Array.prototype.concat (in/out)
- Symbol.species, Array.prototype.filter (in/out)
- Symbol.species, Array.prototype.map (in/out)
- Symbol.species, Array.prototype.slice (in/out)
- Symbol.species, Array.prototype.splice (in/out)
- Symbol.species, RegExp.prototype[Symbol.split] (in/out)
- Symbol.species, Promise.prototype.then (in/out)
- Symbol.replace (in/out)
- Symbol.search (in/out)
- Symbol.split (in/out)
- Symbol.match (in/out)
- Symbol.match, RegExp constructor (in/out)
- Symbol.match, String.prototype.startsWith (in/out)
- Symbol.match, String.prototype.endsWith (in/out)
- Symbol.match, String.prototype.includes (in/out)
- Symbol.toPrimitive (in/out)
- Symbol.toStringTag (in/out)
- Symbol.toStringTag affects existing built-ins (in/out)
- Symbol.toStringTag, new built-ins (in/out)
- Symbol.toStringTag, misc. built-ins (in/out)
- Symbol.unscopables (compile error)
Built in extensions
Object static methods
- Object.getOwnPropertySymbols (in/out)
function "name" property
- function statements (in/out)
- function expressions (in/out)
- new Function (in/out)
- bound functions (in/out)
- variables (function) (in/out)
- object methods (function) (in/out)
- accessor properties (in/out)
- shorthand methods (in/out)
- symbol-keyed methods (in/out)
- class statements (in/out)
- class expressions (in/out)
- variables (class) (in/out)
- object methods (class) (in/out)
- class prototype methods (in/out)
- class static methods (in/out)
- isn't writable, is configurable (in/out)
String static methods
String.prototype methods
- String.prototype.normalize (in/out)
- String.prototype[Symbol.iterator] (in/out)
- String iterator prototype chain (in/out)
RegExp.prototype properties
- RegExp.prototype.flags (in/out)
- RegExp.prototype[Symbol.match] (in/out)
- RegExp.prototype[Symbol.replace] (in/out)
- RegExp.prototype[Symbol.split] (in/out)
- RegExp.prototype[Symbol.search] (in/out)
- RegExp[Symbol.species] (in/out)
Array static methods
- Array.from, iterator closing (in/out)
- Array[Symbol.species] (in/out)
Array.prototype methods
- Array iterator prototype chain (in/out)
- Array.prototype[Symbol.unscopables] (in/out)
Math methods
Date.prototype[Symbol.toPrimitive]
- Date.prototype[Symbol.toPrimitive] (in/out)
Misc
prototype of bound functions
Object static methods accept primitives
- Object.getPrototypeOf (in/out)
- Object.getOwnPropertyDescriptor (in/out)
- Object.getOwnPropertyNames (in/out)
- Object.seal (in/out)
- Object.freeze (in/out)
- Object.preventExtensions (in/out)
- Object.isSealed (in/out)
- Object.isFrozen (in/out)
- Object.isExtensible (in/out)
- Object.keys (in/out)
own property order
- Object.getOwnPropertyNames (in/out)
- Reflect.ownKeys, string key order (in/out)
- Reflect.ownKeys, symbol key order (in/out)
Updated identifier syntax
miscellaneous
- duplicate property names in strict mode (compile error)
- accessors aren't constructors (in/out)
- RegExp constructor can alter flags (in/out)
- RegExp.prototype.toString generic and uses "flags" property (in/out)
- built-in prototypes are not instances (in/out)
- function 'length' is configurable (in/out)
Annex b
non-strict function semantics
proto in object literals
- basic support (in/out)
- multiple proto is an error (in/out)
- not a computed property (in/out)
- not a shorthand property (in/out)
- not a shorthand method (in/out)
Object.prototype.proto
- absent from Object.create(null) (in/out)
- present in hasOwnProperty() (in/out)
- correct property descriptor (in/out)
- present in Object.getOwnPropertyNames() (in/out)
RegExp.prototype.compile
ES2016+
2016 features
Array.prototype.includes
- %TypedArray%.prototype.includes (in/out)
2016 misc
generator functions can't be used with "new"
- generator functions can't be used with "new" (in/out)
strict fn w/ non-strict non-simple params is error
- strict fn w/ non-strict non-simple params is error (in/out)
2017 features
Object static methods
- Object.getOwnPropertyDescriptors doesn't provide undefined descriptors (in/out)
async functions
- no line break between async and function (in/out)
- no "prototype" property (in/out)
- cannot await in parameters (compile error)
- correct prototype chain (in/out)
- async function prototype, Symbol.toStringTag (in/out)
- async function constructor (in/out)
2017 misc
RegExp "u" flag, case folding
- RegExp "u" flag, case folding (in/out)
2017 annex b
Object.prototype getter/setter methods
- defineGetter, ToObject(this) (in/out)
- defineSetter, ToObject(this) (in/out)
- lookupGetter, ToObject(this) (in/out)
- lookupGetter, data properties can shadow accessors (in/out)
- lookupSetter, ToObject(this) (in/out)
- lookupSetter, data properties can shadow accessors (in/out)
assignments allowed in for-in head in non-strict mode
- assignments allowed in for-in head in non-strict mode (compile error)
2018 features
object rest/spread properties
s (dotAll) flag for regular expressions
RegExp named capture groups
RegExp Lookbehind Assertions
RegExp Unicode Property Escapes
2018 misc
Proxy "ownKeys" handler, duplicate keys for non-extensible targets
- Proxy "ownKeys" handler, duplicate keys for non-extensible targets (in/out)
template literal revision
- template literal revision (in/out)
2019 features
Array.prototype.{flat, flatMap}
- flat and flatMap in Array.prototype[@@unscopables] (in/out)
2019 misc
Symbol.prototype.description
- undefined description (in/out)
Function.prototype.toString revision
- functions created with the Function constructor (in/out)
- arrows (in/out)
- [native code] (in/out)
- class expression with implicit constructor (in/out)
- class expression with explicit constructor (in/out)
- unicode escape sequences in identifiers (in/out)
- methods and computed property names (in/out)
Well-formed JSON.stringify
- Well-formed JSON.stringify (in/out)
2020 features
BigInt
optional chaining operator (?.)
This is a tracking issue for failed compat-table tests with links to each input, output, error and related issue (updated with v20200426).
These items are filtered out as "won't fix":
new Function("features"): hard to implementProxy: impossible to implementPromise)ES2015
Optimisation
proper tail calls (tail call optimisation)
Syntax
default function parameters
rest parameters
spread syntax for iterable objects
object literal extensions
for..of loops
octal and binary literals
template literals
RegExp "y" and "u" flags
destructuring, declarations
destructuring, assignment
destructuring, parameters
Unicode code point escapes
new.target
Bindings
const
let
Functions
arrow functions
class
newbut the runtime doesn't check it #2919super
generators
Built ins
Map
newbut the runtime doesn't check it #2919Set
newbut the runtime doesn't check it #2919WeakMap
newbut the runtime doesn't check it #2919WeakSet
newbut the runtime doesn't check it #2919Reflect
Promise
Symbol
well-known symbols
Built in extensions
Object static methods
function "name" property
String static methods
String.prototype methods
RegExp.prototype properties
Array static methods
Array.prototype methods
Math methods
Date.prototype[Symbol.toPrimitive]
Misc
prototype of bound functions
Object static methods accept primitives
own property order
Updated identifier syntax
miscellaneous
Annex b
non-strict function semantics
proto in object literals
Object.prototype.proto
RegExp.prototype.compile
ES2016+
2016 features
Array.prototype.includes
2016 misc
generator functions can't be used with "new"
strict fn w/ non-strict non-simple params is error
2017 features
Object static methods
async functions
2017 misc
RegExp "u" flag, case folding
2017 annex b
Object.prototype getter/setter methods
assignments allowed in for-in head in non-strict mode
2018 features
object rest/spread properties
s (dotAll) flag for regular expressions
RegExp named capture groups
RegExp Lookbehind Assertions
RegExp Unicode Property Escapes
2018 misc
Proxy "ownKeys" handler, duplicate keys for non-extensible targets
template literal revision
2019 features
Array.prototype.{flat, flatMap}
2019 misc
Symbol.prototype.description
Function.prototype.toString revision
Well-formed JSON.stringify
2020 features
BigInt
optional chaining operator (?.)