WebAssembly.compile()
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.compile() 関数は WebAssembly バイナリーコードを WebAssembly.Module の形にコンパイルします。この関数は、モジュールをインスタンス化する前にコンパイルする必要がある場合に便利です (それ以外の場合は、 WebAssembly.instantiate() 関数を使用してください)。
構文
js
WebAssembly.compile(bufferSource);
引数
- bufferSource
-
コンパイルする .wasm モジュールのバイナリーコードを含む型付き配列または
ArrayBufferです。
返値
コンパイルされたモジュールを表す WebAssembly.Module オブジェクトに解決する Promise です。
例外
bufferSourceが型付き配列ではなかった場合、TypeErrorが発生します。- コンパイルに失敗した場合、プロミスは
WebAssembly.CompileErrorで拒否されます。
例
>compile の使用
次の例では、読み込まれた simple.wasm バイトコードを、 compile() 関数を使用してコンパイルし、ワーカーに postMessage() を用いて送信します。
js
var worker = new Worker("wasm_worker.js");
fetch("simple.wasm")
.then((response) => response.arrayBuffer())
.then((bytes) => WebAssembly.compile(bytes))
.then((mod) => worker.postMessage(mod));
メモ:
おそらく多くの場合は WebAssembly.compileStreaming() を使用したほうが compile() よりも効率的なのでそちらの方がいいでしょう。
仕様書
| Specification |
|---|
| WebAssembly JavaScript Interface> # dom-webassembly-compile> |
ブラウザーの互換性
Loading…