From ffa75be48044255ed49a822a7a61a2a130123a4a Mon Sep 17 00:00:00 2001 From: Andreu Botella Date: Sat, 3 Jul 2021 23:33:36 +0200 Subject: feat: enable WebAssembly.instantiateStreaming and wasm async compilation (#11200) The WebAssembly streaming APIs used to be enabled, but used to take buffer sources as their first argument (see #6154 and #7259). This change re-enables them, requiring a Promise instead, as well as enabling asynchronous compilation of WebAssembly modules. --- core/lib.deno_core.d.ts | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'core/lib.deno_core.d.ts') diff --git a/core/lib.deno_core.d.ts b/core/lib.deno_core.d.ts index 2cec6be76..2c69782a6 100644 --- a/core/lib.deno_core.d.ts +++ b/core/lib.deno_core.d.ts @@ -41,5 +41,31 @@ declare namespace Deno { /** Encode a string to its Uint8Array representation. */ function encode(input: string): Uint8Array; + + /** + * Set a callback that will be called when the WebAssembly streaming APIs + * (`WebAssembly.compileStreaming` and `WebAssembly.instantiateStreaming`) + * are called in order to feed the source's bytes to the wasm compiler. + * The callback is called with the source argument passed to the streaming + * APIs and an rid to use with `Deno.core.wasmStreamingFeed`. + */ + function setWasmStreamingCallback( + cb: (source: any, rid: number) => void, + ): void; + + /** + * Affect the state of the WebAssembly streaming compiler, by either passing + * it bytes, aborting it, or indicating that all bytes were received. + * `rid` must be a resource ID that was passed to the callback set with + * `Deno.core.setWasmStreamingCallback`. Calling this function with `type` + * set to either "abort" or "finish" invalidates the rid. + */ + function wasmStreamingFeed( + rid: number, + type: "bytes", + bytes: Uint8Array, + ): void; + function wasmStreamingFeed(rid: number, type: "abort", error: any): void; + function wasmStreamingFeed(rid: number, type: "finish"): void; } } -- cgit v1.2.3