v8 ver6.0がリリースされました。
ざっくりと新機能や改善点を整理します。
[https://v8project.blogspot.jp/2017/06/v8-release-60.html:embed:cite]
Main features
SharedArrayBuffer
ver6.0から、SharedArrayBufferがのサポートが開始されました。
[https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer:embed:cite]
SharedArrayBufferは、javascriptワーカーと、ワーカー間の同期制御時にメモリを共有するローレベルメカニズムです。
Object rest/spread properties
ES.nextの仕様において、現在stage3 である Object rest/spread propertiesが採用されました。
変数宣言時に、Object内の特定のプロパティを指定でき、さらに ...restと記述すれば、指定されていない残りのプロパティをまとめて取得できます。
// Rest properties for object destructuring assignment:
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
// firstName, lastName以外のプロパティをまとめて取得できる
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' }
ES6 Performance
v8 ver6.0において、ES2015の機能のパフォーマンス改善もされています。
javascriptのパフォーマンスベンチマークツールである Ares-6において、10%の改善がみられたようです。
[http://browserbench.org/ARES-6/]
v8 API
v8 APIに関してもいくつかの変更が加えられています。
変更点詳細は下記ページにまとまっています。
[https://docs.google.com/document/d/1g8JFi8T_oAE_7uAri7Njtig7fKaPDfotU6huOa1alds/edit:embed:cite]