V8 發佈 v5.7
每隔六周,我們會根據發佈流程創建 V8 的新分支。每個版本都從 V8 的 Git 主分支立即分支,恰逢 Chrome Beta 的里程碑。今天,我們很高興宣布最新的分支,V8 版本 5.7,這個版本將進行 Beta 測試,直到幾周後與 Chrome 57 穩定版同步發佈為止。V8 5.7 包含各種面向開發者的精彩功能。我們希望提前為您預覽一些亮點。
性能改進
原生 async 函數與 promises 一樣快
Async 函數的性能現在與使用 promises 寫成的代碼相當。我們的微基準測試顯示,async 函數的執行性能提高了四倍。同一時期,promise 的整體性能也提高了一倍。
持續改進 ES2015
V8 繼續提高 ES2015 語言功能的速度,讓開發者可以使用新功能而不需承受性能成本。展開運算符、解構賦值和生成器現在的性能幾乎與其簡單的 ES5 等效物相同。
RegExp 快速提升 15%
將 RegExp 函數從自託管的 JavaScript 實現遷移到集成 TurboFan 的代碼生成架構中,使整體 RegExp 性能提高了約 15%。詳細信息可以查看專門的博客文章。
JavaScript 語言功能
這個版本包含 ECMAScript 標準庫的幾個最近新增項目。兩個 String 方法,padStart
和 padEnd
,提供了有用的字符串格式功能,而 Intl.DateTimeFormat.prototype.formatToParts
則讓開發者能以地區化的方式自定義日期/時間格式。
啟用 WebAssembly
Chrome 57(包含 V8 v5.7)將是首次預設啟用 WebAssembly 的版本。更多細節請參閱 webassembly.org 的入門文檔以及 MDN 上的 API 文檔。
V8 API 增強
請查看我們的API 變更總結。此文檔會在每次主要發佈後幾周內定期更新。有活動 V8 檢出的開發者可以使用 git checkout -b 5.7 -t branch-heads/5.7
來試用 V8 v5.7 的新功能,或者您可以訂閱 Chrome的 Beta 測試版頻道,很快自己試用這些新功能。
PromiseHook
此 C++ API 允許用戶實現追踪 promises 整個生命周期的概述代碼。這啟用了 Node 即將推出的 AsyncHook API,它讓您能構建異步上下文傳播。
PromiseHook
API 提供四個生命周期鉤子:初始化(init)、解析(resolve)、前置(before)和後置(after)。初始化鉤子在創建新 promise 時運行;解析鉤子在 promise 被解析時運行;前置和後置鉤子則分別在 PromiseReactionJob
執行之前和之後運行。更多信息請查閱追踪問題和設計文檔。