WebAssembly.Module() コンストラクター
Baseline
広く利用可能
*
この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2017年10月以降、すべてのブラウザーで利用可能です。
* この機能の一部は、対応レベルが異なる場合があります。
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(),
);
});
仕様書
| 仕様書 |
|---|
| WebAssembly JavaScript Interface> # dom-module-module> |