jsn / ServiceNow, simplified.
AustraliaREFERENCE GUIDE

JavaScript engine feature support

On this page

JavaScript engine feature support

Compare ECMAScript features between the ECMAScript 2021 (ES12) and ES5 Standards JavaScript modes in Australia. 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.

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 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 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 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 Feature ECMAScript 2021 (ES12) mode ES5 Standards mode Basic functionality Supported Not Supported ToObject called before ToPropertyKey Supported Not Supported 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 Feature ECMAScript 2021 (ES12) mode ES5 Standards mode constructor supports it Not Supported Not Supported shows up in flags Not Supported Not Supported Feature ECMAScript 2021 (ES12) mode ES5 Standards mode Ergonomic brand checks for private fields Not Supported Not Supported Feature ECMAScript 2021 (ES12) mode ES5 Standards mode Class static initialization blocks Supported Not Supported

ECMAScript 2021 (ES12) features

Feature ECMAScript 2021 (ES12) mode ES5 Standards mode fulfillment Supported Disallowed AggregateError Supported Disallowed Feature ECMAScript 2021 (ES12) mode ES5 Standards mode WeakRef minimal support Disallowed Disallowed FinalizationRegistry minimal support Disallowed Disallowed 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 Feature ECMAScript 2021 (ES12) mode ES5 Standards mode numeric separators Supported Not Supported Feature ECMAScript 2021 (ES12) mode ES5 Standards mode String.prototype.replaceAll Supported Supported

ECMAScript 2020 (ES11) features

Feature ECMAScript 2021 (ES12) mode ES5 Standards mode basic functionality Supported Not Supported throws on non-global regex Supported Not Supported 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 Supported Not Supported BigUint64Array Supported Not Supported DataView.prototype.getBigInt64 Not Supported Not Supported DataView.prototype.getBigUint64 Not Supported Not Supported 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 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 Feature ECMAScript 2021 (ES12) mode ES5 Standards mode Promise.allSettled Supported Disallowed Feature ECMAScript 2021 (ES12) mode ES5 Standards mode nullish coalescing operator (??) Supported Not Supported

ECMAScript 2019 (ES10) features

Feature ECMAScript 2021 (ES12) mode ES5 Standards mode basic Supported Not Supported empty description Supported Not Supported undefined description Supported Not Supported 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 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 Feature ECMAScript 2021 (ES12) mode ES5 Standards mode Object.fromEntries Supported Not Supported Feature ECMAScript 2021 (ES12) mode ES5 Standards mode basic Supported Disallowed await Disallowed Disallowed yield Disallowed Disallowed 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 Supported Disallowed 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 Feature ECMAScript 2021 (ES12) mode ES5 Standards mode Well-formed JSON.stringify Disallowed Disallowed

ECMAScript 2018 (ES9) features

Feature ECMAScript 2021 (ES12) mode ES5 Standards mode object rest properties Supported Not Supported object spread properties Supported Not Supported Feature ECMAScript 2021 (ES12) mode ES5 Standards mode basic support Supported Disallowed don’t change resolution value Supported Disallowed change rejection value Supported Disallowed Feature ECMAScript 2021 (ES12) mode ES5 Standards mode async generators Disallowed Disallowed for-await-of loops Disallowed Disallowed Feature ECMAScript 2021 (ES12) mode ES5 Standards mode s (dotAll) flag for regular expressions Supported Not Supported Feature ECMAScript 2021 (ES12) mode ES5 Standards mode RegExp named capture groups Supported Not Supported Feature ECMAScript 2021 (ES12) mode ES5 Standards mode RegExp Lookbehind Assertions Supported Not Supported Feature ECMAScript 2021 (ES12) mode ES5 Standards mode RegExp Unicode Property Escapes Supported Not Supported Feature ECMAScript 2021 (ES12) mode ES5 Standards mode template literal revision Disallowed Disallowed

