Перейти к основному содержимому

Релиз V8 версии v5.0

· 2 мин. чтения
команда V8

Первым шагом в процессе выпуска V8 является создание новой ветки из главной ветки Git сразу перед появлением ветки Chromium для этапа Chrome Beta (примерно каждые шесть недель). Наша новейшая ветка релиза - V8 v5.0, которая останется в бета-версии до выпуска стабильной сборки вместе с Chrome 50 Stable. Вот ключевые нововведения для разработчиков в этой версии V8.

примечание

Примечание: Номер версии 5.0 не имеет семантического значения или не указывает на крупный релиз (в отличие от минорного релиза).

Улучшенная поддержка ECMAScript 2015 (ES6)

V8 v5.0 включает ряд новых функций ES2015, связанных с регулярными выражениями (regex).

Флаг RegExp Unicode

Флаг RegExp Unicode, u, включает новый режим Unicode для работы с регулярными выражениями. Флаг Unicode интерпретирует шаблоны и строки регулярных выражений как последовательность кодовых точек Unicode. Также становится доступен новый синтаксис для экранирования кодовых точек Unicode.

/😊{2}/.test('😊😊');
// false

/😊{2}/u.test('😊😊');
// true

/\u{76}\u{38}/u.test('v8');
// true

/\u{1F60A}/u.test('😊');
// true

Флаг u также заставляет атом . (также известный как одиночный символ) соответствовать любому символу Unicode, а не только символам из базовой многоязычной плоскости (BMP).

const string = 'the 🅛 train';

/the\s.\strain/.test(string);
// false

/the\s.\strain/u.test(string);
// true

Пользовательские хуки для RegExp

ES2015 включает хуки для подклассов RegExp, чтобы изменять семантику совпадений. Подклассы могут переопределять методы Symbol.match, Symbol.replace, Symbol.search и Symbol.split для изменения поведения методов, таких как String.prototype.match, для подклассов RegExp.

Улучшения производительности функций ES2015 и ES5

Версия 5.0 также принесла несколько заметных улучшений производительности уже реализованных функций ES2015 и ES5.

Реализация параметров rest стала быстрее в 8-10 раз по сравнению с предыдущей версией, что делает сборку большого количества аргументов в массив после вызова функции более эффективной. Object.keys, полезный для итерации по перечисляемым свойствам объекта в том же порядке, что используется for-in, теперь примерно в 2 раза быстрее.

API V8

Ознакомьтесь с резюме изменений API. Этот документ регулярно обновляется через несколько недель после каждого крупного релиза.

Разработчики с активной копией V8 могут использовать git checkout -b 5.0 -t branch-heads/5.0 для экспериментов с новыми функциями V8 5.0. Либо вы можете подписаться на бета-канал Chrome и вскоре самостоятельно протестировать новые функции.