V8 發佈 v8.7
每隔六週,我們會根據發行流程創建一個新的 V8 分支。每個版本都會在 Chrome Beta 里程碑之前立即從 V8 的 Git master 分支出來。而今天我們很高興地宣布我們的最新分支 V8 版本 8.7,它將在 Beta 測試階段,直至幾週後與 Chrome 87 Stable 同步發布。V8 v8.7 滿載了各種面向開發者的精彩內容。本篇文章將提前預覽一些亮點,為發佈做好準備。
JavaScript
不安全的快速 JS 調用
V8 v8.7 帶來了增強的 API,用於從 JavaScript 執行原生調用。
此功能仍處於實驗階段,可以通過 V8 中的 --turbo-fast-api-calls
標誌或 Chrome 中的對應標誌 --enable-unsafe-fast-js-calls
啟用。它旨在提高某些原生圖形 API 在 Chrome 中的性能,但其他嵌入器也可以使用它。它為開發人員創建 v8::FunctionTemplate
實例提供了新手段,這在這個頭文件中有詳細說明。使用原始 API 創建的函數將不受影響。
有關更多信息以及可用功能列表,請參閱這個說明文檔。
Atomics.waitAsync
Atomics.waitAsync
現已在 V8 v8.7 中可用。
Atomics.wait
和 Atomics.notify
是用於實現互斥鎖及其他同步手段的低級同步原語。然而,由於 Atomics.wait
是阻塞式的,因此無法在主線程上調用(嘗試這樣做會引發 TypeError)。非阻塞版本 Atomics.waitAsync
也可以在主線程上使用。
查看我們關於 Atomics
API 的說明文檔以了解更多詳情。
V8 API
請使用 git log branch-heads/8.6..branch-heads/8.7 include/v8.h
查看 API 更改的列表。
擁有活躍 V8 檢出版本的開發者可以使用 git checkout -b 8.7 -t branch-heads/8.7
來嘗試 V8 v8.7 的新功能。或者,您可以訂閱 Chrome 的 Beta 渠道,並很快親自嘗試這些新功能。