WebAssembly.Instance.prototype.exports

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

WebAssembly.Instance オブジェクトプロトタイプの exports 読み込み専用プロパティは WebAssembly モジュールインスタンスからエクスポートされた全ての関数をメンバとして持つオブジェクトを返します。これらは、JavaScriptからアクセスして使用することができます。

instance.exports

fetch を使用して WebAssembly バイトコードをフェッチした後、WebAssembly.instantiate() 関数を使用してモジュールをコンパイル、インスタンス化します。このプロセスの中で、 WebAssembly モジュールに JavaScript 関数をインポートします。その後、 Instance が持つエクスポートされた WebAssembly 関数 を呼び出します。

var importObject = {
  imports: {
    imported_func: function(arg) {
      console.log(arg);
    }
  }
};

fetch('simple.wasm').then(response =>
  response.arrayBuffer()
).then(bytes =>
  WebAssembly.instantiate(bytes, importObject)
).then(result =>
  result.instance.exports.exported_func()
);

Note: GitHub 上の例(動作例) の index.html では、我々で定義した fetchAndInstantiate() ライブラリ関数を使用しています。

仕様

仕様 策定状況 コメント
WebAssembly JavaScript API
WebAssembly.Instance objects の定義
ドラフト 初回ドラフト定義

ブラウザ実装状況

機能ChromeEdgeFirefoxInternet ExplorerOperaSafari
基本サポート5716522 無し4411
機能Android webviewChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
基本サポート5757 有り1522 無し ?11

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

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

関連情報

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

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