From 5edd2771619ddc3cd2f6c76cc93ee64277aa17c2 Mon Sep 17 00:00:00 2001 From: Andreu Botella Date: Sun, 10 Oct 2021 07:03:23 -0700 Subject: feat: Show the URL of streaming WASM modules in stack traces (#12268) WebAssembly modules compiled through `WebAssembly.compile()` and similar non-streaming APIs don't have a URL associated to them, because they have been compiled from a buffer source. In stack traces, V8 will use a URL such as `wasm://wasm/d1c677ea`, with a hash of the module. However, wasm modules compiled through streaming APIs, like `WebAssembly.compileStreaming()`, do have a known URL, which can be obtained from the `Response` object passed into the streaming APIs. And as per the developer-facing display conventions in the WebAssembly Web API spec, this URL should be used in stack traces. This change implements that. --- ext/fetch/26_fetch.js | 3 +++ 1 file changed, 3 insertions(+) (limited to 'ext') diff --git a/ext/fetch/26_fetch.js b/ext/fetch/26_fetch.js index f74726242..fcfa75318 100644 --- a/ext/fetch/26_fetch.js +++ b/ext/fetch/26_fetch.js @@ -526,6 +526,9 @@ throw new TypeError(`HTTP status code ${res.status}`); } + // Pass the resolved URL to v8. + core.opSync("op_wasm_streaming_set_url", rid, res.url); + // 2.6. // Rather than consuming the body as an ArrayBuffer, this passes each // chunk to the feed as soon as it's available. -- cgit v1.2.3