ECMAScript 2017 (ES8) features

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 Supported Not Supported Feature ECMAScript 2021 (ES12) mode ES5 Standards mode String.prototype.padStart Supported Not Supported String.prototype.padEnd Supported Not Supported Feature ECMAScript 2021 (ES12) mode ES5 Standards mode in parameter lists Supported Not Supported in argument lists Supported Not Supported 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 Feature ECMAScript 2021 (ES12) mode ES5 Standards mode SharedArrayBuffer Disallowed Disallowed SharedArrayBuffer 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 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 Feature ECMAScript 2021 (ES12) mode ES5 Standards mode __defineGetter__ Supported Disallowed __defineSetter__ Supported Disallowed __lookupGetter__ Supported Disallowed __lookupSetter__ Supported Disallowed

ECMAScript 2016 (ES7) features

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 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

Feature ECMAScript 2021 (ES12) mode ES5 Standards mode direct recursion Disallowed Disallowed mutual recursion Disallowed Disallowed 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 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 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 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 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 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 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 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 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 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 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 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 Feature ECMAScript 2021 (ES12) mode ES5 Standards mode in constructors Not Supported Not Supported assignment is an early error Disallowed Disallowed 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 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 Feature ECMAScript 2021 (ES12) mode ES5 Standards mode block-level function declaration Supported Not Supported 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 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 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 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 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 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 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 Supported Not Supported 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 Supported Not Supported 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 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 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 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 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 Supported Disallowed 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 Supported Not Supported global symbol registry Supported Not Supported 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 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 Feature ECMAScript 2021 (ES12) mode ES5 Standards mode function statements Supported Supported function expressions Supported Supported new Function Not Supported Not Supported bound functions Supported Not Supported variables (function) Supported Not Supported object methods (function) Supported Not Supported accessor properties 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 Feature ECMAScript 2021 (ES12) mode ES5 Standards mode String.raw Supported Not Supported String.fromCodePoint Supported Not Supported 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 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 Supported Not Supported 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 Supported Not Supported 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 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 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 Feature ECMAScript 2021 (ES12) mode ES5 Standards mode Date.prototype[Symbol.toPrimitive] Supported Not Supported 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 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 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 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 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 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 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 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 Feature ECMAScript 2021 (ES12) mode ES5 Standards mode [[Set]] Supported Disallowed SetIntegrityLevel Supported Disallowed 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 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 Feature ECMAScript 2021 (ES12) mode ES5 Standards mode SetIntegrityLevel Supported Disallowed TestIntegrityLevel Supported Disallowed SerializeJSONObject Supported Disallowed 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 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 Feature ECMAScript 2021 (ES12) mode ES5 Standards mode var ⸯ; Disallowed Disallowed var ð ‹€; Disallowed Disallowed no escaped reserved words as identifiers Disallowed Disallowed 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 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 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 Feature ECMAScript 2021 (ES12) mode ES5 Standards mode existence Supported Disallowed tags’ names are lowercase Supported Disallowed quotes in arguments are escaped Supported Disallowed Feature ECMAScript 2021 (ES12) mode ES5 Standards mode basic functionality Supported Disallowed returns this Supported Disallowed 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

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 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 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 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 Feature ECMAScript 2021 (ES12) mode ES5 Standards mode Date.prototype.toISOString Supported Supported Date.now Supported Supported Date.prototype.toJSON Supported Not Supported Feature ECMAScript 2021 (ES12) mode ES5 Standards mode undefined Supported Supported NaN Supported Supported Infinity Supported Supported 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 Feature ECMAScript 2021 (ES12) mode ES5 Standards mode reserved words Disallowed Disallowed “this” is undefined in functions Supported 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 Feature ECMAScript 2021 (ES12) mode ES5 Standards mode Function.prototype.bind Supported Supported Feature ECMAScript 2021 (ES12) mode ES5 Standards mode JSON Supported Supported

Parent Topic:JavaScript engine on the platform

Keep exploring.

Find another answer, or bring this documentation into your own tools.