JavaScript engine feature support

  • Release version: Zurich
  • Updated July 31, 2025
  • 30 minutes to read
  • Compare ECMAScript features between the ECMAScript 2021 (ES12) and ES5 Standards JavaScript modes in Zurich. Both modes support a subset of ECMAScript features.

    For more information about these features, see the ECMAScript language specifications (ECMA-262) on the Ecma International website.

    Support definitions

    Supported
    The feature has been tested and validated.
    Not Supported
    The feature has not been validated in the current release.
    Disallowed
    The feature does not align with the ServiceNow AI Platform programming model or poses a security or performance risk. Disallowed features result in an error.

    ECMAScript 2022 (ES13) features

    Important:
    Prior to deploying code to production, you should test scripts using supported ECMAScript 2022 (ES13) features thoroughly due to the newly added and partial support of features across this ECMAScript version.
    Table 1. Instance class fields
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    public instance class fields Supported Not Supported
    private instance class fields basic support Not Supported Not Supported
    private instance class fields initializers Not Supported Not Supported
    optional private instance class fields access Not Supported Not Supported
    optional deep private instance class fields access Not Supported Not Supported
    computed instance class fields Supported Not Supported
    Table 2. Static class fields
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    public static class fields Supported Not Supported
    static class fields use [[Define]] Supported Not Supported
    private static class fields Supported Not Supported
    computed static class fields Supported Not Supported
    Table 3. Private class methods
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    private instance methods Not Supported Not Supported
    private static methods Supported Not Supported
    private accessor properties Not Supported Not Supported
    private static accessor properties Supported Not Supported
    Table 4. .at() method on the built-in indexables
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    Array.prototype.at() Supported Not Supported
    String.prototype.at() Supported Not Supported
    %TypedArray%.prototype.at() Supported Disallowed
    Table 5. Object.hasOwn
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    Basic functionality Supported Not Supported
    ToObject called before ToPropertyKey Supported Not Supported
    Table 6. Error.cause property
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    Error has cause Supported Not Supported
    Error.prototype lacks cause Supported Not Supported
    EvalError has cause Supported Not Supported
    EvalError.prototype lacks cause Supported Not Supported
    RangeError has cause Supported Not Supported
    RangeError.prototype lacks cause Supported Not Supported
    ReferenceError has cause Supported Not Supported
    ReferenceError.prototype lacks cause Supported Not Supported
    SyntaxError has cause Supported Not Supported
    SyntaxError.prototype lacks cause Supported Not Supported
    TypeError has cause Supported Not Supported
    TypeError.prototype lacks cause Supported Not Supported
    URIError has cause Supported Not Supported
    URIError.prototype lacks cause Supported Not Supported
    AggregateError has cause Supported Not Supported
    AggregateError.prototype lacks cause Supported Not Supported
    Table 7. RegExp Match Indices (`hasIndices` / `d` flag)
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    constructor supports it Not Supported Not Supported
    shows up in flags Not Supported Not Supported
    Table 8. Ergonomic brand checks for private fields
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    Ergonomic brand checks for private fields Not Supported Not Supported
    Table 9. Class static initialization blocks
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    Class static initialization blocks Supported Not Supported

    ECMAScript 2021 (ES12) features

    Table 10. Promise.any
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    fulfillment Supported Disallowed
    AggregateError Supported Disallowed
    Table 11. WeakReferences
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    WeakRef minimal support Disallowed Disallowed
    FinalizationRegistry minimal support Disallowed Disallowed
    Table 12. Logical assignment
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    ||= basic support Supported Not Supported
    ||= short-circuiting behavior Supported Not Supported
    ||= setter not unnecessarily invoked Supported Not Supported
    &&= basic support Supported Not Supported
    &&= short-circuiting behavior Supported Not Supported
    &&= setter not unnecessarily invoked Supported Not Supported
    ??= basic support Supported Not Supported
    ??= short-circuiting behavior Supported Not Supported
    ??= setter not unnecessarily invoked Supported Not Supported
    Table 13. Numeric separators
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    numeric separators Supported Not Supported
    Table 14. String.prototype.replaceAll
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    String.prototype.replaceAll Supported Supported

    ECMAScript 2020 (ES11) features

    Table 15. String.prototype.matchAll
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    basic functionality Supported Not Supported
    throws on non-global regex Supported Not Supported
    Table 16. BigInt
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    basic functionality Supported Not Supported
    constructor Supported Not Supported
    BigInt.asUintN Supported Not Supported
    BigInt.asIntN Supported Not Supported
    BigInt64Array Not Supported Not Supported
    BigUint64Array Not Supported Not Supported
    DataView.prototype.getBigInt64 Not Supported Not Supported
    DataView.prototype.getBigUint64 Not Supported Not Supported
    Table 17. globalThis
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    "globalThis" global property is global object Supported Disallowed
    "globalThis" global property has correct property descriptor Supported Disallowed
    Table 18. Optional chaining operator (?.)
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    optional property access Supported Not Supported
    optional bracket access Supported Not Supported
    optional method call Supported Not Supported
    optional function call Supported Not Supported
    spread parameters after optional chaining Supported Not Supported
    Table 19. Promise.allSettled
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    Promise.allSettled Supported Disallowed
    Table 20. Nullish coalescing operator (??)
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    nullish coalescing operator (??) Supported Not Supported

    ECMAScript 2019 (ES10) features

    Table 21. Symbol.prototype.description
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    basic Supported Not Supported
    empty description Supported Not Supported
    undefined description Supported Not Supported
    Table 22. String trimming
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    String.prototype.trimLeft Supported Supported
    String.prototype.trimRight Supported Supported
    String.prototype.trimStart Supported Not Supported
    String.prototype.trimEnd Supported Not Supported
    Table 23. Array.prototype.{flat, flatMap}
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    Array.prototype.flat Supported Not Supported
    Array.prototype.flatMap Supported Not Supported
    flat and flatMap in Array.prototype[@@unscopables] Supported Not Supported
    Table 24. Object.fromEntries
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    Object.fromEntries Supported Not Supported
    Table 25. Optional catch binding
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    basic Supported Disallowed
    await Disallowed Disallowed
    yield Disallowed Disallowed
    Table 26. Function.prototype.toString revision
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    functions created with the Function constructor Disallowed Disallowed
    arrows Disallowed Disallowed
    [native code] Disallowed Disallowed
    class expression with implicit constructor Disallowed Disallowed
    class expression with explicit constructor Disallowed Disallowed
    unicode escape sequences in identifiers Disallowed Disallowed
    methods and computed property names Disallowed Disallowed
    Table 27. JSON superset
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    Line separator can appear in string literals Disallowed Disallowed
    Paragraph separator can appear in string literals Disallowed Disallowed
    Table 28. Well-formed JSON.stringify
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    Well-formed JSON.stringify Disallowed Disallowed

    ECMAScript 2018 (ES9) features

    Table 29. Object rest/spread properties
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    object rest properties Supported Not Supported
    object spread properties Supported Not Supported
    Table 30. Promise.prototype.finally
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    basic support Supported Disallowed
    don't change resolution value Supported Disallowed
    change rejection value Supported Disallowed
    Table 31. Asynchronous iterators
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    async generators Disallowed Disallowed
    for-await-of loops Disallowed Disallowed
    Table 32. s (dotAll) flag for regular expressions
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    s (dotAll) flag for regular expressions Supported Not Supported
    Table 33. RegExp named capture groups
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    RegExp named capture groups Supported Not Supported
    Table 34. RegExp Lookbehind Assertions
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    RegExp Lookbehind Assertions Supported Not Supported
    Table 35. RegExp Unicode Property Escapes
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    RegExp Unicode Property Escapes Supported Not Supported
    Table 36. Template literal revision
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    template literal revision Disallowed Disallowed

    ECMAScript 2017 (ES8) features

    Table 37. Object static methods
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    Object.values Supported Not Supported
    Object.entries Supported Not Supported
    Object.getOwnPropertyDescriptors Supported Not Supported
    Object.getOwnPropertyDescriptors doesn't provide undefined descriptors Not Supported Not Supported
    Table 38. String padding
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    String.prototype.padStart Supported Not Supported
    String.prototype.padEnd Supported Not Supported
    Table 39. Trailing commas in function syntax
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    in parameter lists Supported Not Supported
    in argument lists Supported Not Supported
    Table 40. Async functions
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    return Supported Disallowed
    throw Supported Disallowed
    no line break between async and function Supported Disallowed
    no "prototype" property Disallowed Disallowed
    await Supported Disallowed
    await, rejection Supported Disallowed
    must await a value Disallowed Disallowed
    can await non-Promise values Supported Disallowed
    cannot await in parameters Disallowed Disallowed
    async methods, object literals Supported Disallowed
    async methods, classes Disallowed Disallowed
    async arrow functions in methods, classes Supported Disallowed
    async arrow functions Supported Disallowed
    correct prototype chain Disallowed Disallowed
    async function prototype, Symbol.toStringTag Disallowed Disallowed
    async function constructor Disallowed Disallowed
    Table 41. Shared memory and atomics
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    SharedArrayBuffer Disallowed Disallowed
    SharedArrayBuffer[Symbol.species] Disallowed Disallowed
    SharedArrayBuffer.prototype.byteLength Disallowed Disallowed
    SharedArrayBuffer.prototype.slice Disallowed Disallowed
    SharedArrayBuffer.prototype[Symbol.toStringTag] Disallowed Disallowed
    Atomics.add Disallowed Disallowed
    Atomics.and Disallowed Disallowed
    Atomics.compareExchange Disallowed Disallowed
    Atomics.exchange Disallowed Disallowed
    Atomics.wait Disallowed Disallowed
    Atomics.wake Disallowed Disallowed
    Atomics.isLockFree Disallowed Disallowed
    Atomics.load Disallowed Disallowed
    Atomics.or Disallowed Disallowed
    Atomics.store Disallowed Disallowed
    Atomics.sub Disallowed Disallowed
    Atomics.xor Disallowed Disallowed
    Table 42. Object.prototype getter/setter methods
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    __defineGetter__ Supported Disallowed
    __defineGetter__, symbols Supported Disallowed
    __defineGetter__, ToObject(this) Disallowed Disallowed
    __defineSetter__ Supported Disallowed
    __defineSetter__, symbols Supported Disallowed
    __defineSetter__, ToObject(this) Disallowed Disallowed
    __lookupGetter__ Supported Disallowed
    __lookupGetter__, prototype chain Supported Disallowed
    __lookupGetter__, symbols Supported Disallowed
    __lookupGetter__, ToObject(this) Disallowed Disallowed
    __lookupGetter__, data properties can shadow accessors Disallowed Disallowed
    __lookupSetter__ Supported Disallowed
    __lookupSetter__, prototype chain Supported Disallowed
    __lookupSetter__, symbols Supported Disallowed
    __lookupSetter__, ToObject(this) Disallowed Disallowed
    __lookupSetter__, data properties can shadow accessors Disallowed Disallowed
    Table 43. Proxy internal calls, getter/setter methods
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    __defineGetter__ Supported Disallowed
    __defineSetter__ Supported Disallowed
    __lookupGetter__ Supported Disallowed
    __lookupSetter__ Supported Disallowed

    ECMAScript 2016 (ES7) features

    Table 44. Exponentiation (**) operator
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    basic support Supported Not Supported
    assignment Supported Not Supported
    early syntax error for unary negation without parentheses Disallowed Disallowed
    Table 45. Array.prototype.includes
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    Array.prototype.includes Supported Not Supported
    Array.prototype.includes is generic Not Supported Not Supported
    %TypedArray%.prototype.includes Supported Disallowed

    ECMAScript 2015 (ES6) features

    Table 46. Proper tail calls (tail call optimization)
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    direct recursion Disallowed Disallowed
    mutual recursion Disallowed Disallowed
    Table 47. Default function parameters
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    basic functionality Supported Not Supported
    explicit undefined defers to the default Supported Not Supported
    defaults can refer to previous parameters Supported Not Supported
    arguments object interaction Supported Not Supported
    temporal dead zone Disallowed Disallowed
    separate scope Supported Not Supported
    new Function() support Disallowed Disallowed
    Table 48. Rest parameters
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    basic functionality Supported Not Supported
    function 'length' property Supported Not Supported
    arguments object interaction Not Supported Not Supported
    can't be used in setters Disallowed Disallowed
    new Function() support Disallowed Disallowed
    Table 49. Spread syntax for iterable objects
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    with arrays, in function calls Supported Not Supported
    with arrays, in array literals Supported Not Supported
    with sparse arrays, in function calls Supported Not Supported
    with sparse arrays, in array literals Supported Not Supported
    with strings, in function calls Supported Not Supported
    with strings, in array literals Supported Not Supported
    with astral plane strings, in function calls Supported Not Supported
    with astral plane strings, in array literals Supported Not Supported
    with generator instances, in calls Disallowed Disallowed
    with generator instances, in arrays Disallowed Disallowed
    with generic iterables, in calls Supported Not Supported
    with generic iterables, in arrays Supported Not Supported
    with instances of iterables, in calls Supported Not Supported
    with instances of iterables, in arrays Supported Not Supported
    spreading non-iterables is a runtime error Supported Not Supported
    Table 50. Object literal extensions
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    computed properties Supported Not Supported
    shorthand properties Supported Not Supported
    shorthand methods Supported Not Supported
    string-keyed shorthand methods Supported Not Supported
    computed shorthand methods Supported Not Supported
    computed accessors Supported Not Supported
    Table 51. For-of loops
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    with arrays Supported Not Supported
    with sparse arrays Supported Not Supported
    with strings Supported Not Supported
    with astral plane strings Supported Not Supported
    with generator instances Disallowed Disallowed
    with generic iterables Supported Not Supported
    with instances of generic iterables Supported Not Supported
    iterator closing, break Supported Not Supported
    iterator closing, throw Supported Not Supported
    Table 52. Octal and binary literals
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    octal literals Supported Not Supported
    binary literals Supported Not Supported
    octal supported by Number() Not Supported Not Supported
    binary supported by Number() Not Supported Not Supported
    Table 53. Template literals
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    basic functionality Supported Not Supported
    toString conversion Supported Not Supported
    tagged template literals Supported Not Supported
    passed array is frozen Supported Not Supported
    line break normalization Disallowed Disallowed
    TemplateStrings call site caching Supported Not Supported
    TemplateStrings permanent caching Supported Not Supported
    Table 54. RegExp "y" and "u" flags
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    "y" flag Supported Not Supported
    "y" flag, lastIndex Supported Not Supported
    "u" flag Supported Not Supported
    "u" flag, non-BMP Unicode characters Supported Not Supported
    "u" flag, Unicode code point escapes Supported Not Supported
    "u" flag, case folding Supported Not Supported
    Table 55. Destructuring, declarations
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    with arrays Supported Not Supported
    with sparse arrays Supported Not Supported
    with strings Supported Not Supported
    with astral plane strings Supported Not Supported
    with generator instances Disallowed Disallowed
    with generic iterables Supported Not Supported
    with instances of generic iterables Supported Not Supported
    iterator closing Supported Not Supported
    trailing commas in iterable patterns Supported Not Supported
    with objects Supported Not Supported
    object destructuring with primitives Supported Not Supported
    trailing commas in object patterns Supported Not Supported
    throws on null and undefined Supported Not Supported
    computed properties Supported Not Supported
    multiples in a single var statement Supported Not Supported
    nested Supported Not Supported
    in for-in loop heads Supported Not Supported
    in for-of loop heads Supported Not Supported
    in catch heads Supported Not Supported
    rest Supported Not Supported
    defaults Supported Not Supported
    defaults, let temporal dead zone Disallowed Disallowed
    Table 56. Destructuring, assignment
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    with arrays Supported Not Supported
    with sparse arrays Supported Not Supported
    with strings Supported Not Supported
    with astral plane strings Supported Not Supported
    with generator instances Disallowed Disallowed
    with generic iterables Supported Not Supported
    with instances of generic iterables Supported Not Supported
    iterator closing Supported Not Supported
    iterable destructuring expression Supported Not Supported
    chained iterable destructuring Supported Not Supported
    trailing commas in iterable patterns Supported Not Supported
    with objects Supported Not Supported
    object destructuring with primitives Supported Not Supported
    trailing commas in object patterns Supported Not Supported
    object destructuring expression Supported Not Supported
    parenthesized left-hand-side is a syntax error Disallowed Disallowed
    chained object destructuring Supported Not Supported
    throws on null and undefined Supported Not Supported
    computed properties Supported Not Supported
    nested Supported Not Supported
    rest Supported Not Supported
    nested rest Supported Not Supported
    empty patterns Supported Not Supported
    defaults Supported Not Supported
    Table 57. Destructuring, parameters
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    with arrays Supported Not Supported
    with sparse arrays Supported Not Supported
    with strings Supported Not Supported
    with astral plane strings Supported Not Supported
    with generator instances Disallowed Disallowed
    with generic iterables Supported Not Supported
    with instances of generic iterables Supported Not Supported
    iterator closing Supported Not Supported
    trailing commas in iterable patterns Supported Not Supported
    with objects Supported Not Supported
    object destructuring with primitives Supported Not Supported
    trailing commas in object patterns Supported Not Supported
    throws on null and undefined Supported Not Supported
    computed properties Supported Not Supported
    nested Supported Not Supported
    'arguments' interaction Supported Not Supported
    new Function() support Disallowed Disallowed
    in parameters, function 'length' property Supported Not Supported
    rest Supported Not Supported
    empty patterns Supported Not Supported
    defaults Supported Not Supported
    defaults, separate scope Supported Not Supported
    defaults, new Function() support Disallowed Disallowed
    aliased defaults, arrow function Supported Not Supported
    shorthand defaults, arrow function Supported Not Supported
    duplicate identifier Disallowed Disallowed
    Table 58. Unicode code point escapes
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    in strings Supported Not Supported
    in identifiers Not Supported Not Supported
    in property key definitions Not Supported Not Supported
    in property key accesses Not Supported Not Supported
    Table 59. New.target
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    in constructors Not Supported Not Supported
    assignment is an early error Disallowed Disallowed
    Table 60. Const
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    basic support Supported Supported
    is block-scoped Supported Not Supported
    scope shadow resolution Supported Not Supported
    cannot be in statements Disallowed Disallowed
    redefining a const is an error Disallowed Disallowed
    for loop statement scope Supported Not Supported
    for-in loop iteration scope Supported Not Supported
    for-of loop iteration scope Supported Not Supported
    temporal dead zone Not Supported Not Supported
    basic support (strict mode) Supported Supported
    is block-scoped (strict mode) Supported Not Supported
    scope shadow resolution (strict mode) Supported Not Supported
    cannot be in statements (strict mode) Disallowed Disallowed
    redefining a const (strict mode) Disallowed Disallowed
    for loop statement scope (strict mode) Supported Not Supported
    for-in loop iteration scope (strict mode) Supported Not Supported
    for-of loop iteration scope (strict mode) Supported Not Supported
    temporal dead zone (strict mode) Not Supported Not Supported
    Table 61. Let
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    basic support Supported Not Supported
    is block-scoped Supported Not Supported
    scope shadow resolution Supported Not Supported
    cannot be in statements Disallowed Disallowed
    for loop statement scope Supported Not Supported
    temporal dead zone Not Supported Not Supported
    for/for-in loop iteration scope Supported Not Supported
    for-in loop binding shadowing parameter Disallowed Disallowed
    basic support (strict mode) Supported Not Supported
    is block-scoped (strict mode) Supported Not Supported
    scope shadow resolution (strict mode) Supported Not Supported
    cannot be in statements (strict mode) Disallowed Disallowed
    for loop statement scope (strict mode) Supported Not Supported
    temporal dead zone (strict mode) Not Supported Not Supported
    for/for-in loop iteration scope (strict mode) Supported Not Supported
    for-in loop binding shadowing parameter (strict mode) Disallowed Disallowed
    Table 62. Block-level function declaration
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    block-level function declaration Supported Not Supported
    Table 63. Arrow functions
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    0 parameters Supported Not Supported
    1 parameter, no brackets Supported Not Supported
    multiple parameters Supported Not Supported
    lexical "this" binding Supported Not Supported
    "this" unchanged by call or apply Supported Not Supported
    can't be bound, can be curried Supported Not Supported
    lexical "arguments" binding Supported Not Supported
    no line break between parameters and => Disallowed Disallowed
    correct precedence Disallowed Disallowed
    no "prototype" property Not Supported Not Supported
    lexical "super" binding in constructors Supported Not Supported
    lexical "super" binding in methods Supported Not Supported
    lexical "new.target" binding Not Supported Not Supported
    Table 64. Class
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    class statement Supported Not Supported
    is block-scoped Supported Not Supported
    class expression Supported Not Supported
    anonymous class Supported Not Supported
    constructor Supported Not Supported
    prototype methods Supported Not Supported
    string-keyed methods Supported Not Supported
    computed prototype methods Supported Not Supported
    optional semicolons Supported Not Supported
    static methods Supported Not Supported
    computed static methods Supported Not Supported
    accessor properties Supported Not Supported
    computed accessor properties Supported Not Supported
    static accessor properties Supported Not Supported
    computed static accessor properties Supported Not Supported
    class name is lexically scoped Supported Not Supported
    computed names, temporal dead zone Not Supported Not Supported
    methods aren't enumerable Supported Not Supported
    implicit strict mode Not Supported Not Supported
    constructor requires new Supported Not Supported
    extends Supported Not Supported
    extends expressions Supported Not Supported
    extends null Supported Not Supported
    new.target Supported Not Supported
    Table 65. Super
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    statement in constructors Supported Not Supported
    expression in constructors Supported Not Supported
    in methods, property access Supported Not Supported
    in methods, method calls Supported Not Supported
    method calls use correct "this" binding Supported Not Supported
    constructor calls use correct "new.target" binding Supported Not Supported
    is statically bound Supported Not Supported
    super() invokes the correct constructor Supported Not Supported
    Table 66. Generators
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    basic functionality Supported Disallowed
    generator function expressions Supported Disallowed
    correct "this" binding Supported Disallowed
    can't use "this" with new Supported Disallowed
    sending Supported Disallowed
    %GeneratorPrototype% Disallowed Disallowed
    %GeneratorPrototype% prototype chain Disallowed Disallowed
    %GeneratorPrototype%.constructor Disallowed Disallowed
    %GeneratorPrototype%.throw Disallowed Disallowed
    %GeneratorPrototype%.return Disallowed Disallowed
    yield operator precedence Disallowed Disallowed
    yield *, arrays Supported Disallowed
    yield *, sparse arrays Supported Disallowed
    yield *, strings Supported Disallowed
    yield *, astral plane strings Supported Disallowed
    yield *, generator instances Supported Disallowed
    yield *, generic iterables Supported Disallowed
    yield *, instances of iterables Supported Disallowed
    yield * on non-iterables is a runtime error Supported Disallowed
    yield *, iterator closing Supported Disallowed
    yield *, iterator closing via throw() Supported Disallowed
    shorthand generator methods Supported Disallowed
    string-keyed shorthand generator methods Supported Disallowed
    computed shorthand generators Supported Disallowed
    shorthand generator methods, classes Supported Disallowed
    computed shorthand generators, classes Supported Disallowed
    shorthand generators can't be constructors Disallowed Disallowed
    Table 67. Typed arrays
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    Int8Array Supported Disallowed
    Uint8Array Supported Disallowed
    Uint8ClampedArray Supported Disallowed
    Int16Array Supported Disallowed
    Uint16Array Supported Disallowed
    Int32Array Supported Disallowed
    Uint32Array Supported Disallowed
    Float32Array Supported Disallowed
    Float64Array Supported Disallowed
    DataView (Int8) Supported Disallowed
    DataView (Uint8) Supported Disallowed
    DataView (Int16) Supported Disallowed
    DataView (Uint16) Supported Disallowed
    DataView (Int32) Supported Disallowed
    DataView (Uint32) Supported Disallowed
    DataView (Float32) Supported Disallowed
    DataView (Float64) Supported Disallowed
    ArrayBuffer[Symbol.species] Supported Disallowed
    constructors require new Supported Disallowed
    constructors accept generic iterables Supported Disallowed
    correct prototype chains Disallowed Disallowed
    %TypedArray%.from Supported Disallowed
    %TypedArray%.of Supported Disallowed
    %TypedArray%.prototype.subarray Supported Disallowed
    %TypedArray%.prototype.join Supported Disallowed
    %TypedArray%.prototype.indexOf Supported Disallowed
    %TypedArray%.prototype.lastIndexOf Supported Disallowed
    %TypedArray%.prototype.slice Supported Disallowed
    %TypedArray%.prototype.every Supported Disallowed
    %TypedArray%.prototype.filter Supported Disallowed
    %TypedArray%.prototype.forEach Supported Disallowed
    %TypedArray%.prototype.map Supported Disallowed
    %TypedArray%.prototype.reduce Supported Disallowed
    %TypedArray%.prototype.reduceRight Supported Disallowed
    %TypedArray%.prototype.reverse Supported Disallowed
    %TypedArray%.prototype.some Supported Disallowed
    %TypedArray%.prototype.sort Supported Disallowed
    %TypedArray%.prototype.copyWithin Supported Disallowed
    %TypedArray%.prototype.find Supported Disallowed
    %TypedArray%.prototype.findIndex Supported Disallowed
    %TypedArray%.prototype.fill Supported Disallowed
    %TypedArray%.prototype.keys Supported Disallowed
    %TypedArray%.prototype.values Supported Disallowed
    %TypedArray%.prototype.entries Supported Disallowed
    %TypedArray%.prototype[Symbol.iterator] Supported Disallowed
    %TypedArray%[Symbol.species] Disallowed Disallowed
    Table 68. Map
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    basic functionality Supported Not Supported
    constructor arguments Supported Not Supported
    constructor requires new Supported Not Supported
    constructor accepts null Supported Not Supported
    constructor invokes set Supported Not Supported
    iterator closing Supported Not Supported
    Map.prototype.set returns this Supported Not Supported
    -0 key converts to +0 Supported Not Supported
    Map.prototype.size Supported Not Supported
    Map.prototype.delete Supported Not Supported
    Map.prototype.clear Supported Not Supported
    Map.prototype.forEach Supported Not Supported
    Map.prototype.keys Supported Not Supported
    Map.prototype.values Supported Not Supported
    Map.prototype.entries Supported Not Supported
    Map.prototype[Symbol.iterator] Supported Not Supported
    Map.prototype isn't an instance Supported Not Supported
    Map iterator prototype chain Supported Not Supported
    Map[Symbol.species] Supported Not Supported
    Table 69. Set
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    basic functionality Supported Not Supported
    constructor arguments Supported Not Supported
    constructor requires new Supported Not Supported
    constructor accepts null Supported Not Supported
    constructor invokes add Supported Not Supported
    iterator closing Supported Not Supported
    Set.prototype.add returns this Supported Not Supported
    -0 key converts to +0 Supported Not Supported
    Set.prototype.size Supported Not Supported
    Set.prototype.delete Supported Not Supported
    Set.prototype.clear Supported Not Supported
    Set.prototype.forEach Supported Not Supported
    Set.prototype.keys Supported Not Supported
    Set.prototype.values Supported Not Supported
    Set.prototype.entries Supported Not Supported
    Set.prototype[Symbol.iterator] Supported Not Supported
    Set.prototype isn't an instance Supported Not Supported
    Set iterator prototype chain Supported Not Supported
    Set[Symbol.species] Supported Not Supported
    Table 70. WeakMap
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    basic functionality Supported Disallowed
    constructor arguments Supported Disallowed
    constructor requires new Supported Disallowed
    constructor accepts null Supported Disallowed
    constructor invokes set Supported Disallowed
    frozen objects as keys Supported Disallowed
    iterator closing Supported Disallowed
    WeakMap.prototype.set returns this Supported Disallowed
    WeakMap.prototype.delete Supported Disallowed
    no WeakMap.prototype.clear method Supported Disallowed
    .has, .get and .delete methods accept primitives Disallowed Disallowed
    WeakMap.prototype isn't an instance Disallowed Disallowed
    Table 71. WeakSet
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    basic functionality Supported Disallowed
    constructor arguments Supported Disallowed
    constructor requires new Supported Disallowed
    constructor accepts null Supported Disallowed
    constructor invokes add Supported Disallowed
    iterator closing Supported Disallowed
    WeakSet.prototype.add returns this Supported Disallowed
    WeakSet.prototype.delete Supported Disallowed
    no WeakSet.prototype.clear method Supported Disallowed
    .has and .delete methods accept primitives Disallowed Disallowed
    WeakSet.prototype isn't an instance Disallowed Disallowed
    Table 72. Proxy
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    constructor requires new Supported Disallowed
    no "prototype" property Supported Disallowed
    "get" handler Supported Disallowed
    "get" handler, instances of proxies Supported Disallowed
    "get" handler invariants Supported Disallowed
    "set" handler Supported Disallowed
    "set" handler, instances of proxies Supported Disallowed
    "set" handler invariants Supported Disallowed
    "has" handler Supported Disallowed
    "has" handler, instances of proxies Supported Disallowed
    "has" handler invariants Supported Disallowed
    "deleteProperty" handler Supported Disallowed
    "deleteProperty" handler invariant Supported Disallowed
    "getOwnPropertyDescriptor" handler Supported Disallowed
    "getOwnPropertyDescriptor" handler invariants Supported Disallowed
    "defineProperty" handler Supported Disallowed
    "defineProperty" handler invariants Supported Disallowed
    "getPrototypeOf" handler Supported Disallowed
    "getPrototypeOf" handler invariant Supported Disallowed
    "setPrototypeOf" handler Supported Disallowed
    "setPrototypeOf" handler invariant Supported Disallowed
    "isExtensible" handler Supported Disallowed
    "isExtensible" handler invariant Supported Disallowed
    "preventExtensions" handler Supported Disallowed
    "preventExtensions" handler invariant Supported Disallowed
    "ownKeys" handler Supported Disallowed
    "ownKeys" handler invariant Supported Disallowed
    "apply" handler Supported Disallowed
    "apply" handler invariant Supported Disallowed
    "construct" handler Supported Disallowed
    "construct" handler invariants Supported Disallowed
    Proxy.revocable Supported Disallowed
    Array.isArray support Supported Disallowed
    JSON.stringify support Supported Disallowed
    Table 73. Reflect
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    Reflect.get Disallowed Disallowed
    Reflect.set Disallowed Disallowed
    Reflect.has Disallowed Disallowed
    Reflect.deleteProperty Disallowed Disallowed
    Reflect.getOwnPropertyDescriptor Disallowed Disallowed
    Reflect.defineProperty Disallowed Disallowed
    Reflect.getPrototypeOf Disallowed Disallowed
    Reflect.setPrototypeOf Disallowed Disallowed
    Reflect.isExtensible Disallowed Disallowed
    Reflect.preventExtensions Disallowed Disallowed
    Reflect.ownKeys, string keys Disallowed Disallowed
    Reflect.ownKeys, symbol keys Disallowed Disallowed
    Reflect.apply Disallowed Disallowed
    Reflect.construct Disallowed Disallowed
    Reflect.construct sets new.target meta-property Disallowed Disallowed
    Reflect.construct creates instances from third argument Disallowed Disallowed
    Reflect.construct, Array subclassing Disallowed Disallowed
    Reflect.construct, RegExp subclassing Disallowed Disallowed
    Reflect.construct, Function subclassing Disallowed Disallowed
    Reflect.construct, Promise subclassing Disallowed Disallowed
    Table 74. Promise
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    basic functionality Supported Disallowed
    constructor requires new Supported Disallowed
    Promise.prototype isn't an instance Supported Disallowed
    Promise.all Supported Disallowed
    Promise.all, generic iterables Supported Disallowed
    Promise.race Supported Disallowed
    Promise.race, generic iterables Supported Disallowed
    Promise[Symbol.species] Supported Disallowed
    Table 75. Symbol
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    basic functionality Supported Not Supported
    typeof support Supported Not Supported
    symbol keys are hidden to pre-ES6 code Supported Not Supported
    Object.defineProperty support Supported Not Supported
    symbols inherit from Symbol.prototype Supported Not Supported
    cannot coerce to string or number Supported Not Supported
    can convert with String() Supported Not Supported
    new Symbol() throws Supported Not Supported
    Object(symbol) Not Supported Not Supported
    JSON.stringify ignores symbol primitives Supported Not Supported
    JSON.stringify ignores symbol objects Not Supported Not Supported
    global symbol registry Supported Not Supported
    Table 76. Well-known symbols
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    Symbol.hasInstance Supported Disallowed
    Symbol.isConcatSpreadable Supported Disallowed
    Symbol.iterator, existence Supported Disallowed
    Symbol.iterator, arguments object Supported Disallowed
    Symbol.species, existence Supported Disallowed
    Symbol.species, Array.prototype.concat Disallowed Disallowed
    Symbol.species, Array.prototype.filter Disallowed Disallowed
    Symbol.species, Array.prototype.map Disallowed Disallowed
    Symbol.species, Array.prototype.slice Disallowed Disallowed
    Symbol.species, Array.prototype.splice Disallowed Disallowed
    Symbol.species, RegExp.prototype[Symbol.split] Disallowed Disallowed
    Symbol.species, Promise.prototype.then Disallowed Disallowed
    Symbol.replace Supported Disallowed
    Symbol.search Supported Disallowed
    Symbol.split Supported Disallowed
    Symbol.match Supported Disallowed
    Symbol.match, RegExp constructor Disallowed Disallowed
    Symbol.match, String.prototype.startsWith Disallowed Disallowed
    Symbol.match, String.prototype.endsWith Disallowed Disallowed
    Symbol.match, String.prototype.includes Disallowed Disallowed
    Symbol.toPrimitive Supported Disallowed
    Symbol.toStringTag Supported Disallowed
    Symbol.toStringTag affects existing built-ins Supported Disallowed
    Symbol.toStringTag, new built-ins Supported Disallowed
    Symbol.toStringTag, misc. built-ins Supported Disallowed
    Symbol.unscopables Supported Disallowed
    Table 77. Object static methods
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    Object.assign Supported Not Supported
    Object.is Supported Not Supported
    Object.getOwnPropertySymbols Supported Not Supported
    Object.setPrototypeOf Supported Not Supported
    Table 78. Function "name" property
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    function statements Supported Supported
    function expressions Supported Supported
    new Function Not Supported Not Supported
    bound functions Not Supported Not Supported
    variables (function) Supported Not Supported
    object methods (function) Supported Not Supported
    accessor properties Not Supported Not Supported
    shorthand methods Supported Not Supported
    shorthand methods (no lexical binding) Supported Not Supported
    symbol-keyed methods Not Supported Not Supported
    class statements Supported Not Supported
    class expressions Supported Not Supported
    variables (class) Supported Not Supported
    object methods (class) Not Supported Not Supported
    class prototype methods Supported Not Supported
    class static methods Supported Not Supported
    isn't writable, is configurable Supported Not Supported
    Table 79. String static methods
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    String.raw Supported Not Supported
    String.fromCodePoint Supported Not Supported
    Table 80. String.prototype methods
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    String.prototype.codePointAt Supported Supported
    String.prototype.normalize Supported Supported
    String.prototype.repeat Supported Supported
    String.prototype.startsWith Supported Supported
    String.prototype.startsWith throws on RegExp Not Supported Not Supported
    String.prototype.endsWith Supported Supported
    String.prototype.endsWith throws on RegExp Not Supported Not Supported
    String.prototype.includes Supported Supported
    String.prototype[Symbol.iterator] Supported Not Supported
    String iterator prototype chain Supported Not Supported
    Table 81. RegExp.prototype properties
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    RegExp.prototype.flags Supported Not Supported
    RegExp.prototype[Symbol.match] Supported Not Supported
    RegExp.prototype[Symbol.replace] Supported Not Supported
    RegExp.prototype[Symbol.split] Supported Not Supported
    RegExp.prototype[Symbol.search] Supported Not Supported
    RegExp[Symbol.species] Supported Not Supported
    Table 82. Array static methods
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    Array.from, array-like objects Supported Not Supported
    Array.from, generator instances Supported Disallowed
    Array.from, generic iterables Supported Not Supported
    Array.from, instances of generic iterables Supported Not Supported
    Array.from map function, array-like objects Supported Not Supported
    Array.from map function, generator instances Supported Disallowed
    Array.from map function, generic iterables Supported Not Supported
    Array.from map function, instances of iterables Supported Not Supported
    Array.from, iterator closing Supported Not Supported
    Array.of Supported Not Supported
    Array[Symbol.species] Supported Not Supported
    Table 83. Array.prototype methods
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    Array.prototype.copyWithin Supported Not Supported
    Array.prototype.find Supported Not Supported
    Array.prototype.findIndex Supported Not Supported
    Array.prototype.fill Supported Not Supported
    Array.prototype.keys Supported Not Supported
    Array.prototype.values Supported Not Supported
    Array.prototype.entries Supported Not Supported
    Array.prototype[Symbol.iterator] Supported Not Supported
    Array iterator prototype chain Supported Not Supported
    Array.prototype[Symbol.unscopables] Supported Not Supported
    Table 84. Number properties
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    Number.isFinite Supported Not Supported
    Number.isInteger Supported Not Supported
    Number.isSafeInteger Supported Not Supported
    Number.isNaN Supported Not Supported
    Number.parseFloat Supported Disallowed
    Number.parseInt Supported Disallowed
    Number.EPSILON Supported Not Supported
    Number.MIN_SAFE_INTEGER Supported Not Supported
    Number.MAX_SAFE_INTEGER Supported Not Supported
    Table 85. Math methods
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    Math.clz32 Supported Not Supported
    Math.imul Supported Not Supported
    Math.sign Supported Not Supported
    Math.log10 Supported Not Supported
    Math.log2 Supported Not Supported
    Math.log1p Supported Not Supported
    Math.expm1 Supported Not Supported
    Math.cosh Supported Not Supported
    Math.sinh Supported Not Supported
    Math.tanh Supported Not Supported
    Math.acosh Supported Not Supported
    Math.asinh Supported Not Supported
    Math.atanh Supported Not Supported
    Math.trunc Supported Not Supported
    Math.fround Supported Not Supported
    Math.cbrt Supported Not Supported
    Math.hypot Supported Not Supported
    Table 86. Date.prototype[Symbol.toPrimitive]
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    Date.prototype[Symbol.toPrimitive] Supported Not Supported
    Table 87. Array is subclassable
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    length property (accessing) Disallowed Disallowed
    length property (setting) Disallowed Disallowed
    correct prototype chain Disallowed Disallowed
    Array.isArray support Supported Disallowed
    Array.prototype.concat Supported Disallowed
    Array.prototype.filter Supported Disallowed
    Array.prototype.map Supported Disallowed
    Array.prototype.slice Supported Disallowed
    Array.prototype.splice Supported Disallowed
    Array.from Supported Disallowed
    Array.of Supported Disallowed
    Table 88. RegExp is subclassable
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    basic functionality Disallowed Disallowed
    correct prototype chain Disallowed Disallowed
    RegExp.prototype.exec Disallowed Disallowed
    RegExp.prototype.test Disallowed Disallowed
    Table 89. Function is subclassable
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    can be called Disallowed Disallowed
    correct prototype chain Disallowed Disallowed
    can be used with "new" Disallowed Disallowed
    Function.prototype.call Disallowed Disallowed
    Function.prototype.apply Disallowed Disallowed
    Function.prototype.bind Disallowed Disallowed
    Table 90. Promise is subclassable
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    basic functionality Disallowed Disallowed
    correct prototype chain Disallowed Disallowed
    Promise.all Disallowed Disallowed
    Promise.race Disallowed Disallowed
    Table 91. Miscellaneous subclassables
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    Boolean is subclassable Disallowed Disallowed
    Number is subclassable Disallowed Disallowed
    String is subclassable Disallowed Disallowed
    Error is subclassable Disallowed Disallowed
    Map is subclassable Disallowed Disallowed
    Set is subclassable Disallowed Disallowed
    Table 92. Prototype of bound functions
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    basic functions Disallowed Disallowed
    generator functions Disallowed Disallowed
    arrow functions Disallowed Disallowed
    classes Disallowed Disallowed
    subclasses Disallowed Disallowed
    Table 93. Proxy, internal 'get' calls
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    ToPrimitive Supported Disallowed
    CreateListFromArrayLike Supported Disallowed
    instanceof operator Supported Disallowed
    HasBinding Supported Disallowed
    CreateDynamicFunction Supported Disallowed
    ClassDefinitionEvaluation Supported Disallowed
    IteratorComplete, IteratorValue Supported Disallowed
    ToPropertyDescriptor Supported Disallowed
    Object.assign Supported Disallowed
    Object.defineProperties Supported Disallowed
    Function.prototype.bind Supported Disallowed
    Error.prototype.toString Supported Disallowed
    String.raw Supported Disallowed
    RegExp constructor Supported Disallowed
    RegExp.prototype.flags Supported Disallowed
    RegExp.prototype.test Supported Disallowed
    RegExp.prototype.toString Supported Disallowed
    RegExp.prototype[Symbol.match] Supported Disallowed
    RegExp.prototype[Symbol.replace] Supported Disallowed
    RegExp.prototype[Symbol.search] Supported Disallowed
    RegExp.prototype[Symbol.split] Supported Disallowed
    Array.from Supported Disallowed
    Array.prototype.concat Supported Disallowed
    Array.prototype iteration methods Supported Disallowed
    Array.prototype.pop Supported Disallowed
    Array.prototype.reverse Supported Disallowed
    Array.prototype.shift Supported Disallowed
    Array.prototype.splice Supported Disallowed
    Array.prototype.toString Supported Disallowed
    JSON.stringify Supported Disallowed
    Promise resolve functions Supported Disallowed
    String.prototype.match Supported Disallowed
    String.prototype.replace Supported Disallowed
    String.prototype.search Supported Disallowed
    String.prototype.split Supported Disallowed
    Date.prototype.toJSON Supported Disallowed
    Table 94. Proxy, internal 'set' calls
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    Object.assign Supported Disallowed
    Array.from Supported Disallowed
    Array.of Supported Disallowed
    Array.prototype.copyWithin Supported Disallowed
    Array.prototype.fill Supported Disallowed
    Array.prototype.pop Supported Disallowed
    Array.prototype.push Supported Disallowed
    Array.prototype.reverse Supported Disallowed
    Array.prototype.shift Supported Disallowed
    Array.prototype.splice Supported Disallowed
    Array.prototype.unshift Supported Disallowed
    Table 95. Proxy, internal 'defineProperty' calls
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    [[Set]] Supported Disallowed
    SetIntegrityLevel Supported Disallowed
    Table 96. Proxy, internal 'deleteProperty' calls
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    Array.prototype.copyWithin Supported Disallowed
    Array.prototype.pop Supported Disallowed
    Array.prototype.reverse Supported Disallowed
    Array.prototype.shift Supported Disallowed
    Array.prototype.splice Supported Disallowed
    Array.prototype.unshift Supported Disallowed
    Table 97. Proxy, internal 'getOwnPropertyDescriptor' calls
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    [[Set]] Supported Disallowed
    Object.assign Supported Disallowed
    Object.prototype.hasOwnProperty Supported Disallowed
    Function.prototype.bind Supported Disallowed
    Table 98. Proxy, internal 'ownKeys' calls
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    SetIntegrityLevel Supported Disallowed
    TestIntegrityLevel Supported Disallowed
    SerializeJSONObject Supported Disallowed
    Table 99. Object static methods accept primitives
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    Object.getPrototypeOf Disallowed Disallowed
    Object.getOwnPropertyDescriptor Disallowed Disallowed
    Object.getOwnPropertyNames Disallowed Disallowed
    Object.seal Disallowed Disallowed
    Object.freeze Disallowed Disallowed
    Object.preventExtensions Disallowed Disallowed
    Object.isSealed Disallowed Disallowed
    Object.isFrozen Disallowed Disallowed
    Object.isExtensible Disallowed Disallowed
    Object.keys Disallowed Disallowed
    Table 100. Own property order
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    Object.keys Supported Disallowed
    Object.getOwnPropertyNames Supported Disallowed
    Object.assign Disallowed Disallowed
    JSON.stringify Disallowed Disallowed
    JSON.parse Disallowed Disallowed
    Reflect.ownKeys, string key order Disallowed Disallowed
    Reflect.ownKeys, symbol key order Disallowed Disallowed
    Table 101. Updated identifier syntax
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    var ⸯ; Disallowed Disallowed
    var ð ‹€; Disallowed Disallowed
    no escaped reserved words as identifiers Disallowed Disallowed
    Table 102. Non-strict function semantics
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    hoisted block-level function declaration Supported Disallowed
    labeled function statements Disallowed Disallowed
    function statements in if-statement clauses Disallowed Disallowed
    Table 103. __proto__ in object literals
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    basic support Supported Disallowed
    multiple __proto__ is an error Disallowed Disallowed
    not a computed property Disallowed Disallowed
    not a shorthand property Disallowed Disallowed
    not a shorthand method Disallowed Disallowed
    Table 104. Object.prototype.__proto__
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    get prototype Disallowed Disallowed
    set prototype Disallowed Disallowed
    absent from Object.create(null) Disallowed Disallowed
    present in hasOwnProperty() Disallowed Disallowed
    correct property descriptor Disallowed Disallowed
    present in Object.getOwnPropertyNames() Disallowed Disallowed
    Table 105. String.prototype HTML methods
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    existence Supported Disallowed
    tags' names are lowercase Supported Disallowed
    quotes in arguments are escaped Supported Disallowed
    Table 106. RegExp.prototype.compile
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    basic functionality Supported Disallowed
    returns this Supported Disallowed
    Table 107. RegExp syntax extensions
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    hyphens in character sets Disallowed Disallowed
    invalid character escapes Disallowed Disallowed
    invalid control-character escapes Disallowed Disallowed
    invalid Unicode escapes Disallowed Disallowed
    invalid hexadecimal escapes Disallowed Disallowed
    incomplete patterns and quantifiers Disallowed Disallowed
    octal escape sequences Disallowed Disallowed
    invalid backreferences become octal escapes Disallowed Disallowed

    ECMAScript 2009 (ES5) features

    Table 108. Object/array literal extensions
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    Getter accessors Supported Supported
    Setter accessors Supported Supported
    Trailing commas in object literals Supported Supported
    Trailing commas in array literals Supported Supported
    Reserved words as property names Supported Supported
    Table 109. Object static methods
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    Object.create Supported Supported
    Object.defineProperty Supported Supported
    Object.defineProperties Supported Supported
    Object.getPrototypeOf Supported Supported
    Object.keys Supported Supported
    Object.seal Supported Supported
    Object.freeze Supported Supported
    Object.preventExtensions Supported Supported
    Object.isSealed Supported Supported
    Object.isFrozen Supported Supported
    Object.isExtensible Supported Supported
    Object.getOwnPropertyDescriptor Supported Supported
    Object.getOwnPropertyNames Supported Supported
    Table 110. Array methods
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    Array.isArray Supported Supported
    Array.prototype.indexOf Supported Supported
    Array.prototype.lastIndexOf Supported Supported
    Array.prototype.every Supported Supported
    Array.prototype.some Supported Supported
    Array.prototype.forEach Supported Supported
    Array.prototype.map Supported Supported
    Array.prototype.filter Supported Supported
    Array.prototype.reduce Supported Supported
    Array.prototype.reduceRight Supported Supported
    Array.prototype.sort: compareFn must be function or undefined Supported Not Supported
    Array.prototype.sort: compareFn may be explicit undefined Supported Supported
    Table 111. String properties and methods
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    Property access on strings Supported Supported
    String.prototype.split Supported Not Supported
    String.prototype.trim Supported Supported
    Table 112. Date methods
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    Date.prototype.toISOString Supported Supported
    Date.now Supported Supported
    Date.prototype.toJSON Supported Not Supported
    Table 113. Immutable globals
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    undefined Supported Supported
    NaN Supported Supported
    Infinity Supported Supported
    Table 114. Number methods
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    Number.prototype.toExponential rounds properly Supported Supported
    Number.prototype.toExponential throws on ±Infinity fractionDigits Supported Supported
    Number.prototype.toExponential does not throw on edge cases Supported Supported
    Table 115. Strict mode
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    reserved words Disallowed Disallowed
    "this" is undefined in functions Disallowed Disallowed
    "this" is not coerced to object in primitive methods Disallowed Disallowed
    "this" is not coerced to object in primitive accessors Disallowed Disallowed
    legacy octal is a SyntaxError Supported Disallowed
    assignment to unresolvable identifiers is a ReferenceError Supported Disallowed
    assignment to eval or arguments is a SyntaxError Supported Disallowed
    assignment to non-writable properties is a TypeError Supported Disallowed
    eval or arguments bindings is a SyntaxError Disallowed Disallowed
    arguments.caller removed or is a TypeError Supported Disallowed
    arguments.callee is a TypeError Supported Disallowed
    (function(){}).caller and (function(){}).arguments is a TypeError Supported Disallowed
    arguments is unmapped Disallowed Disallowed
    eval() can't create bindings Disallowed Disallowed
    deleting bindings is a SyntaxError Disallowed Disallowed
    deleting non-configurable properties is a TypeError Disallowed Disallowed
    "with" is a SyntaxError Supported Disallowed
    repeated parameter names is a SyntaxError Supported Disallowed
    function expressions with matching name and argument are valid Disallowed Disallowed
    Table 116. Function.prototype.bind
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    Function.prototype.bind Supported Supported
    Table 117. JSON
    Feature ECMAScript 2021 (ES12) mode ES5 Standards mode
    JSON Supported Supported