Разработчики Chrome сообщили о реализации в свежих экспериментальных сборках браузера, на базе которых будет сформирован релиз Chrome/Chromium 52, полной поддержки всех возможностей, определённых в спецификациях ECMAScript 6 и 7. Если рассматривать уровень поддержки ECMAScript 6 по прохождению официального тестового набора test262, то степень совместимости Chrome оценивается в 98%, Firefox в 93% , в Edge - 90%, в Safari/WebKit - 99%. Результат 98% объясняется тем, что не все возможности ECMAScript 6 включены по умолчанию - при включении в настройках "экспериментальных функций JavaScript" тестирование приводит к показателю в 100%.

Спецификация ECMAScript 6 была утверждена в качестве стандарта летом прошлого года после шести лет разработки. C учётом интенсивности развития web-технологий решено значительно сократить время подготовки спецификаций и выпускать новый стандарт ECMAScript раз в год. Для развития ECMAScript теперь применяется метод непрерывной разработки master-спецификации, из которой раз в год выделяется обновление стандарта, включающего готовые для публикации возможности языка. В настоящее время ECMAScript 7 находится в стадии черновой спецификации, которую планируется утвердить летом нынешнего года.

В отличие от ECMAScript 6 спецификация ECMAScript 7 содержит относительно немного изменений, поэтому её удалось реализовать в браузере достаточно оперативно. Кроме устранения недоработок и внесения уточнений к прошлой версии стандарта, наиболее заметными новшествами ECMAScript 7 является оператор "**" для возведения в степень и метод Array.prototype.includes() для определения наличия элементов в массиве.

Применение непрерывной обновляемой спецификации ECMAScript упрощает реализацию поддержки стандарта в браузерах, по сути в V8 в настоящее время обеспечена поддержка master-спецификации ECMAScript, отражающей все тенденции развития стандарта, что важно с позиции доведения до пользователей исправлений, решающих определённые проблемы в утверждённых спецификациях. Например, в процессе реализации ECMAScript 6 было выявлено, что определённые в спецификации возможности RegExp расходятся с уже применяемой на практике семантикой, т.е. строгая реализация требований стандарта нарушает работу большого числа уже существующих сайтов, включая все сайты использующие библиотеку XRegExp.

В соответствии с тем, что сохранение совместимости является фундаментальным принципом Web, утверждающий стандарт комитет согласился с проблемой и внёс изменения в спецификацию, но данное изменение появится только в будущей версии стандарта. Развитие стандарта синхронно с развитием возможностей в браузере позволит предотвратить возникновение таких ситуаций.

Из развиваемых перспективных технологий отмечается работа над поддержкой в Chrome, Safari и Firefox средств для загрузки JavaScript-модулей с использованием тега ‹script type="module"›. Новый тег был предложен в ответ на проблему с тем, что в спецификации ECMAScript 6 для модулей были определены элементы import и export, но не был описан способ загрузки модулей в web-приложение. Из элементов, развиваемых для будущих стандартов ECMAScript, также отмечаются ключевые слова async / await и методы Object.prototype.values() / Object.prototype.entries(), String.prototype.padStart() / String.prototype.padEnd().

Источник: http://www.opennet.ru/opennews/art.shtml?num=44355