WebAssembly.validate()
Baseline 廣泛可用 *
WebAssembly.validate() 靜態方法會驗證給定的 WebAssembly 二進位制程式碼的 型別化陣列,返回該位元組是否構成一個有效的 Wasm 模組 (true) 或否 (false)。
語法
js
WebAssembly.validate(bufferSource)
WebAssembly.validate(bufferSource, compileOptions)
引數
bufferSource-
包含待驗證的 WebAssembly 二進位制程式碼的 型別化陣列 或 ArrayBuffer。
compileOptions可選-
包含編譯選項的物件。此引數包含在
validate()方法中,以便在存在編譯選項時(例如,用於實現功能檢測)驗證模組。屬性可以包括builtins可選-
一個字串陣列,用於啟用在已編譯的 Wasm 模組中使用 JavaScript 內建函式。這些字串定義了您要啟用的內建函式。目前唯一可用的值是
"js-string",它啟用 JavaScript 字串內建函式。 importedStringConstants可選-
一個字串,指定 匯入的全域性字串常量 的名稱空間。如果您希望在 Wasm 模組中使用匯入的全域性字串常量,則需要指定此屬性。
返回值
一個布林值,指定 bufferSource 是否為有效的 Wasm 程式碼 (true) 或否 (false)。
異常
如果 bufferSource 不是 型別化陣列 或 ArrayBuffer,則會丟擲 TypeError。
示例
使用 validate
下面的示例(請參閱 validate.html 的 原始碼,以及 即時預覽)會獲取一個 Wasm 模組並將其轉換為型別化陣列。然後使用 validate() 方法來檢查模組是否有效。
js
fetch("simple.wasm")
.then((response) => response.arrayBuffer())
.then((bytes) => {
const valid = WebAssembly.validate(bytes);
console.log(
`The given bytes are ${valid ? "" : "not "}a valid Wasm module`,
);
});
使用啟用 JavaScript 內建函式和全域性字串匯入來驗證模組
此示例使用啟用了 JavaScript 字串內建函式和匯入的全域性字串常量來驗證 Wasm 模組。如果有效,則在控制檯記錄 "Wasm module valid: true",如果無效,則記錄 "Wasm module valid: false"。檢視即時執行。
js
const compileOptions = {
builtins: ["js-string"], // Enable JavaScript string builtins
importedStringConstants: "string_constants", // Enable imported global string constants
};
fetch("log-concat.wasm")
.then((response) => response.arrayBuffer())
.then((bytes) => WebAssembly.validate(bytes, compileOptions))
.then((result) => console.log(`Wasm module valid: ${result}`));
規範
| 規範 |
|---|
| WebAssembly JavaScript 介面 # dom-webassembly-validate |
瀏覽器相容性
載入中…