メインコンテンツまでスキップ

V8リリース v4.7

· 約3分
V8チーム

およそ6週間ごとに、リリースプロセスの一環としてV8の新しいブランチが作成されます。それぞれのバージョンは、Chromeのベータ版マイルストーンのためにChromeがブランチ化される直前に、V8のGitマスターからブランチ化されます。本日は、私たちの最新のブランチ、V8バージョン4.7を発表できることを嬉しく思います。このバージョンはChrome 47の安定版と連動してリリースされるまでベータ版となります。V8 v4.7には開発者向けのさまざまな新機能が詰まっており、数週間後のリリースに向けて一部のハイライトをお届けします。

改良されたECMAScript 2015 (ES6) サポート

Rest オペレーター

Restオペレーターは、不定数の引数を関数に渡すことを可能にします。これはargumentsオブジェクトに似ています。

// Restオペレーターを使用しない場合
function concat() {
var args = Array.prototype.slice.call(arguments, 1);
return args.join('');
}

// Restオペレーターを使用する場合
function concatWithRest(...strings) {
return strings.join('');
}

今後のES機能サポート

Array.prototype.includes

Array.prototype.includesは、ES2016に含まれるためのステージ3提案中の新しい機能です。これは指定された配列内に要素があるかどうかを判断する簡潔な構文を提供し、ブール値を返します。

[1, 2, 3].includes(3); // true
['apple', 'banana', 'cherry'].includes('apple'); // true
['apple', 'banana', 'cherry'].includes('peach'); // false

パース時のメモリ負荷の軽減

V8パーサーの最近の変更により、大きな入れ子関数を含むファイルを解析する際のメモリ消費が大幅に削減されました。特に、これにより以前より大きなasm.jsモジュールをV8で実行することが可能になりました。

V8 API

私たちのAPI変更サマリーをご覧ください。この文書は、各主要リリースの数週間後に定期的に更新されます。アクティブなV8チェックアウトを持つ開発者は、git checkout -b 4.7 -t branch-heads/4.7を使用してV8 v4.7の新機能を試すことができます。あるいは、Chromeのベータ版チャンネルに登録することで、すぐに新機能を自分で試すことができます。