→
WebAssembly は JavaScript のオブジェクトで、WebAssembly に関するすべての機能の名前空間の役割をします。
他のグローバル オブジェクトとは異なり、WebAssembly はコンストラクターではありません(関数オブジェクトではありません)。数学の定数や関数の名前空間である Math や、国際化のコンストラクターやその他の言語を意識した関数ための Intl と同様のものです。
WebAssembly オブジェクトの主な用途は次のとおりです:
次の例(GitHub 上の instantiate-streaming.html のデモと、動作例も参照)は、基礎となるソースから .wasm モジュールを直接ストリーミングし、コンパイルしてインスタンス化し、ResultObject で履行されるプロミスを返します。instantiateStreaming() 関数は Response オブジェクトのプロミスを受け付けるので、fetch() の呼び出し結果を直接渡すと、履行されたときにレスポンスを関数に渡すことができます。
var importObject = { imports: { imported_func: arg => console.log(arg) } }; WebAssembly.instantiateStreaming( fetch('simple.wasm'), importObject) .then(obj => obj.instance.exports.exported_func());
それから ResultObject の instance メンバーにアクセスすると、呼び出し対象のエクスポートされた関数が入っています。