WebAssembly.Instance

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

WebAssembly.Instance オブジェクトはステートフルで、実行可能な Module のインスタンスです。Instance オブジェクトには JavaScript から WebAssembly コードを呼び出すことを許可された エクスポートされたWebAssembly関数 が含まれます。

WebAssembly.Instance() コンストラクタ関数は同期的に WebAssembly.Module オブジェクトをインスタンス化することができます。しかし、主な Instance の取得方法は非同期の WebAssembly.instantiate() 関数を使用する方法です。

コンストラクタ構文

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

var myInstance = new WebAssembly.Instance(module, importObject);

パラメータ

module
インスタンス化する WebAssembly.Module オブジェクト。
importObject Optional
関数や WebAssembly.Memory オブジェクトなどの新しく生成される Instance にインポートされる値を含むオブジェクト。宣言されたモジュールのインポートごとに1つの一致するプロパティが存在する必要があります。そうでない場合、WebAssembly.LinkError がスローされます。

Instance インスタンス

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

インスタンスプロパティ

Instance.prototype.constructor
Returns the function that created this object's instance. By default this is the WebAssembly.Instance() constructor.
Instance.prototype.exports Read only
Returns an object containing as its members all the functions exported from the WebAssembly module instance, to allow them to be accessed and used by JavaScript.

インスタンスメソッド

None.

仕様

仕様 策定状況 コメント
Web Assembly JavaScript API
Instance の定義
ドラフト 初回ドラフト定義。

ブラウザ実装状況

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,