AssemblyScript/assemblyscript

node:fs/promises fallback thingy eats errors in the browser

NoHatCoder opened this issue · 3 comments

Bug description

I tried running a program in a browser, and I get a completely nonsensical error in the console. What happened was that the server had set the wrong MIME type for the wasm file. But that error was caught by the JavaScript scaffold, and instead a piece of code that could only work in Node was run in its place, producing a completely unrelated error.

Offending code is located here:

try { return await globalThis.WebAssembly.compileStreaming(globalThis.fetch(url)); }

Steps to reproduce

Break the loading of the wasm file in any way. Then observe that the error message has nothing to with this break.

AssemblyScript version

v0.27.27

Let me confirm the bug case, please correct me if I misunderstand.

in line 979, during compile wasm, browser throw a exception and catched by 980. And then go to the nodejs readfile part and cause the weird error log. right?

Yes, and the lines in question have of course been transplanted from the js.ts file, where they are just strings, to the accompanying js file that the AS compiler generates.

should be fixed in #2855