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