跳至主要内容

V8 版本 v7.0

· 閱讀時間約 3 分鐘
Michael Hablich

每六週,我們會根據 發布流程 建立 V8 的一個新分支。每個版本都是在 Chrome Beta 基準點之前,從 V8 的 Git 主分支分出來的。今天,我們很高興地宣布我們的最新分支,V8 版本 7.0,該版本將處於 Beta 階段,直到幾週後隨著 Chrome 70 穩定版一起發布。V8 v7.0 包含各種面向開發者的實用功能。本篇文章將提前預覽一些亮點功能,供大家期待發布。

內嵌內建功能

內嵌內建功能 通過在多個 V8 隔離中共享生成的代碼來節省記憶體。從 V8 v6.9 開始,我們在 x64 平台啟用了內嵌內建功能。V8 v7.0 將這些記憶體節省功能擴展到了除了 ia32 之外的所有剩餘平台。

WebAssembly 線程預覽

WebAssembly (Wasm) 支持將用 C++ 和其他語言編寫的代碼編譯後在網頁上運行。一項非常實用的本地應用特性就是使用線程——一種並行計算的基本工具。大多數 C 和 C++ 開發者對 pthreads(應用線程管理的標準化 API)應該很熟悉。

WebAssembly 社群小組 一直在努力將線程引入網頁,以支持真正的多線程應用。作為這一工作的部分內容,V8 已經在 WebAssembly 引擎中實現了對線程的必要支持。要在 Chrome 中使用該功能,您可以通過 chrome://flags/#enable-webassembly-threads 啟用它,或者您的網站可以註冊參加 Origin Trial。Origin Trial 允許開發者在新的網頁功能完全標準化之前進行實驗,這對於收集真實世界的反饋、驗證和改進新功能至關重要。

JavaScript 語言功能

description 屬性 正被新增到 Symbol.prototype。這提供了一種更便捷的方法來訪問 Symbol 的描述。以前,描述只能通過 Symbol.prototype.toString() 間接訪問。感謝 Igalia 為此實現做出的貢獻!

Array.prototype.sort 現在在 V8 v7.0 中是穩定的。此前,V8 對超過 10 個元素的陣列使用不穩定的快排(QuickSort)。現在,我們採用了穩定的 TimSort 演算法。詳情請參閱我們的部落格文章

V8 API

請使用 git log branch-heads/6.9..branch-heads/7.0 include/v8.h 來獲取 API 變更的清單。

擁有 活動 V8 檢出 的開發者可以使用 git checkout -b 7.0 -t branch-heads/7.0 來試驗 V8 v7.0 中的新功能。或者,您也可以訂閱 Chrome 的 Beta 渠道,並很快親自嘗試這些新功能。