ECMAScript 2015 - это новая версия стандарта, имеющая кодовое имя "Harmony","ES.next" или "ECMAScript 6". Черновая спецификация может быть найдена в официальном вики ECMA. Первый рабочий черновик, основанный на ECMAScript 5.1, был опубликован 12 июля 2011 как "ES.next". По состоянию на август 2014 в ECMAScript 2015 больше не принимаются новые функции и ожидается окончание работы над ним в конце 2014 с официальной публикацией в марте 2015.
Для получения обратной связи по стандартам ECMAScript используется канал es-discuss.
Поддерживаемые функции
Следующие функции уже реализованы в Firefox:
Стандартная библиотека
Дополнения в объекте Array
- Обход
Arrayпри помощиfor...of(Firefox 13) Array.from()(Firefox 32)Array.of()(Firefox 25)Array.prototype.fill()(Firefox 31)Array.prototype.find(),Array.prototype.findIndex()(Firefox 25)Array.prototype.entries(),
Array.prototype.keys()(Firefox 28)Array.prototype.copyWithin()(Firefox 32)
Новые объекты Map и Set и их слабые аналоги
Map(Firefox 13)- Обход
Mapпри помощиfor...of(Firefox 17) Map.prototype.forEach()(Firefox 25)Map.prototype.entries(),
Map.prototype.keys(),
Map.prototype.values()(Firefox 20)
- Обход
Set(Firefox 13)- Обход
Setпри помощиfor...of(Firefox 17) Set.prototype.forEach()(Firefox 25)Set.prototype.entries(),
Set.prototype.keys(),
Set.prototype.values()(Firefox 24)
- Обход
WeakMap(Firefox 6)WeakSet(Firefox 34)
Новые функции в объекте Math
Math.imul()(Firefox 20)Math.clz32()(Firefox 31)Math.fround()(Firefox 26)Math.log10(),Math.log2(),Math.log1p(),Math.expm1(),Math.cosh(),Math.sinh(),Math.tanh(),Math.acosh(),Math.asinh(),Math.atanh(),Math.hypot(),Math.trunc(),Math.sign(),Math.cbrt()(Firefox 25)
Дополнения в объекте Number
Number.isNaN()(Firefox 16)Number.isFinite()(Firefox 16)Number.isInteger()(Firefox 16)Number.parseInt()(Firefox 25)Number.parseFloat()(Firefox 25)Number.EPSILON(Firefox 25)Number.MAX_SAFE_INTEGER,Number.MIN_SAFE_INTEGER(Firefox 31)Number.isSafeInteger()(Firefox 32)
Дополнения в объекте Object
Object.is()(Firefox 22)Object.setPrototypeOf()(Firefox 31)Object.assign()(Firefox 34)Object.getOwnPropertySymbols()(Firefox 33)
Новый объект Promise
Promise(Firefox 24, включён по умолчанию в Firefox 29)
Дополнения в объекте RegExp
Дополнения в объекте String
String.fromCodePoint()(Firefox 29)String.prototype.codePointAt()(Firefox 29)String.prototype.startsWith(),String.prototype.endsWith()(Firefox 17)String.prototype.contains()(Firefox 17)String.prototype.repeat()(Firefox 24)String.prototype.normalize()(Firefox 31)String.raw()(Firefox 34)
Новый объект Symbol
Symbol(Firefox 36)Symbol.for()- глобальный реестр символов
Типизированные массивы
Типизированные массивы стали часть спецификации ECMAScript 2015, а не только своей собственной.
ArrayBufferDataViewInt8ArrayUint8ArrayUint8ClampedArrayInt16ArrayUint16ArrayInt32ArrayUint32ArrayFloat32ArrayFloat64Array
Выражения и операторы
- Оператор распространения в массивах (Firefox 16)
- Оператор распространения при вызовах функций (Firefox 27)
Операторы
Функции
- Оставшиеся параметры (Firefox 15)
- Параметры по умолчанию (Firefox 15)
- Стрелочные функции (Firefox 22)
Другие возможности
- Двоичные и восьмеричные литералы (Firefox 25)
- Вычисляемые названия свойств (Firefox 34)
- Шаблонные строки (Firefox 34)
Стабилизируемые и обсуждаемые функции
Следующие функции частично реализованы в Firefox, но были добавлены до принятия стандарта ES2015 или ещё обсуждаются в стандарте ECMA TC39.
- Устаревшие итераторы и генераторы (JS 1.7, Firefox 2)
- Итераторы и генераторы ES2015 реализованы в Firefox 26 и выше.
- Деструктивное присваивание (JS 1.7, Firefox 2) (соответствие ES2015 баг 950547)
const(JS 1.5, Firefox 1.0) (соответствие ES2015 баг 950547)let(JS 1.7, Firefox 2) (соответствие ES2015 баг 950547)Прокси(Firefox 18) (соответствие ES2015 баг 978228)
Не реализованные функции
Следующие функции включены в черновик спецификации ECMAScript 2015, но пока не реализованы в Firefox:
- Module (баг 568953)
- Loader API
importсинтаксисexportсинтаксис
classсинтаксис (баг 837314)Array.prototype.values()(баг 875433)- Reflect API (баг 987514)
- Экранирование \u{nnnnnn} в Unicode (баг 320500)
- Широко используемые символы
RegExp.prototype.match(),
RegExp.prototype.replace(),
RegExp.prototype.search(),
RegExp.prototype.split()- Флаг "u" в RegExp
Function.prototype.toMethod()