WebAssembly.Module() コンストラクター
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