WebAssembly.compileStreaming()
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2021å¹´9æ.
* Some parts of this feature may have varying levels of support.
WebAssembly.compileStreaming() 颿°ã¯ WebAssembly.Module ãç´æ¥ãåºç¤çãªã½ã¼ã¹ã®ã¹ããªã¼ã ããã³ã³ãã¤ã«ãã¾ãããã®é¢æ°ã¯ã¢ã¸ã¥ã¼ã«ãã¤ã³ã¹ã¿ã³ã¹åããåã«ã³ã³ãã¤ã«ããå¿
è¦ãããå ´åã«å½¹ç«ã¡ã¾ãï¼ããã§ãªãå ´åã¯ãWebAssembly.instantiateStreaming() 颿°ã使ç¨ãã¦ãã ããï¼ã
ã¡ã¢: 峿 ¼ãªã³ã³ãã³ãã»ãã¥ãªãã£ããªã·ã¼ (CSP) ã®ããã¦ã§ããã¼ã¸ã§ã¯ã WebAssembly ã®ã³ã³ãã¤ã«ãã¢ã¸ã¥ã¼ã«ã®å®è¡ããããã¯ããããã¨ãããã¾ãã WebAssembly ã®ã³ã³ãã¤ã«ã¨å®è¡ã許å¯ãããã¨ã«ã¤ãã¦ã®è©³ããæ å ±ã¯ã CSP ã® script-src ãåç §ãã¦ãã ããã
æ§æ
WebAssembly.compileStreaming(source)
弿°
è¿å¤
Promise ã§ãã³ã³ãã¤ã«ãããã¢ã¸ã¥ã¼ã«ã表ã WebAssembly.Module ã«è§£æ±ºãã¾ãã
ä¾å¤
sourceãResponseã§ãResponseã«è§£æ±ºããPromiseã§ããªãã£ãå ´åããããã¹ã¯TypeErrorã§æå¦ããã¾ãã- ã³ã³ãã¤ã«ã«å¤±æããå ´åããããã¹ã¯
WebAssembly.CompileErrorã§æå¦ããã¾ãã sourceã®Promiseãæå¦ãããå ´åããããã¹ã¯ã¨ã©ã¼ã§æå¦ããã¾ããsourceã®Resultã«ã¨ã©ã¼ããã£ãå ´åï¼MIME ã¿ã¤ãã䏿£ã§ãããªã©ï¼ããããã¹ã¯ã¨ã©ã¼ã§æå¦ããã¾ãã
ä¾
>ã¹ããªã¼ãã³ã°ã®ã³ã³ãã¤ã«
次ã®ä¾ (Githubä¸ã®ã㢠compile-streaming.html ã¨ãåä½ä¾ãåç
§ãã¦ãã ãã) ã§ã¯ãã½ã¼ã¹ããç´æ¥ .wasm ã¢ã¸ã¥ã¼ã«ãã¹ããªã¼ã ãã¦ã WebAssembly.Module ãªãã¸ã§ã¯ãã«ã³ã³ãã¤ã«ãã¦ãã¾ããcompileStreaming() 颿°ã¯ Response ãªãã¸ã§ã¯ããæ¸¡ããããã¹ãåãåãã®ã§ãç´æ¥ fetch() ã®å¼ã³åºãçµæãæ¸¡ããã¨ãã§ãã¾ãã
const importObject = { imports: { imported_func: (arg) => console.log(arg) } };
WebAssembly.compileStreaming(fetch("simple.wasm"))
.then((module) => WebAssembly.instantiate(module, importObject))
.then((instance) => instance.exports.exported_func());
çµæã¨ãã¦åãåã£ãã¢ã¸ã¥ã¼ã«ã¤ã³ã¹ã¿ã³ã¹ã¯ãã®å¾ WebAssembly.instantiate() ã使ç¨ãã¦ã¤ã³ã¹ã¿ã³ã¹åãããã¨ã¯ã¹ãã¼ãããã颿°ãå®è¡ããã¾ãã
仿§æ¸
| Specification |
|---|
| WebAssembly Web API> # dom-webassembly-compilestreaming> |
ãã©ã¦ã¶ã¼ã®äºææ§
é¢é£æ å ±
- WebAssembly æ¦è¦ãã¼ã¸
- WebAssembly ã®æ¦å¿µ
- WebAssembly JavaScript API ã®ä½¿ç¨