Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
464 commits
Select commit Hold shift + click to select a range
478a1af
Add `emscripten_promise_await_unchecked` API (#26954)
sbc100 May 15, 2026
4e0e1bc
Update codesize expectation after #26954
sbc100 May 15, 2026
ac3758d
Fix `other.test_closure_webgpu_wasm64` (#26955)
sbc100 May 15, 2026
8d96cf6
Fix test_promise expectations after #26954. NFC (#26957)
sbc100 May 15, 2026
3bea307
Add `utils.get_env_bool` helper function. NFC (#26945)
sbc100 May 15, 2026
c45b4cc
[CI] Move wasm64 tests from "node (latest)" to "wasm64-misc" (#26956)
sbc100 May 15, 2026
89d7fd7
Add some documentation for `Module.postRun` (#26958)
sbc100 May 15, 2026
8c75467
Re-enable test_eval_ctors_no_main under wasm64. NFC (#26960)
sbc100 May 15, 2026
c873744
[test] Use `is_wasm64` helper method. NFC (#26961)
sbc100 May 15, 2026
1ec182b
[test] Add `no_highmem` decorator. NFC (#26962)
sbc100 May 15, 2026
3122794
Allow `emscripten_atomic_wait_suspending` to return synchronously whe…
sbc100 May 15, 2026
85ee810
Add a ChangeLog entry about the version of Java used by current Closu…
juj May 15, 2026
1d63dc0
Prefer standard clang `-m64` flag over `-sMEMORY64` (#26963)
sbc100 May 16, 2026
d3d2dec
Fix wasm64 test suite failures. NFC (#26969)
sbc100 May 16, 2026
926047d
Simplify usage of python str.startswith. NFC (#26970)
sbc100 May 16, 2026
e9e9df1
Use check_call when building system libraries with EMAR. NFC (#26974)
sbc100 May 18, 2026
952a74e
Update documentation on the `-shared` flag (#26976)
sbc100 May 19, 2026
bc4ee8b
Add `-sRUNTIME_DEBUG` to some tests to try to debug #26882. NFC (#26977)
sbc100 May 19, 2026
9563db7
Update libpng.py to 1.6.56 (#26592)
HCL-JasonR May 19, 2026
679a213
Remove extra_info argument from js_optimizer.py. NFC (#26981)
sbc100 May 20, 2026
6d53e54
Add some more ruff checks. NFC (#26973)
sbc100 May 20, 2026
8672d43
[js_optimizer] Use existing globals. NFC (#26980)
sbc100 May 20, 2026
54b97db
Add testing for audio worklets + pthreads. NFC (#26982)
sbc100 May 20, 2026
f573345
Simplify setImmediate polyfill handling in `EM_TIMING_SETIMMEDIATE` (…
sbc100 May 20, 2026
a2bfe33
Fix a Windows issue where Python codepage would be reverted from unic…
juj May 21, 2026
1666285
Use `scheduler.postTask` when implementing `EM_TIMING_SETIMMEDIATE` (…
sbc100 May 21, 2026
cb5cf56
Consolidate `test_multidynamic_link` and `test_multiply_defined_libsy…
sbc100 May 21, 2026
4bf5fb7
Update musl to v1.2.6 (#26860)
kleisauke May 21, 2026
bbc19e2
Enable real dynamic linking with `-shared` by default (#25930)
sbc100 May 21, 2026
d08cfb4
Bump version to 6.0.0-git (#26988)
sbc100 May 21, 2026
3d568ac
Support source-phase imports in the acorn/terser optimizer pipeline (…
guybedford May 21, 2026
b260f96
Avoid tempdir in gen_sig_info. NFC (#26989)
sbc100 May 22, 2026
48b0616
Use integer constants for pthread message IDs. NFC (#26987)
sbc100 May 22, 2026
2e0e6e4
Fix `gen_sig_info.py` test in the absence of `out` directory. NFC (#2…
sbc100 May 22, 2026
7fef2ec
Remove redundant calls to os.path.join. NFC (#26990)
sbc100 May 22, 2026
8f2c75b
Update npm dependencies. NFC (#26992)
sbc100 May 22, 2026
a7e099e
Add missing break statement from #26987. NFC (#26993)
sbc100 May 22, 2026
b5118fe
Remove setimmediate handler from pthread onmessage. NFC (#26994)
sbc100 May 22, 2026
163a0f0
Automatic rebaseline of codesize expectations. NFC (#27004)
emscripten-bot May 23, 2026
ddb8be1
Remove redundant Atomics annotations (#26999)
garymathews May 23, 2026
1a3849a
Add caniuse links to feature matrix. NFC (#27005)
kleisauke May 23, 2026
36fb9c4
Update feature matrix for `-sGROWABLE_ARRAYBUFFERS` (#27003)
kleisauke May 23, 2026
6b67d4c
[wasm64] Add missing sig mapping for `_emscripten_proxy_dlsync()` (#2…
kleisauke May 23, 2026
b964833
Update feature matrix for `-m64` (#27007)
kleisauke May 23, 2026
7b8b5bc
Update feature matrix for `-mnontrapping-fptoint` (#27006)
kleisauke May 23, 2026
d9c4b18
Fix test test_dylink_zlib_cmake when CMake is installed via Emsdk (#2…
juj May 24, 2026
a173795
Fix zlib benchmark by adding `-DBUILD_SHARED_LIBS=OFF`. (#27010)
sbc100 May 25, 2026
261118a
Update libpng to 1.6.58 (#26983)
HCL-JasonR May 26, 2026
f228f9c
Fix emscripten_set_immediate when called from a pthread (#27008)
sbc100 May 26, 2026
d1c95e6
Minor libpthread.js cleanups. NFC (#27011)
sbc100 May 26, 2026
0266333
Automatic rebaseline of codesize expectations. NFC (#27013)
emscripten-bot May 26, 2026
0c0f3d4
Remove PThread.runningWorkers. NFC (#26998)
sbc100 May 27, 2026
3eb2d79
libpthread.js: Remove unnecessary quotes. NFC (#27014)
sbc100 May 27, 2026
b44cb92
libpthread.js: Return result from allocateUnusedWorker. NFC (#27015)
sbc100 May 27, 2026
dc3e660
Simplify pthread_esm_startup. NFC (#27016)
sbc100 May 27, 2026
d9e7a4a
Re-enable the temporarily disabled circleci tests. (#26996)
brendandahl May 27, 2026
f67f392
Use .exe launchers on windows by default (#27017)
sbc100 May 28, 2026
8b5a08f
Automatic rebaseline of codesize expectations. NFC (#27024)
emscripten-bot May 28, 2026
a0fe4fe
Add pylauncher.exe as bootstrap.py dependency (#27022)
sbc100 May 28, 2026
0d68ae8
[dylink] Fix deadlock in `_emscripten_dlsync_threads()` (#27000)
kleisauke May 28, 2026
cfd5c91
[ports] Initialize ICU source path early in get() (#27019)
sbc100 May 28, 2026
41656d6
[pthreads] Simplify message relaying code (#27018)
sbc100 May 28, 2026
999496e
[FP16] Add end to end tests for promote/demote instructions. (#27027)
brendandahl May 28, 2026
7a1de12
Simplify `test_js_optimizer`. NFC (#27031)
sbc100 May 29, 2026
a51e7ef
Use `run_codesize_test` helper for `test_small_js_flags`. NFC (#27030)
sbc100 May 29, 2026
580e462
Add stub for `pause()` syscall in standalone mode (#27038)
kleisauke Jun 1, 2026
0117c98
Automatic rebaseline of codesize expectations. NFC (#27043)
emscripten-bot Jun 1, 2026
ce9d611
Update sphinx to v7.4.7 (#27042)
sbc100 Jun 1, 2026
1465d28
[docs] Don't try to syntax highlight the license file (#27041)
sbc100 Jun 1, 2026
3836fca
Fix an issue with glTexSubImage3D() not working in 4GB or Wasm64 mode…
juj Jun 1, 2026
1859de1
Update standalone.c after recent poll change (#27046)
sbc100 Jun 1, 2026
af5a78a
Update Binaryen expected version to 129 (#27045)
kripken Jun 1, 2026
f6a4ca2
Remove __syscall_pause (#27044)
sbc100 Jun 2, 2026
57434d9
Use ExitProcess to exit from pylauncher (#27048)
dschuff Jun 2, 2026
39b416e
Add ChangeLog entry for #27044 (#27050)
sbc100 Jun 3, 2026
afa15e0
[deps]: Bump google-closure-compiler from 20260519.0.0 to 20260527.0.…
dependabot[bot] Jun 3, 2026
7262031
[deps] Bump the development-dependencies group across 1 directory wit…
dependabot[bot] Jun 3, 2026
1637a13
Mark 6.0.0 as released (#27052)
emscripten-bot Jun 4, 2026
5cb68ec
Clean up a couple JS-side library function references (#27054)
valadaptive Jun 4, 2026
8e9e425
Make more use of async/await for file packging (#27034)
sbc100 Jun 5, 2026
61533b1
Automatic rebaseline of codesize expectations. NFC (#27056)
emscripten-bot Jun 5, 2026
f835556
create_entry_points.py: Don't remove bootstrap.bat (#27055)
sbc100 Jun 5, 2026
7080730
Size optimize a switch-case in C preprocessor library. (#27057)
juj Jun 5, 2026
4053ccc
Automatic rebaseline of codesize expectations. NFC (#27062)
emscripten-bot Jun 8, 2026
f4c6937
Automatic rebaseline of codesize expectations. NFC (#27068)
emscripten-bot Jun 8, 2026
9831588
Don't use a launcher for bootstrap.py. NFC (#27060)
sbc100 Jun 8, 2026
1a700b4
[Docs] migrate sphinx theme to shibuya (#27035)
hwhsu1231 Jun 8, 2026
cf59596
Extend stdin testing to include std::cin. NFC (#27067)
sbc100 Jun 8, 2026
df8c329
[CI] Remove bionic workarounds. NFC (#27071)
sbc100 Jun 9, 2026
1cee75d
Simplify modular runtime initialization promise (#27059)
brendandahl Jun 9, 2026
2291350
Deprecate `-sUSE_PTHREADS` and `-sMEMORY64` in favor of standard flag…
sbc100 Jun 9, 2026
43ea101
Add missing rename `bootstrap -> bootstrap.py` (#27074)
sbc100 Jun 9, 2026
74e3157
Support ES6 module syntax in Acorn and Closure (#23730)
kleisauke Jun 9, 2026
784f327
Always await the `createWasm` promise under `WASM_ASYNC_COMPILATION` …
sbc100 Jun 9, 2026
c6b1d93
Fix test broken by #27025 (#27076)
sbc100 Jun 9, 2026
7229f15
Automatic rebaseline of codesize expectations. NFC (#27078)
emscripten-bot Jun 9, 2026
e11edd8
Optimize JS compiler caching for standard builds (#27026)
brendandahl Jun 9, 2026
34ba269
[embind] Allow awaiting Promises in non-Promise coroutines & catching…
stevenwdv Jun 10, 2026
bdd20af
Add initial integration with wasm-bindgen (#23493)
walkingeyerobot Jun 10, 2026
a30a119
Remove unnecessary dependencies. NFC (#27077)
sbc100 Jun 10, 2026
1015967
Fix test_wasm_bindgen_integration. NFC (#27081)
sbc100 Jun 10, 2026
23ec527
Mark dynamic linking as requiring async compilation (#27086)
sbc100 Jun 10, 2026
cb6d2eb
Allow using the search path from -resource-dir with `emcc -print-file…
Diyou Jun 10, 2026
3a84c35
Use await for loadDylibs (#27079)
sbc100 Jun 10, 2026
f179aa1
Honor clang resource dir in `-print-file-name` + `-print-search-dirs`…
sbc100 Jun 10, 2026
f19ac7d
Use libclang_rt naming for installed compiler-rt libraries (#27089)
sbc100 Jun 10, 2026
a94921a
Ensure arch is set correctly before handlers such as `-dumpmachine`. …
sbc100 Jun 10, 2026
373e2c3
Add comment regarding why are stuck on sphinx v7. NFC (#27091)
sbc100 Jun 10, 2026
d1fbb02
Automatic rebaseline of codesize expectations. NFC (#27095)
emscripten-bot Jun 11, 2026
96f82fd
Record compile time in Skia perf benchmarker (#27088)
brendandahl Jun 11, 2026
f3d0e12
Automatic rebaseline of codesize expectations. NFC (#27102)
emscripten-bot Jun 11, 2026
3d565e0
[CI] Update node-latest to v26. NFC (#27094)
sbc100 Jun 11, 2026
5b42d65
Require node v26 for GROWABLE_ARRAYBUFFERS feature (#27103)
sbc100 Jun 11, 2026
aecbbc9
Add assert to `updateMemoryViews`. NFC (#27099)
sbc100 Jun 11, 2026
33e626c
Automatic rebaseline of codesize expectations. NFC (#27107)
emscripten-bot Jun 12, 2026
2b6693c
Remove `EMCC_STDERR_FILE` environment variable (#27101)
sbc100 Jun 12, 2026
27af4a3
[CI] Add `apt-get update` before installing chrome deps. NFC (#27110)
sbc100 Jun 12, 2026
af0016f
[Docs] Update logo format to svg (#27085)
hwhsu1231 Jun 12, 2026
7e2dbe9
Improve support for clang information flags like -print-target-triple…
sbc100 Jun 12, 2026
91ba317
[CI] Browser deps are now part of the base image. NFC (#27111)
sbc100 Jun 12, 2026
a39f1f1
Simplify test_massive_alloc. NFC (#27093)
sbc100 Jun 12, 2026
d44702c
Avoid JSPI suspend on poll()/select() with zero timeout (#27100)
guybedford Jun 12, 2026
dfcaf09
Add test for recent chrome regression. NFC (#27112)
sbc100 Jun 12, 2026
99c29da
Automatically enable GROWABLE_ARRAYBUFFERS when min browser versions …
sbc100 Jun 12, 2026
e5507ba
Add `assertFilesMatch` helper. NFC (#27032)
sbc100 Jun 12, 2026
065992a
[CI] Install browsers using puppeteer/browsers tool. NFC (#27113)
sbc100 Jun 12, 2026
12a6403
[wasm64] Keep nfds_t 32-bit. NFC (#27115)
kleisauke Jun 13, 2026
d913170
Add support for C++23 std modules (#27065)
Diyou Jun 15, 2026
fadaf2c
Report availability of `toResizableBuffer` in `test_memory_growth`. N…
sbc100 Jun 15, 2026
8839d07
Add a couple more checks/assertions to pthread startup code. NFC (#27…
sbc100 Jun 15, 2026
11f2290
Fix getentropy/random_get in Node and shell (#27122)
hoodmane Jun 16, 2026
7bb815d
[Wasm64] Fix -sBUILD_AS_WORKER (#27125)
sbc100 Jun 16, 2026
9056601
Convert test_worker_api tests from C++ to C and move to test/browser.…
sbc100 Jun 16, 2026
058d505
Enable test_pthread_memgrowth_stale_views under chrome. NFC (#27124)
sbc100 Jun 16, 2026
c74d0f4
Remove some pointless usage of makeHEAPView. NFC (#27128)
sbc100 Jun 16, 2026
e7613e0
Prefer subarray over slice where possible. NFC (#27129)
sbc100 Jun 16, 2026
b0eae28
[emval] Gate val thread-affinity check on __EMSCRIPTEN_PTHREADS__ ins…
iakovgi Jun 17, 2026
e71bd9f
Add onunhandledrejection handler to default shell html files. (#27130)
sbc100 Jun 17, 2026
8301229
Convert Browser.workers to HandleAllocator. NFC (#27127)
sbc100 Jun 17, 2026
5945097
Convert more browser tests to btest_exit. NFC (#27131)
sbc100 Jun 17, 2026
4bbc036
Remove `calledRun` module property (#27133)
sbc100 Jun 17, 2026
62de996
Automatic rebaseline of codesize expectations. NFC (#27138)
emscripten-bot Jun 17, 2026
51db36f
Automatic rebaseline of codesize expectations. NFC (#27141)
emscripten-bot Jun 17, 2026
04d7636
Remove duplicate processing of runDependencies in run() (#27139)
sbc100 Jun 18, 2026
2d5b59c
Fix late preRun additions in file_packager (separate metadata) (#27137)
sbc100 Jun 18, 2026
f6acdcc
[Docs] Rename and crop the logo file (#27132)
hwhsu1231 Jun 18, 2026
454c3c1
Automatic rebaseline of codesize expectations. NFC (#27144)
emscripten-bot Jun 18, 2026
da7c512
[CI] Update tag-release.yml such that it also creates a draft release…
sbc100 Jun 18, 2026
a10e394
[file_packager] Split data files when file size exceeds ArrayBuffer l…
arsnyder16 Jun 18, 2026
1e4209f
Enable ASan under wasm64 (#27145)
sbc100 Jun 18, 2026
08b53ee
Automatic rebaseline of codesize expectations. NFC (#27147)
emscripten-bot Jun 18, 2026
59151a8
Enable -fcoverage-mapping test under wasm64 (#27146)
sbc100 Jun 18, 2026
05ea58a
Use correct data types in syscall layer. NFC (#27108)
kleisauke Jun 18, 2026
1ba6538
Simplify `run` function, removing reentrancy (#27121)
sbc100 Jun 18, 2026
bb3b1a7
Enable more sanitizer tests under wasm64 (#27148)
sbc100 Jun 18, 2026
338cb79
Fix WASM64 WasmFS OPFS and Fetch tests (#27149)
sbc100 Jun 18, 2026
25e4e8d
Add `CROSS_ORIGIN_STORAGE` link flag (#27066)
tomayac Jun 18, 2026
e944019
Removed packaging.version as a dependency in test_other.py (#27152)
Diyou Jun 19, 2026
8484a7b
Avoid varargs in socket syscall layer. NFC (#27153)
kleisauke Jun 19, 2026
ee65786
Automatic rebaseline of codesize expectations. NFC (#27155)
emscripten-bot Jun 22, 2026
8580a52
Fix list syntax in docs for SINGLE_FILE_BINARY_ENCODE. NFC (#27157)
sbc100 Jun 22, 2026
5b2dd83
Mark 6.0.1 as released (#27158)
emscripten-bot Jun 22, 2026
1e3baed
Refactor release automation and integrate custom release notes. NFC (…
sbc100 Jun 23, 2026
8f23d7b
Replace hardcoded native signature mapping with auto-generated one (#…
sbc100 Jun 23, 2026
87a25dc
[ports] Unpack ports atomically to improve concurrency robustness (#2…
sbc100 Jun 23, 2026
0194105
Disable default Makefile target (#27168)
sbc100 Jun 23, 2026
0406565
Automatic rebaseline of codesize expectations. NFC (#27170)
emscripten-bot Jun 23, 2026
4177187
[pylauncher] Pass -X utf8 to python when using -E (#27169)
sbc100 Jun 23, 2026
9253107
Add -sNODERAWSOCKETS backend for real TCP & UDP on Node.js (#27080)
guybedford Jun 24, 2026
d64d224
Automatic rebaseline of codesize expectations. NFC (#27172)
emscripten-bot Jun 24, 2026
8180c1e
Use dedicated pointer types in syscall layer. NFC (#19559)
kleisauke Jun 24, 2026
ea0e911
Update to latest googletest version in testing. NFC (#27164)
sbc100 Jun 24, 2026
edfc87a
[CI] Update codesize failure message. NFC (#27166)
sbc100 Jun 24, 2026
110e829
Simplify polyfillWaitAsync. NFC (#27178)
sbc100 Jun 24, 2026
8326028
Extract doPollAsync from __syscall_poll. NFC (#27176)
sbc100 Jun 24, 2026
1c031e3
Use Promise internally for handling run dependencies. NFC (#27171)
sbc100 Jun 24, 2026
3e49bc1
Sync `test_pthread_dlopen_many` with `test_pthread_dlopen` (#27154)
kleisauke Jun 25, 2026
dde49fe
[html5] Add `desynchronized` WebGL context attribute (#27163)
UnknownHacker1 Jun 25, 2026
f029901
Add runtime detection setting for `GROWABLE_ARRAYBUFFERS` (#27096)
sbc100 Jun 25, 2026
fb69be2
Cleanup node/v8 flags. NFC (#27188)
sbc100 Jun 25, 2026
724d383
[CI] Pin GitHub Actions to specific commit SHAs (#27185)
dschuff Jun 25, 2026
c64759c
[CI] Add explicit read-only permissions to workflows (#27186)
dschuff Jun 25, 2026
e325f79
[deps]: Bump actions/checkout from 4.1.0 to 7.0.0 (#27196)
dependabot[bot] Jun 25, 2026
b3e7d30
[deps]: Bump actions/upload-artifact from 4.6.1 to 7.0.1 (#27195)
dependabot[bot] Jun 25, 2026
73a60a2
Document extra INCOMING_MODULE_JS_API settings. NFC (#27194)
sbc100 Jun 25, 2026
1741aef
Remove `buffer` from INCOMING_MODULE_JS_API. NFC (#27198)
sbc100 Jun 25, 2026
940eb48
Remove empty preRun/postRun from test html files. NFC (#27199)
sbc100 Jun 25, 2026
e27e148
Micro-optimize receiveInstance function. NFC (#27191)
sbc100 Jun 26, 2026
03ab903
Add a contextmenu mouse callback (#27192)
stas-badzi Jun 26, 2026
3228fce
Remove `Module['mem']` from WASM_WORKER internals. NFC (#27202)
sbc100 Jun 26, 2026
6e446d0
Remove default second argument from addEventListener calls. NFC (#27203)
sbc100 Jun 26, 2026
a908938
Remove redundant ',' from Array.join calls. NFC (#27204)
sbc100 Jun 26, 2026
de5ee4e
Optimize for size in preamble.js/postamble.js. NFC (#27136)
sbc100 Jun 26, 2026
dcb09bc
Simplify SIMD arg processing. NFC (#27193)
sbc100 Jun 26, 2026
a5bb2c6
Add epoll headers and syscall stubs (#27206)
guybedford Jun 26, 2026
ec2ddbf
Move rarely used settings out of default INCOMING_MODULE_JS_API (#27197)
sbc100 Jun 26, 2026
2f6b893
[libc] Handle overflow in localtime and gmtime (#27187)
sbc100 Jun 27, 2026
b96f9e1
Inline `preMain`. NFC (#27200)
sbc100 Jun 27, 2026
9e34e13
Fix template injection vulnerabilities in workflows (#27184)
dschuff Jun 27, 2026
b012a86
Avoid dynamic looking in createExportWrapper. NFC (#27180)
sbc100 Jun 27, 2026
55ac37b
Micro-optimize `findStringEnd` and `stringToUTF{16,32}`. NFC (#27205)
kleisauke Jun 27, 2026
a34c4a8
[WasmFS] Skip root directory setup under NODERAWFS (#26607)
kleisauke Jun 28, 2026
7661324
Enable GROWABLE_ARRAYBUFFERS under Firefox in latest version (#27209)
sbc100 Jun 29, 2026
1e66813
[docs] Update top level README.md (#27210)
sbc100 Jun 29, 2026
96d6182
Add test for detecting dead code in our generated JS. NFC (#27190)
sbc100 Jun 29, 2026
2de22c0
Fix return code handling in select() (#27214)
sbc100 Jun 29, 2026
2c8a220
Separate test config from core compiler. NFC (#27216)
sbc100 Jun 30, 2026
7a2d97d
Set GROWABLE_ARRAYBUFFERS=1 by default (#27212)
sbc100 Jun 30, 2026
9a79fd6
[CI] Remove Rosetta from macOS build (#27222)
sbc100 Jun 30, 2026
85d0a51
Refactor async poll()/select() onto a per-inode readiness wait-queue …
guybedford Jul 1, 2026
9d96d96
Add support for x86 FMA intrinsics (#27183)
fanchenkong1 Jul 1, 2026
cd91fdb
Fix release automation remote failure introduced in #27159 (#27227)
sbc100 Jul 1, 2026
5f2bf0e
Update pylauncher.exe (#27225)
sbc100 Jul 1, 2026
15cd9fc
create_release.py: Create a pull request when creating a release (#27…
sbc100 Jul 1, 2026
87cf1b0
create_release.py: Specify --head flag when creating release PR
sbc100 Jul 1, 2026
86f8aef
create_release.py: Use org prefix for team reviewers in gh pr create
sbc100 Jul 1, 2026
e5fa603
Mark 6.0.2 as released (#27232)
emscripten-bot Jul 1, 2026
b3ee82e
Update ChangeLog to reflect PRs that didn't actually make 6.0.2. NFC …
sbc100 Jul 1, 2026
3946393
Use dedicated variable for run dependency resolver (#27228)
brendandahl Jul 1, 2026
db04220
Add new `AUTO_INIT` setting to enable auto-initialized ES6 modules (#…
guybedford Jul 1, 2026
37e6bc1
Run `GROWABLE_ARRAYBUFFERS` tests under bun and deno. NFC (#27224)
sbc100 Jul 1, 2026
2285980
[deps]: Bump the production-dependencies group with 2 updates (#27234)
dependabot[bot] Jul 2, 2026
f351c42
[deps]: Bump the development-dependencies group with 7 updates (#27235)
dependabot[bot] Jul 2, 2026
dd4ab28
Automatic rebaseline of codesize expectations. NFC (#27239)
emscripten-bot Jul 2, 2026
1e0aafe
Add Closure externs for `growable` and `resizable` properties (#27244)
kleisauke Jul 3, 2026
404e340
Fix Closure `await import` mangling regression (#27173)
kleisauke Jul 3, 2026
90c9f00
Move and combine ChangeLog entry for #27096. NFC (#27240)
kleisauke Jul 3, 2026
9612bbc
Update compiler-rt from LLVM 21.1.8 to 22.1.8 (#27245)
aheejin Jul 3, 2026
a9c46fa
Update preserve list of library update scripts (#27247)
aheejin Jul 3, 2026
9288477
Print error message in update_*.py when dir doesn't exist (#27248)
aheejin Jul 3, 2026
d2800b6
Update libunwind from LLVM 21.1.8 to 22.1.8 (#27246)
aheejin Jul 3, 2026
0a97463
Use `= {0}` initialization instead of explicit `memset` for stack var…
sbc100 Jul 4, 2026
4ac16be
Remove 'and' between PR numbers in ChangeLog (#27250)
aheejin Jul 4, 2026
10d8b6d
Factor out common methods from update_***.py (NFC) (#27252)
aheejin Jul 4, 2026
e00597b
[test] Rename `do_run_in_out_file_test` to match `do_runf` naming (#2…
sbc100 Jul 4, 2026
3775844
Update docs on mainScriptUrlOrBlob. NFC (#27255)
sbc100 Jul 6, 2026
605af0e
Temporarily skip tests to allow Binaryen roll (#27258)
tlively Jul 6, 2026
02fb45e
Temporarily disable -fcoverage-mapping test (#27261)
sbc100 Jul 6, 2026
cd9990f
Revert default for GROWABLE_ARRAYBUFFERS to 0 (#27260)
sbc100 Jul 6, 2026
929882a
[docs] Format (linewrap) api_reference docs. NFC (#27259)
sbc100 Jul 6, 2026
21afbf6
Make update_*.py update readme's LLVM version (#27254)
aheejin Jul 7, 2026
3e979b6
Ask about installing git hooks as part of `./bootstrap.py` (#27238)
sbc100 Jul 7, 2026
187c05d
[docs] Remove unused link target. NFC (#27263)
sbc100 Jul 7, 2026
e159e10
[html5] Fix argument count for __emscripten_run_callback_on_thread (#…
sbc100 Jul 7, 2026
382503c
[WasmFS] Enforce open file access mode on read/write (#27249)
pavelsavara Jul 7, 2026
d154f06
[html5] Remove duplication in `canvasResizedCallback` invocations. NF…
sbc100 Jul 7, 2026
e745bf3
Automatic rebaseline of codesize expectations. NFC (#27271)
emscripten-bot Jul 8, 2026
22383d7
Add openmp library from llvm (#27073)
duerrbaby Jul 8, 2026
06f2178
Merge branch 'main' into dotnet/main-bump-emscripten-6.0.2-3
pavelsavara Jul 8, 2026
e302f42
--bat-files
pavelsavara Jul 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,6 @@ test/runner.bat
tools/file_packager.bat
tools/webidl_binder.bat

bootstrap.exe
em++.exe
emcc.exe
em-config.exe
Expand Down
1 change: 1 addition & 0 deletions AUTHORS
Original file line number Diff line number Diff line change
Expand Up @@ -603,3 +603,4 @@ a license to everyone to use it as detailed in LICENSE.)
* Sean Morris <sean@seanmorr.is>
* Mitchell Wills <mwills@google.com> (copyright owned by Google, Inc.)
* Han Jiang <jhcarl0814@gmail.com>
* Abdelrahman Teima <abdelrahmanteima@gmail.com>
183 changes: 169 additions & 14 deletions ChangeLog.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,168 @@ to browse the changes between the tags.

See docs/process.md for more on how version tagging works.

5.0.6 (in development)
6.0.3 (in development)
----------------------
- Added support for compiling FMA intrinsics. All 32 FMA intrinsics are
supported, with 256-bit variants emulated via two 128-bit operations. Pass
``-msimd128 -mfma`` to enable. With ``-mrelaxed-simd -mfma``, Wasm relaxed
SIMD FMA is used. (#27183)
- New `AUTO_INIT` setting to opt an instance ES module (`MODULARIZE=instance` or
`WASM_ESM_INTEGRATION`) into self-initialization via top-level await on import,
rather than exporting a default `init` function. Since there is no
init/moduleArg, module-level configuration is unavailable:
`INCOMING_MODULE_JS_API` is disabled and passing a non-empty one is an error.
- The async `poll()`/`select()` implementation was refactored onto a per-inode
readiness wait-queue. As part of this, the (undocumented) `stream_ops.poll`
FS-backend handler signature changed from `poll(stream, timeout)` to
`poll(stream)` returning the current readiness mask; out-of-tree custom FS
backends with a `poll` handler must update. (#27226)
- compiler-rt and libunwind were updated to LLVM 22.1.8. (#27245, #27246)
- `-fcoverage-mapping` is currently broken due to a mismatch between the version
of LLVM used and the imported version of compiler-rt. We hope to fix this
in the next release. (#27261)
- The default value for `GROWABLE_ARRAYBUFFERS` was reverted to `0` since we
found issues with Web API compatibility. (#27260)

6.0.2 - 07/01/26
----------------
- The `GROWABLE_ARRAYBUFFERS` setting now supports both `=1` (auto-detect and
use the feature) and `=2` (unconditionally use the feature, avoiding the
overhead in multi-threaded builds). It now defaults to `=1`, meaning the
feature will be used when available. Note that this only affects programs
that are built with `ALLOW_MEMORY_GROWTH`, which is not enabled by default.
(#27096, #27212)
- New `-sNODERAWSOCKETS` setting that backs the POSIX sockets API with real TCP
(`node:net`) and UDP (`node:dgram`) sockets on Node.js, with no `ws`, proxy
process, or pthreads required. Supports incoming and outgoing TCP, UDP, IPv6,
and `-pthread` with `PROXY_TO_PTHREAD`. Uses the public node APIs where
available, falling back to `tcp_wrap`/`udp_wrap` on older Node.js. (#27080)
- The following symbols are no longer included in `INCOMING_MODULE_JS_API`
by default:
- GL_MAX_TEXTURE_IMAGE_UNITS
- SDL_canPlayWithWebAudio
- SDL_numSimultaneouslyQueuedBuffers
- freePreloadedMediaOnUse
- preinitializedWebGLContext
- keyboardListeningElement
- doNotCaptureKeyboard
- extraStackTrace
- preloadPlugins
- postMainLoop
- preMainLoop
- forcedAspectRatio
- mainScriptUrlOrBlob
- onFullScreen
- INITIAL_MEMORY
- wasmMemory
- wasmBinary
Anybody using these will see a clear error in their debug builds signaling
that they now need to be explicitly added to `-sINCOMING_MODULE_JS_API`.

6.0.1 - 06/22/26
----------------
- The ability to redirect JS compiler stderr using `EMCC_STDERR_FILE` was
removed. These days you can use `EMCC_DEBUG` and/or `EMCC_DEBUG_SAVE` to
preserve all the intermediate JS compiler files. (#27101)
- The installed versions of the compiler-rt library now follow the upstream
naming convetion of `libclang_rt.<something>.a`. (#27089)
- Dynamic linking now explicitly requires asynchronous Wasm compilation. The
process of loading side modules at startup currently depends on this. (#27086)
- New experimental `-sCROSS_ORIGIN_STORAGE` linker flag integrating the
proposed [Cross-Origin Storage browser API](https://github.com/WICG/cross-origin-storage)
as a progressive enhancement for Wasm loading on the web target. See
`docs/compiling/CrossOriginStorage.rst` for details. (#27066)
- The `-sUSE_PTHREADS` and `-sMEMORY64` flags have been deprecated in favor of the
more standard `-pthread` and `-m64` (or `--target=wasm64`) flags. (#27025)
- Adds wasm-bindgen support. When `-sWASM_BINDGEN` is set, Emscripten will call
out to `wasm-bindgen` in the users's path and integrate the wasm-bindgen JS
with the normal Emscripten JS. Some wasm-bindgen features may not yet be fully
supported. (#23493)
- Fixed `getentropy`/`random_get` spuriously failing under Node.js and the
shell environment for small requests. (#27122)
- The startup process for the generated program now makes use of `async` /
`await` under more circumstances (specifically when using `setStatus`, or
run dependencies). This means that errors during startup (or during the
`main()` function) will more often show up as unhandled promise rejections
(`onunhandledreject`) rather than synchronous errors (`onerror`). (#27121)

6.0.0 - 06/04/26
----------------
- On Windows, Emscripten now ships `.exe` tool launchers, rather
than `.bat` and/or `.ps1`. This means that any scripts that explicitly
reference, e.g. `emcc.bat`, will need to be updated to just `emcc` (or
`emcc.exe`). For the time being you can still get the old `.bat` files by
running `tools/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, #26983)
- The `-m64` compiler flag is now honored, and works as an alias for
`-sMEMORY64` and/or `--target=wasm64`. (#26765)
- The autopersistence feature in IDBFS mount now supports registering a global
callback `IDBFS.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_DYLIBS` setting is now disabled by default. This means that
`-shared` will produce real dynamic libraries by default (`-sSIDE_MODULE` is
implied). Also, if you include real dynamic libraries in your link command
emscripten will now automatically produce a dynamically linked program
(`-sMAIN_MODULE=2` is implied). (#25930)
- The `PThread.runningWorkers` field was removed from the `PThread` object.
If you have JS code that was depending on this you can transition to using the
`PThread.pthreads` object. (#26998)
- The POSIX `pause()` function will now return 0 rather than EINTR. (#27044)

5.0.7 - 04/30/26
----------------
- mimalloc was updated to 3.3.1. (#26696)
- The `WASM_JS_TYPES` setting was removed, as the corresponsing propsal was
pushed back to phase 1. (#26739)
- The `-sDETERMINISTIC` setting was removed. This setting just injected
`src/deterministic.js` as a `--pre-js`. For now, this file remains part of
emscripten so folks can sill use it manually if needed. If you are a user of
this feature please let us know otherwise this may be deleted in a future
release. (#26648)
- The emscripten_futex_wait internals were improved to avoid unnecessary thread
wakeups. As part of this change emscripten_futex_wait is now documented to
explicitly allow for returning EINTR when the wait is interrupted by an async
operation. All callers of emscripten_futex_wait are advised to use a loop
to handle these types of spurious wakeups / interruptions. (#26659, #26735)
- Attempting to use PTHREAD_PROCESS_SHARED when creating pthread primitives such
as locks and condvars will now fail with ENOTSUP. (#26743)
- When building code with both Wasm Workers and pthreads (hybrid mode) it is now
possible to call most of the core pthread APIs (e.g. lock, condvar, etc) from
a Wasm Worker. This mode increases the memory used by each Wasm Worker by
~500 bytes (in the same way that declaring ~500 bytes of TLS data would).
(#26757)
- The filesystem opteration that create new files now honor the global umask,
which defaults for 0o222 and can be updated by calling `umask()`. (#50739)

5.0.6 - 04/14/26
----------------
- The minimum version of node supported by the generated code was bumped from
v12.22.0 to v18.3.0. (#26604)
- The DETERMINISIC settings was marked as deprecated (#26653)
- The DETERMINISTIC settings was marked as deprecated (#26653)
- Some musl-internal headers are no longer installed into the sysroot include
directory. In particular, `syscall_arch.h` no longer exists, but can be
replaced with `emscripten/syscalls.h`. (#26658)
Expand Down Expand Up @@ -117,10 +274,9 @@ See docs/process.md for more on how version tagging works.
inconsistent with JS and was not supported in browser devtools. We plan to
provide this information using Scopes encoding later. (#26149)
- compiler-rt, libcxx, libcxxabi, libunwind, and llvm-libc were updated to LLVM
21.1.8. (#26036, #26045, #26058, and #26151)
21.1.8. (#26036, #26045, #26058, #26151)
- Calling pthread_create in a single-threaded build will now return ENOTSUP
rather then EAGAIN. (#26105)
- compiler-rt and libunwind were updated to LLVM 21.1.8. (#26036 and #26045)
- A new `-sEXECUTABLE` setting was added which adds a #! line to the resulting
JavaScript and makes it executable. This setting defaults to true when the
output filename has no extension, or ends in `.out` (e.g. `a.out`) (#26085)
Expand Down Expand Up @@ -365,7 +521,7 @@ See docs/process.md for more on how version tagging works.
example, when you run `pkg-config --list-all` or `pkg-config --cflags
<portname>`. Bare in mind that the correct PKG_CONFIG_PATH needs to be set for
this to work. One way to do this is to run `emmake pkg-config`. (#24426)
- libcxx, libcxxabi, and compiler-rt were updated to LLVM 20.1.4. (#24346 and
- libcxx, libcxxabi, and compiler-rt were updated to LLVM 20.1.4. (#24346,
#24357)
- Emscripten will not longer generate trampoline functions for Wasm exports
prior to the module being instantiated. Storing a reference to a Wasm export
Expand Down Expand Up @@ -552,7 +708,7 @@ See docs/process.md for more on how version tagging works.
new proposal by default yet. This option replaces the existing
`-sWASM_EXNREF`, whose meaning was the opposite.
- compiler-rt, libcxx, libcxxabi, and libunwind were updated to LLVM 19.1.6.
(#22937, #22994, and #23294)
(#22937, #22994, #23294)
- The default Safari version targeted by Emscripten has been raised from 14.1
to 15.0 (the `MIN_SAFARI_VERSION` setting) (#23312). This has several effects:
- The Wasm nontrapping-fptoint feature is enabled by default. Clang will
Expand Down Expand Up @@ -801,7 +957,7 @@ See docs/process.md for more on how version tagging works.
3.1.57 - 04/10/24
-----------------
- libcxx, libcxxabi, libunwind, and compiler-rt were updated to LLVM 18.1.2.
(#21607, #21638, and #21663)
(#21607, #21638, #21663)
- musl libc updated from v1.2.4 to v1.2.5. (#21598)
- In `MODULARIZE` mode we no longer export the module ready promise as `ready`.
This was previously exposed on the Module for historical reasons even though
Expand Down Expand Up @@ -882,8 +1038,7 @@ See docs/process.md for more on how version tagging works.
community and supported on a "best effort" basis. See
`tools/ports/contrib/README.md` for details.A first contrib port is
available via `--use-port=contrib.glfw3`: an emscripten port of glfw written
in C++ with many features like support for multiple windows. (#21244 and
#21276)
in C++ with many features like support for multiple windows. (#21244, #21276)
- Added concept of external ports which live outside emscripten and are
loaded on demand using the syntax `--use-port=/path/to/my_port.py` (#21316)
- `embuilder` can now build ports with options as well as external ports using
Expand Down Expand Up @@ -991,7 +1146,7 @@ See docs/process.md for more on how version tagging works.
For those that would rather perform transpilation separately outside of
emscripten you can use the `-sPOLYFILL=0` setting. (#20700)
- libcxx, libcxxabi, libunwind, and compiler-rt were updated to LLVM 17.0.4.
(#20705, #20707, and #20708)
(#20705, #20707, #20708)
- Remove `BENCHMARK` setting. That has not been used by the benchmark suite for
some time now (at least not by default), and is much less useful these days
given lazy compilation in VMs (which makes it impossible to truly benchmark
Expand Down Expand Up @@ -1270,7 +1425,7 @@ See docs/process.md for more on how version tagging works.
- Added new linker option `-sEXCEPTION_STACK_TRACES` which will display a stack
trace when an uncaught exception occurs. This defaults to true when
`ASSERTIONS` is enabled. This option is mainly for the users who want only
exceptions' stack traces without turning `ASSERTIONS` on. (#18642 and #18535)
exceptions' stack traces without turning `ASSERTIONS` on. (#18642, #18535)
- `SUPPORT_LONGJMP`'s default value now depends on the exception mode. If Wasm
EH (`-fwasm-exceptions`) is used, it defaults to `wasm`, and if Emscripten EH
(`-sDISABLE_EXCEPTION_CATCHING=0`) is used or no exception support is used, it
Expand Down Expand Up @@ -1419,7 +1574,7 @@ See docs/process.md for more on how version tagging works.
3.1.24 - 10/11/22
-----------------
- In Wasm exception mode (`-fwasm-exceptions`), when `ASSERTIONS` is enabled,
uncaught exceptions will display stack traces and what() message. (#17979 and
uncaught exceptions will display stack traces and what() message. (#17979,
#18003)
- It is now possible to specify indirect dependencies on JS library functions
directly in C/C++ source code. For example, in the case of a EM_JS or EM_ASM
Expand Down Expand Up @@ -1728,7 +1883,7 @@ See docs/process.md for more on how version tagging works.
`-sDISABLE_EXCEPTION_CATCHING=0`). When using Wasm EH with Wasm SjLj, there is
one restriction that you cannot directly call `setjmp` within a `catch`
clause. (Calling another function that calls `setjmp` is fine.)
(#14976 and #16072)
(#14976, #16072)

3.1.2 - 01/20/2022
------------------
Expand Down Expand Up @@ -3735,7 +3890,7 @@ v1.36.6: 8/8/2016
- Fixed inconsistencies in fullscreen API signatures (#4310, #4318, #4379)
- Changed the behavior of Emscripten WebGL createContext() to not forcibly set
CSS style on created canvases, but let page customize the style themselves
(#3406, #4194 and #4350, #4355)
(#3406, #4194, #4350, #4355)
- Adjusted the reported GL_VERSION field to adapt to the OpenGL ES
specifications (#4345)
- Added support for GLES3 GL_MAJOR/MINOR_VERSION fields. (#4368)
Expand Down
6 changes: 5 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
VERSION = $(shell cat emscripten-version.txt | sed s/\"//g)
DESTDIR ?= ../emscripten-$(VERSION)
DESTDIR ?= out/emscripten-$(VERSION)
DISTFILE = emscripten-$(VERSION).tar.bz2

no_default:
@echo 'Error: You must specify an explicit make target (e.g. `dist` or `install`)'
@exit 1

dist: $(DISTFILE)

install:
Expand Down
58 changes: 54 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ GitHub CI status: [![CircleCI](https://circleci.com/gh/emscripten-core/emscripte

Chromium builder status: [emscripten-releases](https://ci.chromium.org/p/emscripten-releases)

Overview
--------

# Overview

Emscripten compiles C and C++ to [WebAssembly](https://webassembly.org/) using
[LLVM](https://en.wikipedia.org/wiki/LLVM) and
Expand All @@ -26,8 +26,58 @@ While Emscripten mostly focuses on compiling C and C++ using
compilers (for example, Rust has Emscripten integration, with the
`wasm32-unknown-emscripten` target).

License
-------

# Getting Started

For detailed instructions and tutorials, visit the [Emscripten Website](https://emscripten.org).

## Installation

There are two primary ways to install Emscripten:

1. **Using the Emscripten SDK (emsdk) (Recommended)**
The easiest way to get started is by using the Emscripten SDK. Follow the instructions on the [downloads page](https://emscripten.org/docs/getting_started/downloads.html) to install it.

2. **From a Git Checkout (Manual Installation)**
If you have cloned the repository from Git, you can install the dependencies manually and then run the bootstrap script:
```bash
./bootstrap.py
```
For more details, see the [developer guide](https://emscripten.org/docs/contributing/developers_guide.html).

## Using the compiler

Run `emcc` like you would `gcc` or `clang`:

```bash
$ emcc hello.c -o hello.js
$ node hello.js
Hello, world!
```

Emscripten will compile your code into a WebAssembly module along with a
JavaScript file that can load and run it. You can then run the resulting
JavaScript in your browser or under [Node.js](https://nodejs.org/) (or
[Deno](https://deno.com/) or [Bun](https://bun.sh/)).

Emscripten can also generate a sample HTML page that then loads the JavaScript:

```bash
$ emcc hello.c -o hello.html
```

You can then serve the generated `hello.html` using the `emrun` tool, or a
web server of your choosing.


# Contributing

For information on how to contribute to the project, see
[CONTRIBUTING.md](CONTRIBUTING.md) and the [Contributing section on the
website](https://emscripten.org/docs/contributing/contributing.html).


# License

Emscripten is available under 2 licenses, the MIT license and the
University of Illinois/NCSA Open Source License.
Expand Down
33 changes: 0 additions & 33 deletions bootstrap

This file was deleted.

Loading