WebAssembly.compileStreaming()
WebAssembly.compileStreaming()
関数は WebAssembly.Module
を直接、基礎的なソースのストリームからコンパイルします。この関数はモジュールをインスタンス化する前にコンパイルする必要がある場合に役立ちます (そうでない場合は、WebAssembly.instantiateStreaming()
関数の仕様が推奨されます)。
構文
WebAssembly.compileStreaming(source)
引数
- source
-
ストリーム、コンパイルする .wasm モジュールのソースコードを表す
Response
オブジェクトか、それを満足するプロミスです。
返値
Promise
で、コンパイルされたモジュールを表す WebAssembly.Module
に解決します。
例外
bufferSource
が型付き配列でない場合、TypeError
が発生します。- 失敗した場合、プロミスは
WebAssembly.CompileError
をで棄却されます。
例
ストリーミングのコンパイル
次の例 (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