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 October 2017.

* Some parts of this feature may have varying levels of support.

WebAssembly.Module() コンストラクターは、ステートレスな WebAssembly コードを含む新しい Module オブジェクトを生成します。これはブラウザーでコンパイルされ、Worker と効率的に共有することができ、複数回インスタンス化することができます。

WebAssembly.Module() コンストラクター関数は、与えられた WebAssembly バイナリーコードを同期的にコンパイルするために呼び出すことができます。しかし、Module を取得するには、 WebAssembly.compile() のような非同期コンパイル関数を使用するほうが主流です。

構文

警告: 大きなモジュールのコンパイルにはコストがかかるため、開発者はどうしても同期コンパイルが必要な場合にのみ Module() コンストラクターを使用し、それ以外の場合には非同期の WebAssembly.compileStreaming() メソッドを使用してください。

js
new WebAssembly.Module(bufferSource); 

引数

bufferSource

型付き配列または ArrayBuffer で、コンパイルしたい .wasm モジュールのバイナリーコードです。

WebAssembly モジュールの同期的なコンパイル

js
var importObject = { imports: { imported_func: function (arg) { console.log(arg); }, }, }; function createWasmModule(bytes) { return new WebAssembly.Module(bytes); } fetch("simple.wasm") .then((response) => response.arrayBuffer()) .then((bytes) => { let mod = createWasmModule(bytes); WebAssembly.instantiate(mod, importObject).then((result) => result.exports.exported_func(), ); }); 

仕様書

Specification
WebAssembly JavaScript Interface
# dom-module-module

ブラウザーの互換性

関連情報