これは実験的な機能です。本番で使用する前にブラウザー実装状況をチェックしてください。

WebAssembly.Module オブジェクトにはブラウザでコンパイルされたステートレスな WebAssembly コードが含まれており、 効率的に Workerで共有 したり、IndexedDBにキャッシュ したり、複数回インスタンス化することができます。
 
WebAssembly.Module() コンストラクタ関数は WebAssembly バイナリコードを同期的にコンパイルすることできます。しかし、主なモジュール取得方法は、非同期のコンパイル関数である WebAssembly.compile() を使用する方法と、IndexedDBからモジュールを読み込む方法 です。
 

コンストラクタ構文

重要: 巨大なモジュールのコンパイルは高コストになる可能性があります。開発者は絶対に必要な場合にのみModule()コンストラクタを使用すべきです。 他のすべての場合で非同期の WebAssembly.compile()メソッドを使用することが推奨されます。

var myModule = new WebAssembly.Module(bufferSource);

パラメータ

bufferSource
コンパイルする 型付き配列 か ArrayBuffer を含む .wasm モジュールのバイナリコード。

Module コンストラクタの関数プロパティ

WebAssembly.Module.customSections()
Module と文字列を指定すると、モジュール内の与えられた文字列を名前に持つ全てのカスタムセクションの内容を返します。
WebAssembly.Module.exports()
Module を指定すると、エクスポート宣言の情報を配列として返します。
WebAssembly.Module.imports()
Module を指定すると、インポート宣言の情報を配列として返します。

Module インスタンス

全ての Module インスタンスは Module() コンストラクタの プロトタイプオブジェクト を継承します。これは全ての Module インスタンスに影響するように変更可能です。

インスタンスプロパティ

Module.prototype.constructor
このオブジェクトのインスタンスを生成した関数を返します。デフォルトでは WebAssembly.Module() コンストラクタです。
Module.prototype[@@toStringTag]
@@toStringTag プロパティの初期値として "WebAssembly.Module" という文字列を持ちます。

インスタンスメソッド

Module インスタンスは自身のデフォルトのインスタンスメソッドを持ちません。

仕様

仕様 策定状況 コメント
WebAssembly JavaScript Interface
WebAssembly.Module() の定義
草案 初回ドラフト定義。

ブラウザ実装状況

機能ChromeEdgeFirefoxInternet ExplorerOperaSafari
基本対応5716522 なし4411
customSections5716522 なし4411
exports5716522 なし4411
imports5716522 なし4411
prototype5716522 なし4411
機能Android webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
基本対応5757 あり1522 ?117.0
customSections5757 あり1522 ?117.0
exports5757 あり1522 ?117.0
imports5757 あり1522 ?117.0
prototype5757 あり1522 ?117.0

1. This feature is behind the Experimental JavaScript Features preference.

2. Disabled in the Firefox 52 Extended Support Release (ESR).

関連情報

ドキュメントのタグと貢献者

このページの貢献者: ukyo
最終更新者: ukyo,