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()
メソッドを使用してください。
new WebAssembly.Module(bufferSource);
引数
- bufferSource
-
型付き配列または ArrayBuffer で、コンパイルしたい .wasm モジュールのバイナリーコードです。
例
WebAssembly モジュールの同期的なコンパイル
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 |