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 October 2017.
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 |
ブラウザーの互換性
BCD tables only load in the browser