What's Changed
- On Windows, Emscripten now ships
.exetool launchers, rather
than.batand/or.ps1. This means that any scripts that explicitly
reference, e.g.emcc.bat, will need to be updated to justemcc(or
emcc.exe). For the time being you can still get the old.batfiles by
runningtools/maint/create_entry_points.py --bat-files. (#24858) - When performing a streaming Fetch operation, the max chunk size of downloaded
bytes that is handed over to the Wasm side from JS is now capped to maximum
of 8 megabytes. This ensures that a streaming Fetch stays streaming, rather
than transferring the whole (potentially large) file as one huge chunk, which
might not fit in the WebAssembly memory. (#26898) - The minimum versions of browser engines supported by emscripten's generated
code were bumped, allowing us to remove our internal support for transpilation
via babel:
MIN_CHROME_VERSION: 74 -> 85
MIN_FIREFOX_VERSION: 68 -> 79
MIN_SAFARI_VERSION: 12.2 -> 14.1
This allows us to assume that features such as mutable-globals and sign-ext
are universally available. Disabling these is no longer possible in
emscripten. If you still need to support extremely old browsers, you can
manually transpile the output of emscripten (e.g. using babel for JS and
binaryen for wasm). (#26677) - musl libc updated from v1.2.5 to v1.2.6. (#26860)
- libpng port updated from 1.6.55 to 1.6.58. (#26592 and #26983)
- The
-m64compiler flag is now honored, and works as an alias for
-sMEMORY64and/or--target=wasm64. (#26765) - The autopersistence feature in IDBFS mount now supports registering a global
callbackIDBFS.onAutoPersistStateChanged = active => {}, which will be
notified of all IDBFS sync start and end events. (#26895) - google-closure-compiler was updated to 20260429.0.0. (#26869)
Closure compiler now provides a native macOS arm64 binary for Apple Silicon,
in addition to having native binaries for Win-x64, Linux-x64 and Linux-ARM64.
For other platforms for which Closure compiler does not ship a native binary,
e.g. Intel x64 Macs and Windows-on-ARM, downloading Java SE Development Kit
21.0.11 from https://www.oracle.com/europe/java/technologies/downloads/#java21
is required in order to use Emscripten's Closure Compiler integration. - The
FAKE_DYLIBSsetting is now disabled by default. This means that
-sharedwill produce real dynamic libraries by default (-sSIDE_MODULEis
implied). Also, if you include real dynamic libraries in your link command
emscripten will now automatically produce a dynamically linked program
(-sMAIN_MODULE=2is implied). (#25930) - The
PThread.runningWorkersfield was removed from thePThreadobject.
If you have JS code that was depending on this you can transition to using the
PThread.pthreadsobject. (#26998) - The POSIX
pause()function will now return 0 rather than EINTR. (#27044)
New Contributors
- @HCL-JasonR made their first contribution in #26542
- @vittorioromeo made their first contribution in #26846
- @soilSpoon made their first contribution in #26814
- @garymathews made their first contribution in #26891
- @guybedford made their first contribution in #26967
Full Changelog: 5.0.7...6.0.0