WebAssembly.Module.customSections()
**WebAssembly.Module.customSections()** 靜態方法返回給定模組中所有具有給定字串名稱的自定義節的內容的副本。
語法
WebAssembly.Module.customSections(module, sectionName)
引數
module-
正在考慮其自定義節的
WebAssembly.Module物件。 sectionName-
所需自定義節的字串名稱。
返回值
一個(可能為空)陣列,包含與sectionName匹配的所有自定義節內容的ArrayBuffer 副本。
異常
如果module不是WebAssembly.Module 物件例項,則會丟擲TypeError。
描述
Wasm 模組由一系列**節**組成。這些節中的大多數都由 Wasm 規範完全指定和驗證,但模組還可以包含在驗證期間被忽略和跳過的**自定義節**。(閱讀高階結構以獲取有關節結構以及如何區分普通節(“已知節”)和自定義節的資訊。)
這為開發人員提供了一種方法,可以在 Wasm 模組中包含用於其他目的的自定義資料,例如名稱自定義節,它允許開發人員為模組中的所有函式和區域性變數提供名稱(如原生構建中的“符號”)。
請注意,WebAssembly 文字格式目前沒有為新增新的自定義節指定語法;但是,您可以在從文字格式轉換為 Wasm 的過程中向 Wasm 新增名稱節。wast2wasm命令作為wabt 工具的一部分可用,它有一個--debug-names選項 - 在轉換期間指定此選項以獲取帶有名稱自定義節的 Wasm,例如
wast2wasm simple-name-section.was -o simple-name-section.wasm --debug-names
示例
使用 customSections
以下示例使用WebAssembly.Module.customSections檢查載入的模組例項是否包含“name”自定義節。如果WebAssembly.Module.customSections返回長度大於 0 的ArrayBuffer,則模組包含“name”自定義節。
請參閱 custom-section.html 原始碼和即時示例。
WebAssembly.compileStreaming(fetch("simple-name-section.wasm")).then((mod) => {
const nameSections = WebAssembly.Module.customSections(mod, "name");
if (nameSections.length !== 0) {
console.log("Module contains a name section");
console.log(nameSections[0]);
}
});
規範
| 規範 |
|---|
| WebAssembly JavaScript 介面 # dom-module-customsections |
瀏覽器相容性
BCD 表僅在啟用 JavaScript 的瀏覽器中載入。