Compare ECMAScript features between the ECMAScript 2021 (ES12) and ES5 Standards JavaScript modes in Utah . 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 Now 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 4. .at() method on the built-in indexables
Feature ECMAScript 2021 (ES12) ES5 Standards
Array.prototype.at() Not Supported Not Supported
String.prototype.at() Supported Not Supported
%TypedArray%.prototype.at() Disallowed Disallowed
Table 5. Object.hasOwn
Feature ECMAScript 2021 (ES12) ES5 Standards
Basic functionality Supported Not Supported
ToObject called before ToPropertyKey Supported Not Supported
Table 7. RegExp Match Indices (`hasIndices` / `d` flag)
Feature ECMAScript 2021 (ES12) ES5 Standards
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) ES5 Standards
Ergonomic brand checks for private fields Not Supported Not Supported
Table 9. Class static initialization blocks
Feature ECMAScript 2021 (ES12) ES5 Standards
Class static initialization blocks Supported Not Supported

ECMAScript 2021 (ES12) features

Table 10. Promise.any
Feature ECMAScript 2021 (ES12) ES5 Standards
fulfillment Disallowed Disallowed
AggregateError Disallowed Disallowed
Table 11. WeakReferences
Feature ECMAScript 2021 (ES12) ES5 Standards
WeakRef minimal support Disallowed Disallowed
FinalizationRegistry minimal support Disallowed Disallowed
Table 13. Numeric separators
Feature ECMAScript 2021 (ES12) ES5 Standards
numeric separators Supported Not Supported
Table 14. String.prototype.replaceAll
Feature ECMAScript 2021 (ES12) ES5 Standards
String.prototype.replaceAll Supported Supported

ECMAScript 2020 (ES11) features

Table 15. String.prototype.matchAll
Feature ECMAScript 2021 (ES12) ES5 Standards
basic functionality Supported Not Supported
throws on non-global regex Supported Not Supported
Table 17. globalThis
Feature ECMAScript 2021 (ES12) ES5 Standards
"globalThis" global property is global object Disallowed Disallowed
"globalThis" global property has correct property descriptor Disallowed Disallowed
Table 19. Promise.allSettled
Feature ECMAScript 2021 (ES12) ES5 Standards
Promise.allSettled Disallowed Disallowed
Table 20. Nullish coalescing operator (??)
Feature ECMAScript 2021 (ES12) ES5 Standards
nullish coalescing operator (??) Supported Not Supported

ECMAScript 2019 (ES10) features

Table 21. Symbol.prototype.description
Feature ECMAScript 2021 (ES12) ES5 Standards
basic Supported Not Supported
empty description Supported Not Supported
undefined description Supported Not Supported
Table 23. Array.prototype.{flat, flatMap}
Feature ECMAScript 2021 (ES12) ES5 Standards
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) ES5 Standards
Object.fromEntries Supported Not Supported
Table 25. Optional catch binding
Feature ECMAScript 2021 (ES12) ES5 Standards
basic Disallowed Disallowed
await Disallowed Disallowed
yield Disallowed Disallowed
Table 27. JSON superset
Feature ECMAScript 2021 (ES12) ES5 Standards
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) ES5 Standards
Well-formed JSON.stringify Disallowed Disallowed

ECMAScript 2018 (ES9) features

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

ECMAScript 2017 (ES8) features

Table 38. String padding
Feature ECMAScript 2021 (ES12) ES5 Standards
String.prototype.padStart Supported Not Supported
String.prototype.padEnd Supported Not Supported
Table 39. Trailing commas in function syntax
Feature ECMAScript 2021 (ES12) ES5 Standards
in parameter lists Supported Not Supported
in argument lists Supported Not Supported

ECMAScript 2016 (ES7) features

Table 44. Exponentiation (**) operator
Feature ECMAScript 2021 (ES12) ES5 Standards
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) ES5 Standards
Array.prototype.includes Supported Not Supported
Array.prototype.includes is generic Not Supported Not Supported
%TypedArray%.prototype.includes Disallowed Disallowed

ECMAScript 2015 (ES6) features

Table 46. Proper tail calls (tail call optimization)
Feature ECMAScript 2021 (ES12) ES5 Standards
direct recursion Disallowed Disallowed
mutual recursion Disallowed Disallowed
Table 59. New.target
Feature ECMAScript 2021 (ES12) ES5 Standards
in constructors Not Supported Not Supported
assignment is an early error Disallowed Disallowed
Table 62. Block-level function declaration
Feature ECMAScript 2021 (ES12) ES5 Standards
block-level function declaration Supported Not Supported
Table 79. String static methods
Feature ECMAScript 2021 (ES12) ES5 Standards
String.raw Supported Not Supported
String.fromCodePoint Supported Not Supported
Table 86. Date.prototype[Symbol.toPrimitive]
Feature ECMAScript 2021 (ES12) ES5 Standards
Date.prototype[Symbol.toPrimitive] Supported Not Supported
Table 95. Proxy, internal 'defineProperty' calls
Feature ECMAScript 2021 (ES12) ES5 Standards
[[Set]] Disallowed Disallowed
SetIntegrityLevel Disallowed Disallowed
Table 98. Proxy, internal 'ownKeys' calls
Feature ECMAScript 2021 (ES12) ES5 Standards
SetIntegrityLevel Disallowed Disallowed
TestIntegrityLevel Disallowed Disallowed
SerializeJSONObject Disallowed Disallowed
Table 101. Updated identifier syntax
Feature ECMAScript 2021 (ES12) ES5 Standards
var ⸯ; Disallowed Disallowed
var ð ‹€; Disallowed Disallowed
no escaped reserved words as identifiers Disallowed Disallowed
Table 102. Non-strict function semantics
Feature ECMAScript 2021 (ES12) ES5 Standards
hoisted block-level function declaration Disallowed Disallowed
labeled function statements Disallowed Disallowed
function statements in if-statement clauses Disallowed Disallowed
Table 105. String.prototype HTML methods
Feature ECMAScript 2021 (ES12) ES5 Standards
existence Disallowed Disallowed
tags' names are lowercase Disallowed Disallowed
quotes in arguments are escaped Disallowed Disallowed
Table 106. RegExp.prototype.compile
Feature ECMAScript 2021 (ES12) ES5 Standards
basic functionality Disallowed Disallowed
returns this Disallowed Disallowed

ECMAScript 2009 (ES5) features

Table 111. String properties and methods
Feature ECMAScript 2021 (ES12) ES5 Standards
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) ES5 Standards
Date.prototype.toISOString Supported Supported
Date.now Supported Supported
Date.prototype.toJSON Not Supported Not Supported
Table 113. Immutable globals
Feature ECMAScript 2021 (ES12) ES5 Standards
undefined Supported Supported
NaN Supported Supported
Infinity Supported Supported
Table 114. Number methods
Feature ECMAScript 2021 (ES12) ES5 Standards
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 116. Function.prototype.bind
Feature ECMAScript 2021 (ES12) ES5 Standards
Function.prototype.bind Supported Supported
Table 117. JSON
Feature ECMAScript 2021 (ES12) ES5 Standards
JSON Supported Supported