WebAssembly.compileStreaming()

WebAssembly.compileStreaming() 関数は WebAssembly.Module を直接、基礎的なソースのストリームからコンパイルします。この関数はモジュールをインスタンス化する前にコンパイルする必要がある場合に役立ちます (そうでない場合は、WebAssembly.instantiateStreaming() 関数の仕様が推奨されます)。

構文

WebAssembly.compileStreaming(source)

引数

source

ストリーム、コンパイルする .wasm モジュールのソースコードを表す Response オブジェクトか、それを満足するプロミスです。

返値

Promise で、コンパイルされたモジュールを表す WebAssembly.Module に解決します。

例外

ストリーミングのコンパイル

次の例 (Github上のデモ compile-streaming.html と、動作例を参照してください) では、ソースから直接 .wasm モジュールをストリームして、 WebAssembly.Module オブジェクトにコンパイルしています。compileStreaming() 関数は Response オブジェクトを渡すプロミスを受け取るので、直接 WindowOrWorkerGlobalScope.fetch() の呼び出し結果を渡すことができます。

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

WebAssembly.compileStreaming(fetch('simple.wasm'))
.then(module => WebAssembly.instantiate(module, importObject))
.then(instance => instance.exports.exported_func());

結果として受け取ったモジュールインスタンスはその後 WebAssembly.instantiate() を使用してインスタンス化され、エクスポートされた関数が実行されます。

仕様書

Specification
WebAssembly Web API
# dom-webassembly-compilestreaming

ブラウザーの互換性

BCD tables only load in the browser

関連情報