emscripten-core/emscripten

Faulty assertion in node on .mjs files

Open

#17.465 aperta il 18 lug 2022

Vedi su GitHub
 (4 commenti) (0 reazioni) (0 assegnatari)C++ (3519 fork)batch import
JavaScriptgood first bughelp wanted

Metriche repository

Star
 (27.361 star)
Metriche merge PR
 (Merge medio 19g 10h) (147 PR mergiate in 30 g)

Descrizione

It turns out that node will disable the global require function on foo.mjs - that is just not defined there, unlike for foo.js. I guess mjs files are modules and require is not supposed to be used there. This ends up a problem for us since we have an assertion on it:

https://github.com/emscripten-core/emscripten/blob/a3d8979b38d2f655f59b040bfd32f562ebc92d03/src/shell.js#L196-L198

Removing that assertion is necessary to run an .mjs file in node with -sASSERTIONS.

We should probably just remove it?

This happens on binaryen CI which will manually builds an .mjs file by concatenating the emcc output with some extra code.

Guida contributor