[译]V8发布5.0版本

原文

V8发布流程中的第一步就是在Chromium为新的Chrome Beta里程碑创建新分支之前从master分支创建新的分支,频率为每6周。我们最新的发布分支是V8 5.0,它仍然处于beta状态,直到我们随Chrome 50稳定版发布稳定版本。该版本中有一些开发者关注的新特性。

注:5.0这个版本号并不是凸显语义重要,或作为一个主要的版本(也不是次要版本)。

改进对ECMAScript 2015 (ES6)的支持

V8 5.0包含一些与正则表达式匹配相关的ES2015特性。

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)上的字符。

var 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命名的方法,来改变RegExp子类与String.prototype.match和类似方法之间的表现。

性能提升

5.0版本也给已经实现的ES2015和ES5特性带来一些显著的性能提升。

rest parameters的实现比前一个版本快8-10倍,使之更有效地在函数调用后收集大量参数到函数中。Object.keys(),用于遍历对象的可枚举属性非常有用,跟for .. in的返回顺序相同,现在大约2倍快。

V8 API

请检查我们汇总的API改动。这个文档通常在每次主要发布几周后更新。

活跃开发者可以使用git checkout -b 5.0 -t branch-heads/5.0来体验V8 5.0中的新特性。另外也可以订阅Chrome的Beta频道和自己尝试新特性。

上一篇:Node.js Interactive 2016 North America 纪行


下一篇:《STM32库开发实战指南:基于STM32F4》----2.3 仿真器配置