AssemblyScript / assemblyscript

A TypeScript-like language for WebAssembly.
https://www.assemblyscript.org
Apache License 2.0
16.6k stars 650 forks source link

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

Closed NoHatCoder closed 1 week ago

NoHatCoder commented 2 weeks ago

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: https://github.com/AssemblyScript/assemblyscript/blob/64cba2e22bc415994274dd14eeae50a5a9369d70/src/bindings/js.ts#L979

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

HerrCai0907 commented 2 weeks ago

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?

NoHatCoder commented 2 weeks ago

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.

HerrCai0907 commented 1 week ago

should be fixed in https://github.com/AssemblyScript/assemblyscript/pull/2855