WebAssembly.compileStreaming()

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

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 AndroidIE mobileOpera AndroidiOS Safari
基本サポート6161 有り158 無し ? ?

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

関連情報

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

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