ECMAScript Next refers to new features of the ECMA-262 standard (commonly referred to as JavaScript) introduced after ECMAScript 2015. New versions of ECMAScript specifications are released yearly. So far, ES2016, ES2017, and ES2018 have been released. This year, the ES2019 specification will be released and ES2020 is the current ECMAScript draft specification.
You can see the latest proposals on the tc39/ecma262 GitHub repository.
A channel for feedback on ECMAScript standards is es-discuss.
Below is a list of features in ES2016+ and what version of Firefox they were implemented in.
ECMAScript 2016
Array.prototype.includes()
(Firefox 43)TypedArray.prototype.includes()
(Firefox 43)- Exponentiation Operator (Firefox 52)
ECMAScript 2017
Object.values()
(Firefox 47)Object.entries()
(Firefox 47)String.prototype.padStart()
(Firefox 48)String.prototype.padEnd()
(Firefox 48)Object.getOwnPropertyDescriptors()
(Firefox 50)- Async Functions
async function
(Firefox 52)async function expression
(Firefox 52)AsyncFunction
(Firefox 52)await
(Firefox 52)
- Trailing commas in function parameter lists (Firefox 52)
ECMAScript 2018
- Spread in Object Literals and Rest parameters (Firefox 55)
for await...of
(Firefox 57)Global_Objects/SharedArrayBuffer
(Firefox 57, with flags)Global_Objects/Promise/finally
(Firefox 58)Global_Objects/RegExp/dotAll
(not yet implemented; in other browsers)- RegExp Lookbehind Assertions (not yet implemented; in other browsers)
- RegExp Unicode Property Escapes (not yet implemented; in other browsers)
- RegExp Named Capture Groups (not yet implemented; in other browsers)
ECMAScript 2019
Array.flat()
(Firefox 62)Array.flatMap()
(Firefox 62)Object.fromEntries()
(Firefox 63)String.trimStart()
andString.trimEnd()
(Firefox 61)- Optional Catch Binding (Firefox 58)
Function.toString()
revision (Firefox 54)Symbol.description
(Firefox 63)- Well-formed
JSON.stringify()
(Firefox 64)
ECMAScript 2020
This is the current ES.Next version.
Implemented proposals not in ES.Next
The following features are already implemented, but only available in the Firefox Nightly channel and not yet included in a draft edition of an ECMAScript specification.
Additions to the ArrayBuffer
object
New TypedObject objects
- Based on Typed Objects draft, and exposed via a global
TypedObject
object, e.g.TypedObject.StructType
&TypedObject.ArrayType
. This feature is non-standard and not documented.
See https://bugzilla.mozilla.org/show_bug.cgi?id=1336740 and https://bugzilla.mozilla.org/show_bug.cgi?id=578700.