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 です。

例外

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

関連情報