Avoid JS ||= in Emscripten

...as at least the baseline (see static/README.wasm.md) emsdk 3.1.46 apparently
uses some acorn-optimizer.js that cannot parse that and causes builds to fail
with

> /home/tdf/lode/emsdk/upstream/emscripten/tools/acorn-optimizer.js:1992
>   throw err;
>   ^
>
> SyntaxError: Unexpected token (1492:56)
> function runUnoScriptUrls(handle) { globalThis.Module ||= Module; importScripts.apply(self, Emval.toValue(handle)); }
>                                                         ^
>
>     at pp$4.raise (/home/tdf/lode/emsdk/upstream/emscripten/node_modules/acorn/dist/acorn.js:3553:15)
>     at pp$9.unexpected (/home/tdf/lode/emsdk/upstream/emscripten/node_modules/acorn/dist/acorn.js:764:10)
>     at pp$5.parseExprAtomDefault (/home/tdf/lode/emsdk/upstream/emscripten/node_modules/acorn/dist/acorn.js:2924:10)
>     at pp$5.parseExprAtom (/home/tdf/lode/emsdk/upstream/emscripten/node_modules/acorn/dist/acorn.js:2919:19)
>     at pp$5.parseExprSubscripts (/home/tdf/lode/emsdk/upstream/emscripten/node_modules/acorn/dist/acorn.js:2703:21)
>     at pp$5.parseMaybeUnary (/home/tdf/lode/emsdk/upstream/emscripten/node_modules/acorn/dist/acorn.js:2669:19)
>     at pp$5.parseExprOp (/home/tdf/lode/emsdk/upstream/emscripten/node_modules/acorn/dist/acorn.js:2621:43)
>     at pp$5.parseExprOps (/home/tdf/lode/emsdk/upstream/emscripten/node_modules/acorn/dist/acorn.js:2598:93)
>     at pp$5.parseMaybeConditional (/home/tdf/lode/emsdk/upstream/emscripten/node_modules/acorn/dist/acorn.js:2579:21)
>     at pp$5.parseMaybeAssign (/home/tdf/lode/emsdk/upstream/emscripten/node_modules/acorn/dist/acorn.js:2546:21) {
>   pos: 63545,
>   loc: Position { line: 1492, column: 56 },
>   raisedAt: 63546
> }
>
> Node.js v18.20.3
> em++: error: '/home/tdf/lode/emsdk/node/18.20.3_64bit/bin/node /home/tdf/lode/emsdk/upstream/emscripten/tools/acorn-optimizer.js /tmp/emscripten_temp_duktdfj5/soffice.js JSDCE minifyWhitespace -o /tmp/emscripten_temp_duktdfj5/soffice.jso1.js' failed (returned 1)
> make[1]: *** [/home/tdf/lode/jenkins/workspace/lo_gerrit/tb/src_wasm/desktop/Executable_soffice_bin.mk:10: /home/tdf/lode/jenkins/workspace/lo_gerrit/tb/build_master/instdir/program/soffice.js] Error 1

(<https://ci.libreoffice.org/job/lo_daily_tb_linux_wasm/1145/>)

Change-Id: Ib6155b6f518af056b3d23ec648d0558a5f3ab6c9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/190044
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@collabora.com>
This commit is contained in:
Stephan Bergmann
2025-08-22 15:06:32 +02:00
parent c55cd1bbef
commit ef39fb949e
+1 -1
View File
@@ -45,7 +45,7 @@ extern "C" void getUnoScriptUrls(std::vector<std::u16string> * urls) {
#if HAVE_EMSCRIPTEN_PROXY_TO_PTHREAD
EM_JS(void, runUnoScriptUrls, (emscripten::EM_VAL handle), {
globalThis.Module ||= Module;
globalThis.Module = globalThis.Module || Module;
importScripts.apply(self, Emval.toValue(handle));
});
#else