これは実験的な機能です。本番で使用する前にブラウザー実装状況をチェックしてください。

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

構文

Promise<WebAssembly.Module> WebAssembly.compileStreaming(source);

パラメータ

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

戻り値

解決時にコンパイルされたモジュールを表す WebAssembly.Module を渡す Promise 。

例外

次の例 (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 Status Comment
WebAssembly features for web embedding
compileStreaming() の定義
ドラフト 初回ドラフト定義

ブラウザ実装状況

機能ChromeEdgeFirefoxInternet ExplorerOperaSafari
基本対応61 なし58 なし47 なし
機能Android webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
基本対応6161 なし58 ? なし なし

関連情報

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

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