WebAssembly.Module

これは実験段階の機能です。
この機能は複数のブラウザーで開発中の状態にあります。互換性テーブルをチェックしてください。また、実験段階の機能の構文と挙動は、仕様変更に伴い各ブラウザーの将来のバージョンで変更になる可能性があることに注意してください。

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
Returns the function that created this object's instance. By default this is the WebAssembly.Module() constructor.
Module.prototype[@@toStringTag]
The initial value of the @@toStringTag property is the String value "WebAssembly.Module".

インスタンスメソッド

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

仕様

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

ブラウザ実装状況

Feature Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
基本サポート 57 15[2] 52 (52)[1] 未サポート 44 11
Feature Chrome for Android Android Webview Edge Mobile Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
基本サポート 57 57 未サポート 52.0 (52)[1] 未サポート 未サポート 11

[1] WebAssemblyはFirefox 52+で有効です。Firefox 52 Extended Support Release (ESR.)では無効化されています。

[2] 現在、“Experimental JavaScript Features” フラグを付けることでサポートされます。詳細については このブログ記事 を参照してください。

関連情報

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

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