В Chrome и движке V8 обеспечена поддержка спецификаций ECMAScript 6 и 7

Материал из Викиновостей, свободного источника новостей

1 мая 2016 года

Разработчики Chrome сообщили о реализации в свежих экспериментальных сборках браузера, на базе которых будет сформирован релиз Chrome/Chromium 52, полной поддержки всех возможностей, определённых в спецификациях ECMAScript 6 и 7. Если рассматривать уровень поддержки ECMAScript 6 по прохождению официального тестового набора test262, то степень совместимости Chrome оценивается (Архивная копия от 27 июля 2016 на Wayback Machine) в 98%, Firefox (Архивная копия от 20 октября 2020 на Wayback Machine) в 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 и JavaScript-модулей с использованием тега <script type="module">. Новый тег был предложен в ответ на проблему с тем, что в спецификации ECMAScript 6 для модулей были определены элементы import и export, но не был описан способ загрузки модулей в web-приложение. Из элементов, развиваемых для будущих стандартов ECMAScript, также отмечаются ключевые слова

async / await и методы Object.prototype.values() / Object.prototype.entries(), String.prototype.padStart() / String.prototype.padEnd().

Источники[править]


Creative Commons
Creative Commons
Эта статья содержит материалы из статьи «В Chrome и движке V8 обеспечена поддержка спецификаций ECMAScript 6 и 7», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии[править]

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.