WebAssembly.Module
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æâ©.
* Some parts of this feature may have varying levels of support.
WebAssembly.Module ãªãã¸ã§ã¯ãã«ã¯ããã©ã¦ã¶ã¼ã§ã³ã³ãã¤ã«ãããã¹ãã¼ãã¬ã¹ãª WebAssembly ã³ã¼ããå«ã¾ãã¦ãã¾ãããããå¹ççã«ã¯ã¼ã«ã¼éã§å
±æããããè¤æ°åã¤ã³ã¹ã¿ã³ã¹åããããããã¨ãã§ãã¾ãã
ã³ã³ã¹ãã©ã¯ã¿ã¼
WebAssembly.Module()-
æ°ãã
Moduleãªãã¸ã§ã¯ããçæãã¾ãã
éçããããã£
WebAssembly.Module.customSections()-
Moduleã¨æååãæå®ããã¨ãã¢ã¸ã¥ã¼ã«å ã®ä¸ããããæååãååã«æã¤ãã¹ã¦ã®ã«ã¹ã¿ã ã»ã¯ã·ã§ã³ã®å 容ãè¿ãã¾ãã WebAssembly.Module.exports()-
Moduleãæå®ããã¨ãã¨ã¯ã¹ãã¼ã宣è¨ã®æ å ±ãé åã¨ãã¦è¿ãã¾ãã WebAssembly.Module.imports()-
Moduleãæå®ããã¨ãã¤ã³ãã¼ã宣è¨ã®æ å ±ãé åã¨ãã¦è¿ãã¾ãã
ä¾
>ã³ã³ãã¤ã«æ¸ã¿ã®ã¢ã¸ã¥ã¼ã«ãã¯ã¼ã«ã¼ã«éä¿¡
以ä¸ã®ä¾ã§ã¯ (GitHub ä¸ã® index-compile.html ããã³å®è¡ä¾ãåç
§)ãèªã¿è¾¼ã¾ãã simple.wasm ã®ãã¤ãã³ã¼ãã WebAssembly.compileStreaming() ã¡ã½ããã§ã³ã³ãã¤ã«ããçµæã® Module ã¤ã³ã¹ã¿ã³ã¹ãã¯ã¼ã«ã¼ã¸ã postMessage() ã使ç¨ãã¦éä¿¡ãã¾ãã
var worker = new Worker("wasm_worker.js");
WebAssembly.compileStreaming(fetch("simple.wasm")).then((mod) =>
worker.postMessage(mod),
);
ã¯ã¼ã«ã¼å
ã§ã¯ (wasm_worker.js ãåç
§)ãã¢ã¸ã¥ã¼ã«ã使ç¨ããããã® import ãªãã¸ã§ã¯ããå®ç¾©ããã¡ã¤ã³ã¹ã¬ããããã¢ã¸ã¥ã¼ã«ãåãåãããã®ã¤ãã³ããã³ãã©ã¼ãã»ããã¢ãããã¾ããã¢ã¸ã¥ã¼ã«ãåãåã£ããã WebAssembly.instantiate() ã¡ã½ããã使ã£ã¦ã¤ã³ã¹ã¿ã³ã¹ã使ãããã®ä¸ããã¨ã¯ã¹ãã¼ãããã颿°ãå¼ã³åºãã¾ãã
var importObject = {
imports: {
imported_func: function (arg) {
console.log(arg);
},
},
};
onmessage = function (e) {
console.log("module received from main thread");
var mod = e.data;
WebAssembly.instantiate(mod, importObject).then(function (instance) {
instance.exports.exported_func();
});
};
仿§æ¸
| Specification |
|---|
| WebAssembly JavaScript Interface > # modules > |
ãã©ã¦ã¶ã¼ã®äºææ§
é¢é£æ å ±
- WebAssembly æ¦è¦ãã¼ã¸
- WebAssembly ã®æ¦å¿µ
- WebAssembly JavaScript API ã®ä½¿ç¨