JavaScript engine feature support
-
- UpdatedFeb 2, 2023
- 20 minutes to read
- Utah
- API implementation
The Utah release is no longer supported. As such, the product documentation and release notes are provided for informational purposes only, and will not be updated.
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.
Feature | ECMAScript 2021 (ES12) | ES5 Standards |
---|---|---|
Array.prototype.at() | Not Supported | Not Supported |
String.prototype.at() | Supported | Not Supported |
%TypedArray%.prototype.at() | Disallowed | Disallowed |
Feature | ECMAScript 2021 (ES12) | ES5 Standards |
---|---|---|
Basic functionality | Supported | Not Supported |
ToObject called before ToPropertyKey | Supported | Not Supported |
Feature | ECMAScript 2021 (ES12) | ES5 Standards |
---|---|---|
constructor supports it | Not Supported | Not Supported |
shows up in flags | Not Supported | Not Supported |
Feature | ECMAScript 2021 (ES12) | ES5 Standards |
---|---|---|
Ergonomic brand checks for private fields | Not Supported | Not Supported |
Feature | ECMAScript 2021 (ES12) | ES5 Standards |
---|---|---|
Class static initialization blocks | Supported | Not Supported |
ECMAScript 2021 (ES12) features
Feature | ECMAScript 2021 (ES12) | ES5 Standards |
---|---|---|
fulfillment | Disallowed | Disallowed |
AggregateError | Disallowed | Disallowed |
Feature | ECMAScript 2021 (ES12) | ES5 Standards |
---|---|---|
WeakRef minimal support | Disallowed | Disallowed |
FinalizationRegistry minimal support | Disallowed | Disallowed |
Feature | ECMAScript 2021 (ES12) | ES5 Standards |
---|---|---|
numeric separators | Supported | Not Supported |
Feature | ECMAScript 2021 (ES12) | ES5 Standards |
---|---|---|
String.prototype.replaceAll | Supported | Supported |
ECMAScript 2020 (ES11) features
Feature | ECMAScript 2021 (ES12) | ES5 Standards |
---|---|---|
basic functionality | Supported | Not Supported |
throws on non-global regex | Supported | Not Supported |
Feature | ECMAScript 2021 (ES12) | ES5 Standards |
---|---|---|
"globalThis" global property is global object | Disallowed | Disallowed |
"globalThis" global property has correct property descriptor | Disallowed | Disallowed |
Feature | ECMAScript 2021 (ES12) | ES5 Standards |
---|---|---|
Promise.allSettled | Disallowed | Disallowed |
Feature | ECMAScript 2021 (ES12) | ES5 Standards |
---|---|---|
nullish coalescing operator (??) | Supported | Not Supported |
ECMAScript 2019 (ES10) features
Feature | ECMAScript 2021 (ES12) | ES5 Standards |
---|---|---|
basic | Supported | Not Supported |
empty description | Supported | Not Supported |
undefined description | Supported | Not Supported |
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 |
Feature | ECMAScript 2021 (ES12) | ES5 Standards |
---|---|---|
Object.fromEntries | Supported | Not Supported |
Feature | ECMAScript 2021 (ES12) | ES5 Standards |
---|---|---|
basic | Disallowed | Disallowed |
await | Disallowed | Disallowed |
yield | Disallowed | Disallowed |
Feature | ECMAScript 2021 (ES12) | ES5 Standards |
---|---|---|
Line separator can appear in string literals | Disallowed | Disallowed |
Paragraph separator can appear in string literals | Disallowed | Disallowed |
Feature | ECMAScript 2021 (ES12) | ES5 Standards |
---|---|---|
Well-formed JSON.stringify | Disallowed | Disallowed |
ECMAScript 2018 (ES9) features
Feature | ECMAScript 2021 (ES12) | ES5 Standards |
---|---|---|
object rest properties | Supported | Not Supported |
object spread properties | Supported | Not Supported |
Feature | ECMAScript 2021 (ES12) | ES5 Standards |
---|---|---|
basic support | Disallowed | Disallowed |
don't change resolution value | Disallowed | Disallowed |
change rejection value | Disallowed | Disallowed |
Feature | ECMAScript 2021 (ES12) | ES5 Standards |
---|---|---|
async generators | Disallowed | Disallowed |
for-await-of loops | Disallowed | Disallowed |
Feature | ECMAScript 2021 (ES12) | ES5 Standards |
---|---|---|
s (dotAll) flag for regular expressions | Supported | Not Supported |
Feature | ECMAScript 2021 (ES12) | ES5 Standards |
---|---|---|
RegExp named capture groups | Supported | Not Supported |
Feature | ECMAScript 2021 (ES12) | ES5 Standards |
---|---|---|
RegExp Lookbehind Assertions | Not Supported | Not Supported |
Feature | ECMAScript 2021 (ES12) | ES5 Standards |
---|---|---|
RegExp Unicode Property Escapes | Not Supported | Not Supported |
Feature | ECMAScript 2021 (ES12) | ES5 Standards |
---|---|---|
template literal revision | Disallowed | Disallowed |
ECMAScript 2017 (ES8) features
Feature | ECMAScript 2021 (ES12) | ES5 Standards |
---|---|---|
String.prototype.padStart | Supported | Not Supported |
String.prototype.padEnd | Supported | Not Supported |
Feature | ECMAScript 2021 (ES12) | ES5 Standards |
---|---|---|
in parameter lists | Supported | Not Supported |
in argument lists | Supported | Not Supported |
ECMAScript 2016 (ES7) features
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 |
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
Feature | ECMAScript 2021 (ES12) | ES5 Standards |
---|---|---|
direct recursion | Disallowed | Disallowed |
mutual recursion | Disallowed | Disallowed |
Feature | ECMAScript 2021 (ES12) | ES5 Standards |
---|---|---|
in constructors | Not Supported | Not Supported |
assignment is an early error | Disallowed | Disallowed |
Feature | ECMAScript 2021 (ES12) | ES5 Standards |
---|---|---|
block-level function declaration | Supported | Not Supported |
Feature | ECMAScript 2021 (ES12) | ES5 Standards |
---|---|---|
String.raw | Supported | Not Supported |
String.fromCodePoint | Supported | Not Supported |
Feature | ECMAScript 2021 (ES12) | ES5 Standards |
---|---|---|
Date.prototype[Symbol.toPrimitive] | Supported | Not Supported |
Feature | ECMAScript 2021 (ES12) | ES5 Standards |
---|---|---|
[[Set]] | Disallowed | Disallowed |
SetIntegrityLevel | Disallowed | Disallowed |
Feature | ECMAScript 2021 (ES12) | ES5 Standards |
---|---|---|
SetIntegrityLevel | Disallowed | Disallowed |
TestIntegrityLevel | Disallowed | Disallowed |
SerializeJSONObject | Disallowed | Disallowed |
Feature | ECMAScript 2021 (ES12) | ES5 Standards |
---|---|---|
var ⸯ; | Disallowed | Disallowed |
var ð ‹€; | Disallowed | Disallowed |
no escaped reserved words as identifiers | Disallowed | Disallowed |
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 |
Feature | ECMAScript 2021 (ES12) | ES5 Standards |
---|---|---|
existence | Disallowed | Disallowed |
tags' names are lowercase | Disallowed | Disallowed |
quotes in arguments are escaped | Disallowed | Disallowed |
Feature | ECMAScript 2021 (ES12) | ES5 Standards |
---|---|---|
basic functionality | Disallowed | Disallowed |
returns this | Disallowed | Disallowed |
ECMAScript 2009 (ES5) features
Feature | ECMAScript 2021 (ES12) | ES5 Standards |
---|---|---|
Property access on strings | Supported | Supported |
String.prototype.split | Supported | Not Supported |
String.prototype.trim | Supported | Supported |
Feature | ECMAScript 2021 (ES12) | ES5 Standards |
---|---|---|
Date.prototype.toISOString | Supported | Supported |
Date.now | Supported | Supported |
Date.prototype.toJSON | Not Supported | Not Supported |
Feature | ECMAScript 2021 (ES12) | ES5 Standards |
---|---|---|
undefined | Supported | Supported |
NaN | Supported | Supported |
Infinity | Supported | Supported |
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 |
Feature | ECMAScript 2021 (ES12) | ES5 Standards |
---|---|---|
Function.prototype.bind | Supported | Supported |
Feature | ECMAScript 2021 (ES12) | ES5 Standards |
---|---|---|
JSON | Supported | Supported |