WebAssembly.Module.customSections()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2017å¹´10æ.
WebAssembly.customSections() 颿°ã¯ã¢ã¸ã¥ã¼ã«ã¨æåååãæå®ãã¦ããã¹ã¦ã®ã«ã¹ã¿ã ã»ã¯ã·ã§ã³ã®ã³ã³ãã³ãã®ã³ãã¼ãè¿ãã¾ãã
æ§æ
WebAssembly.Module.customSections(module, sectionName);
弿°
- module
-
ã«ã¹ã¿ã ã»ã¯ã·ã§ã³ãèæ ®ãã
WebAssembly.Moduleãªãã¸ã§ã¯ãã - sectionName
-
ç®çã®ã«ã¹ã¿ã ã»ã¯ã·ã§ã³ã®æåååã
è¿å¤
sectionName ã«ä¸è´ãããã¹ã¦ã®ã«ã¹ã¿ã ã»ã¯ã·ã§ã³ã® ArrayBuffer ã³ãã¼ã®é
å (空ã®å ´åãããã¾ã)ã
ä¾å¤
module ã WebAssembly.Module ãªãã¸ã§ã¯ãã®ã¤ã³ã¹ã¿ã³ã¹ã§ãªãå ´åãTypeError ãçºçãã¾ãã
解説
wasm ã¢ã¸ã¥ã¼ã«ã¯ä¸é£ã® ã»ã¯ã·ã§ã³ ã§æ§æããã¦ãã¾ãããããã®ã»ã¯ã·ã§ã³ã®ã»ã¨ãã©ã¯ wasm ã®ä»æ§ã«ãã£ã¦å®å ¨ã«æå®ãæ¤è¨¼ããã¾ãããæ¤è¨¼ä¸ã«ç¡è¦ããã¹ãããããã ã«ã¹ã¿ã ã»ã¯ã·ã§ã³ ãã¢ã¸ã¥ã¼ã«ã«å«ãããã¨ãã§ãã¾ã (é常ã®ã»ã¯ã·ã§ã³ ("æ¢ç¥ã®ã»ã¯ã·ã§ã³") ã¨ã«ã¹ã¿ã ã»ã¯ã·ã§ã³ãåºå¥ããããã®æ å ±ã¯ é«ã¬ãã«ã®æ§é ãèªãã§ãã ãã)ã
ããã«ããéçºè ã¯ä»ã®ç®çã®ããã« wasm ã¢ã¸ã¥ã¼ã«å ã«ã«ã¹ã¿ã ãã¼ã¿ãå«ãããã¨ãã§ãã¾ããä¾ãã°ãéçºè ãã¢ã¸ã¥ã¼ã«å ã®å ¨ã¦ã®é¢æ°ã¨ãã¼ã«ã«å¤æ°ã«ååãä»ãããã (ãã¤ãã£ããã«ãã«ããã "ã·ã³ãã«" ã®ãããªãã®) ãã¼ã ã«ã¹ã¿ã ã»ã¯ã·ã§ã³ ã®ãããªãã®ãããã¾ã ã
ãªãã WebAssembly ããã¹ããã©ã¼ãããã«ã¯ç¾å¨æ°ããã«ã¹ã¿ã ã»ã¯ã·ã§ã³ã®ããã®æ§æã®ä»æ§ãããã¾ãããããããããã¹ããã©ã¼ããããã .wasm ã«å¤æããã¨ãã« wasm ã«ãã¼ã ã»ã¯ã·ã§ã³ã追å ãããã¨ãã§ãã¾ãã wabt tool ã®ä¸é¨ã§ãã wast2wasm ã³ãã³ãã§ --debug-names ãªãã·ã§ã³ãæå®ãããã¨ãã§ãããããæå®ãããã¨ã«ããããã¼ã ã«ã¹ã¿ã ã»ã¯ã·ã§ã³ãæã¤ .wasm ã«å¤æãããã¨ãã§ãã¾ãã
wast2wasm simple-name-section.was -o simple-name-section.wasm --debug-names
ä¾
>customSections ã®ä½¿ç¨
次ã®ä¾ã§ã¯ (custom-section.html ã®ã½ã¼ã¹ã¨åä½ä¾ãã確èªãã ãã) ãèªã¿è¾¼ãã section.wasm ãã¤ãã³ã¼ããã³ã³ãã¤ã«ãã¾ãã
ãããããWebAssembly.Module.customSections ã使ç¨ã㦠length ã 0 ãã大ããããã§ãã¯ãã¦ãã¢ã¸ã¥ã¼ã«ã« "name" ã«ã¹ã¿ã ã»ã¯ã·ã§ã³ãå«ã¾ãã¦ãããã©ãããã§ãã¯ãã¾ãããã®ä¾ã§ã¯ "name" ã«ã¹ã¿ã ã»ã¯ã·ã§ã³ãåå¨ãããããArrayBuffer ãªãã¸ã§ã¯ããè¿ããã¾ãã
WebAssembly.compileStreaming(fetch("simple-name-section.wasm")).then(
function (mod) {
var nameSections = WebAssembly.Module.customSections(mod, "name");
if (nameSections.length != 0) {
console.log("Module contains a name section");
console.log(nameSections[0]);
}
},
);
仿§æ¸
| Specification |
|---|
| WebAssembly JavaScript Interface> # dom-module-customsections> |
ãã©ã¦ã¶ã¼ã®äºææ§
é¢é£æ å ±
- WebAssembly æ¦è¦ãã¼ã¸
- WebAssembly ã®æ¦å¿µ
- WebAssembly JavaScript API ã®ä½¿ç¨