ECMAScript 6 support in Mozilla Redirect 1

ECMAScript 6 is the next version of the standard, code-named "Harmony" or "ES.next". Specification drafts can be found on the official wiki. If you wish to send feedback about the standard, do it on es-discuss.

TC39 Consensus is marked by three levels:

Consensus Ongoing Discussion Controversial

These represent an estimate of the current state of consensus in TC39 of the features and their design. The three levels mean:

  • Consensus: no major remaining disagreements over the design
  • Ongoing discussion: the feature has consensus but there are aspects of the design that are still being discussed
  • Controversial: there remain significant disagreements about the design

Features already supported in Firefox

Syntax

Feature Version Feature and Implementation Comment TC39 Consensus
const JS 1.5 Not compliant with the current specification: scoped like var not let Consensus
let (global scope) JS 1.7 Not compliant with the current specification Ongoing Discussion
let (local scope) JS 1.7 Not compliant with the current specification Consensus
Destructuring assignment JS 1.7 Not compliant with the current specification Consensus
for...of statement Firefox 13   Consensus
Iterators and generators ? Not compliant with the current specification Consensus
Rest parameters Firefox 15   Consensus
Default parameters Firefox 15   Consensus
Spread operator of Array Firefox 16   Consensus
Spread operator of Function calls Firefox 27   Consensus
Arrow functions Firefox 22   Consensus
Binary and octal integer literals Firefox 25 Binary: 0b010101 or 0B010101; Octal: 0o7170 or 0O7170 Consensus

Standard library

Feature Version Feature and Implementation Comment TC39 Consensus
Map Firefox 13 A new type of collections Consensus
Map Iteration Firefox 17 Iterable in for-of Consensus
map.forEach Firefox 25   Consensus
map.entries Firefox 20   Consensus
map.keys Firefox 20   Consensus
map.values Firefox 20   Consensus
Set Firefox 13 A new type of collections Consensus
Set Iteration Firefox 17 Iterable in for-of Consensus
set.forEach Firefox 25   Consensus
set.entries Firefox 24   Consensus
set.keys Firefox 24   Consensus
set.values Firefox 24   Consensus
Array Iteration Firefox 13 Iterable in for-of Consensus
Array.of() Firefox 25   Consensus
array.find() Firefox 25   Consensus
array.findIndex() Firefox 25   Consensus
array.entries() Firefox 28   Consensus
array.keys() Firefox 28   Consensus
array.values() Firefox 28   Consensus
WeakMap Firefox 6 A new type of collections Consensus
weakmap.clear() Firefox 20   Controversial
Proxy Firefox 18 Current implementation may differ from latest specification. Ongoing Discussion
RegExp sticky (y) flag Firefox 3   Consensus
Number.isNaN() Firefox 16   Consensus
Number.isFinite() Firefox 16   Consensus
Number.isInteger() Firefox 16   ?
Number.parseInt() Firefox 25   ?
Number.parseFloat() Firefox 25   ?
Number.EPSILON Firefox 25 The smallest interval between two representable numbers. Consensus
String.fromCodePoint() Firefox 29   Consensus
string.codePointAt() Firefox 29   Consensus
string.startsWith() Firefox 17   Consensus
string.endsWith() Firefox 17   Consensus
string.contains() Firefox 17   Consensus
string.repeat() Firefox 24   Consensus
Object.is Firefox 22   Ongoing Discussion
Math.imul Firefox 20 C-like 32-bit integer multiplication Consensus
New Math functions Firefox 25 log10, log2, log1p, expm1, cosh, sinh, tanh, acosh, asinh, atanh, hypot, trunc, sign ?
Math.fround Firefox 26 Rounds to the nearest single-precision float (Float32) ?
Promise Firefox 24 Behind the pref dom.promise.enabled up to Firefox 28.0 Ongoing Discussion

Features not yet supported

  • is and isnt operator
  • Number.toInteger()
  • Module
    • Loader API
    • import syntax
    • export syntax
  • Symbol
  • class syntax
  • Computed property names
  • Template strings
  • WeakSet
  • array.fill()
  • Typed objects
  • Object.assign()
  • Object.setPrototypeOf()
  • Array.from()

See also

Document Tags and Contributors

 Last updated by: Sheppy,