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

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() の定義
草案 初回ドラフト定義。

ブラウザ実装状況

Update compatibility data on GitHub
デスクトップモバイルサーバー
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeEdge MobileAndroid 版 FirefoxAndroid 版 OperaiOS 版 SafariSamsung InternetNode.js
基本対応Chrome 完全対応 57Edge 完全対応 16Firefox 完全対応 52
補足
完全対応 52
補足
補足 Disabled in the Firefox 52 Extended Support Release (ESR).
IE 未対応 なしOpera 完全対応 44Safari 完全対応 11WebView Android 完全対応 57Chrome Android 完全対応 57Edge Mobile 完全対応 あり
無効
完全対応 あり
無効
無効 This feature is behind the Experimental JavaScript Features preference.
Firefox Android 完全対応 52
補足
完全対応 52
補足
補足 Disabled in the Firefox 52 Extended Support Release (ESR).
Opera Android ? Safari iOS 完全対応 11Samsung Internet Android 完全対応 7.0nodejs 完全対応 8.0.0
customSectionsChrome 完全対応 57Edge 完全対応 16Firefox 完全対応 52
補足
完全対応 52
補足
補足 Disabled in the Firefox 52 Extended Support Release (ESR).
IE 未対応 なしOpera 完全対応 44Safari 完全対応 11WebView Android 完全対応 57Chrome Android 完全対応 57Edge Mobile 完全対応 あり
無効
完全対応 あり
無効
無効 This feature is behind the Experimental JavaScript Features preference.
Firefox Android 完全対応 52
補足
完全対応 52
補足
補足 Disabled in the Firefox 52 Extended Support Release (ESR).
Opera Android ? Safari iOS 完全対応 11Samsung Internet Android 完全対応 7.0nodejs 完全対応 8.0.0
exportsChrome 完全対応 57Edge 完全対応 16Firefox 完全対応 52
補足
完全対応 52
補足
補足 Disabled in the Firefox 52 Extended Support Release (ESR).
IE 未対応 なしOpera 完全対応 44Safari 完全対応 11WebView Android 完全対応 57Chrome Android 完全対応 57Edge Mobile 完全対応 あり
無効
完全対応 あり
無効
無効 This feature is behind the Experimental JavaScript Features preference.
Firefox Android 完全対応 52
補足
完全対応 52
補足
補足 Disabled in the Firefox 52 Extended Support Release (ESR).
Opera Android ? Safari iOS 完全対応 11Samsung Internet Android 完全対応 7.0nodejs 完全対応 8.0.0
importsChrome 完全対応 57Edge 完全対応 16Firefox 完全対応 52
補足
完全対応 52
補足
補足 Disabled in the Firefox 52 Extended Support Release (ESR).
IE 未対応 なしOpera 完全対応 44Safari 完全対応 11WebView Android 完全対応 57Chrome Android 完全対応 57Edge Mobile 完全対応 あり
無効
完全対応 あり
無効
無効 This feature is behind the Experimental JavaScript Features preference.
Firefox Android 完全対応 52
補足
完全対応 52
補足
補足 Disabled in the Firefox 52 Extended Support Release (ESR).
Opera Android ? Safari iOS 完全対応 11Samsung Internet Android 完全対応 7.0nodejs 完全対応 8.0.0
prototypeChrome 完全対応 57Edge 完全対応 16Firefox 完全対応 52
補足
完全対応 52
補足
補足 Disabled in the Firefox 52 Extended Support Release (ESR).
IE 未対応 なしOpera 完全対応 44Safari 完全対応 11WebView Android 完全対応 57Chrome Android 完全対応 57Edge Mobile 完全対応 あり
無効
完全対応 あり
無効
無効 This feature is behind the Experimental JavaScript Features preference.
Firefox Android 完全対応 52
補足
完全対応 52
補足
補足 Disabled in the Firefox 52 Extended Support Release (ESR).
Opera Android ? Safari iOS 完全対応 11Samsung Internet Android 完全対応 7.0nodejs 完全対応 8.0.0

凡例

完全対応  
完全対応
未対応  
未対応
実装状況不明  
実装状況不明
実装ノートを参照してください。
実装ノートを参照してください。
ユーザーが明示的にこの機能を有効にしなければなりません。
ユーザーが明示的にこの機能を有効にしなければなりません。

関連情報

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

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