mirror of
https://github.com/denoland/deno.git
synced 2024-12-29 10:39:10 -05:00
5edd277161
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.
9 lines
373 B
JavaScript
9 lines
373 B
JavaScript
// WebAssembly module containing a single function with an unreachable instruction
|
|
const binary = await Deno.readFile("./unreachable.wasm");
|
|
|
|
const module = new WebAssembly.Module(binary);
|
|
const instance = new WebAssembly.Instance(module);
|
|
|
|
// Compare the stack trace with wasm_url.js, which compiles the WASM module with
|
|
// streaming APIs.
|
|
instance.exports.unreachable();
|