跳至主要内容

V8 發佈 v8.7

· 閱讀時間約 3 分鐘
Ingvar Stepanyan ([@RReverser](https://twitter.com/RReverser)), 一位 V8 旗手

每隔六週,我們會根據發行流程創建一個新的 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.waitAtomics.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 渠道,並很快親自嘗試這些新功能。