huangxiaolu

V8 JavaScript引擎:V8发布6.0版

huangxiaolu · 2017-06-11翻译 · 727阅读 原文链接

V8发布6.0版

每六个星期,我们就会创建一个新的V8分支,作为发布过程(release process)的一部分。每个版本都是在Chrome Beta版里程碑之前直接从V8的master上创建的分支。今天,我们很高兴地宣布我们最新的分支——V8 6.0版本,它将会处于beta版,直到几周后随Chrome 60稳定版一同发布。V8 6.0有各种开发者喜爱的特性。现在向您展示新版本的一些亮点。

SharedArrayBuffers

V8 6.0引入了对SharedArrayBuffer的支持,SharedArrayBuffer是一个用于在JavaScript worker之间共享内存并跨worker同步控制流的一种底层机制。SharedArrayBuffers允许JavaScript访问共享内存,atomics和futexes。SharedArrayBuffers还开启了通过asm.js或WebAssembly将线程应用程序连接到Web的功能。

想了解简单的底层的教程,请参阅标准的教程页面,或参阅Emscripten文档查看移植pthread的内容。

对象的剩余/展开属性

此版本为对象字面量的对象解构赋值和展开属性引入了剩余属性。对象剩余/展开属性是处于Stage 3的ES.next的特性。

展开属性还在很多场景下提供了Object.assign()的一个简单的替代方案,可以用于多种场景。

// 对象解构赋值的剩余属性:
const person = {
  firstName: 'Sebastian',
  lastName: 'Markbåge',
  country: 'USA',
  state: 'CA',
};
const { firstName, lastName, ...rest } = person;
console.log(firstName); // Sebastian
console.log(lastName); // Markbåge
console.log(rest); // { country: 'USA', state: 'CA' }

// Spread properties for object literals:
const personCopy = { firstName, lastName, ...rest };
console.log(personCopy);
// { firstName: 'Sebastian', lastName: 'Markbåge', country: 'USA', state: 'CA' }

更多信息请参阅Web Fundamentals上的使用文档

ES6性能

V8 6.0继续提高了ES2015功能的性能。该版本包含了对语言功能实现的优化,总体上使V8的ARES-6得分提高了大约10%。

V8 API

请查看我们的API变更摘要。该文档在每个主要版本后的几周内都会定期更新。

经常checkout V8项目的开发者可以使用“git checkout -b 6.0 -t branch-heads / 6.0”来实验V8 6.0中的新功能。或者,您可以订阅Chrome's Beta频道,就能马上尝试新功能。

本文由V8团队发表

译者huangxiaolu尚未开通打赏功能

相关文章