)]}'
{
  "log": [
    {
      "commit": "df5b3aa6f07574b40a5ed25b79b7189d5a2cb694",
      "tree": "8881b708d489abf559c87cc3ddb81a5f063747c0",
      "parents": [
        "e88bf435e7a1fb7c32de314502d7446247cb587d"
      ],
      "author": {
        "name": "emscripten-bot",
        "email": "179889221+emscripten-bot@users.noreply.github.com",
        "time": "Tue Sep 01 06:22:05 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 01 06:22:05 2026"
      },
      "message": "Mark 6.0.9 as released (#27634)\n\nCo-authored-by: emscripten-bot \u003cemscripten-bot@users.noreply.github.com\u003e"
    },
    {
      "commit": "e88bf435e7a1fb7c32de314502d7446247cb587d",
      "tree": "1cb8f3cc8380f1f8836805b400088caac4523839",
      "parents": [
        "4e4223852a0835923411059a3929907d7df1232e"
      ],
      "author": {
        "name": "Sam Clegg",
        "email": "sbc@chromium.org",
        "time": "Mon Aug 31 20:40:32 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 31 20:40:32 2026"
      },
      "message": "Normalize case for key config pathnames on Windows (#27626)\n\nOn Windows, file systems are case-insensitive. When tools like VS Code\nCMake Tools invoke the compiler through an all-lowercased path (e.g. via\nits `platformNormalizePath` helper), the caller-specified casing affects\nthe value of `__file__` in Python which then propagates all the way to\n`LLVM_ROOT` and the `sanity.txt` file (at least in the emsdk case):\n`__file__` -\u003e `__rootpath__` -\u003e `EM_CONFIG` -\u003e `CFGDIR` -\u003e `LLVM_ROOT`\n-\u003e `sanity.txt`.\n\nAddress this in two places:\n1. In `tools/utils.py`, normalize `__file__` using `normcase` when\n   initializing `__rootpath__`. This prevents caller-specified casing\n   from polluting paths derived from the script location (default\n   `EM_CONFIG`, `$CFGDIR`, and default `CACHE`).\n2. In `tools/shared.py`, normalize `config.LLVM_ROOT` using `normcase`\n   in `generate_sanity()`. This ensures that even if `LLVM_ROOT` was\n   configured explicitly (e.g. via `EM_LLVM_ROOT` or an absolute path\n   in `.emscripten`), the string written to `sanity.txt` is always\n   canonical on Windows.\n\nThe proximate cause of the issue was that the VS Code CMake Tools\nextension explicitly lowercases compiler paths on Windows:\n\nhttps://github.com/microsoft/vscode-cmake-tools/blob/09dd68b54de06469bd1b81d84d6b8666aa2dce1d/src/util.ts#L113-L115\nBy forcing the command line to all-lowercase, the above chain of events\nkicked in whenever the IDE queried compiler settings.\n\nSee: #27624"
    },
    {
      "commit": "4e4223852a0835923411059a3929907d7df1232e",
      "tree": "d3967f072c02d7c0779fc64e7e19e01002de65c3",
      "parents": [
        "eac6f6c754e213b224c833588cf5bde59b7f2fd9"
      ],
      "author": {
        "name": "emscripten-bot",
        "email": "179889221+emscripten-bot@users.noreply.github.com",
        "time": "Mon Aug 31 18:52:35 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 31 18:52:35 2026"
      },
      "message": "Update emsdk version from f93cae82 to a54ef286 (#27627)\n\nThis is an automatic change generated by tools/maint/rebaseline_tests.py\n--update-emsdk.\n\nemsdk version updated: f93cae82 \u003d\u003e a54ef286\n\nThe following revisions were included in this update:\n\n```\n- a54ef286 Roll llvm-project from afdcd7f828b2 to d291bcd466ed (11 revisions)\n- d63ba739 Roll v8 from ad4cb876174a to 8a55ab2bed3a (2 revisions)\n- 8cda60a5 Roll llvm-project from 492a3a4f44e6 to afdcd7f828b2 (21 revisions)\n- c50e1477 Roll emscripten from 6f85eb3956f9 to eac6f6c754e2 (1 revision)\n- 6edf90e4 Roll llvm-project from e828491f47d9 to 492a3a4f44e6 (8 revisions)\n- d570272e Roll llvm-project from 450ef6da8290 to e828491f47d9 (11 revisions)\n- f0c9e8ce Roll llvm-project from b3a2fa281ee7 to 450ef6da8290 (12 revisions)\n```\n\nFull log:\nhttps://chromium.googlesource.com/emscripten-releases/+log/f93cae82..a54ef286\n\nThe following (1) test expectation files were updated by\nrunning the tests with `--rebaseline`:\n\n```\ncodesize/test_codesize_hello_dylink_all.json: 859345 \u003d\u003e 859356 [+11 bytes / +0.00%]\n\nAverage change: +0.00% (+0.00% - +0.00%)\n```\n\nCo-authored-by: emscripten-bot \u003cemscripten-bot@users.noreply.github.com\u003e"
    },
    {
      "commit": "eac6f6c754e213b224c833588cf5bde59b7f2fd9",
      "tree": "e000711154ab3736ffeb1d8a437a95a93ba7123a",
      "parents": [
        "6f85eb3956f95dfb3afb3412a9127c2523e05649"
      ],
      "author": {
        "name": "emscripten-bot",
        "email": "179889221+emscripten-bot@users.noreply.github.com",
        "time": "Sun Aug 30 21:15:01 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Aug 30 21:15:01 2026"
      },
      "message": "Update emsdk version from b57559d2 to f93cae82 (#27623)\n\nThis is an automatic change generated by tools/maint/rebaseline_tests.py\n--update-emsdk.\n\nemsdk version updated: b57559d2 \u003d\u003e f93cae82\n\nThe following revisions were included in this update:\n\n```\n- f93cae82 Roll llvm-project from dca45adce16e to b3a2fa281ee7 (8 revisions)\n- f78b84ad Roll v8 from 1cdea338fd59 to ad4cb876174a (2 revisions)\n- 80098115 Roll llvm-project from 05da143c63d3 to dca45adce16e (11 revisions)\n- 2bc64bea Roll emscripten from c829a265fb0a to 6f85eb3956f9 (1 revision)\n- cce605c5 Roll llvm-project from d156987d1040 to 05da143c63d3 (8 revisions)\n- 1baeb1cf Roll llvm-project from d34be0ff2eb6 to d156987d1040 (12 revisions)\n- 886c0f0c Roll llvm-project from 48378de650fc to d34be0ff2eb6 (8 revisions)\n```\n\nFull log:\nhttps://chromium.googlesource.com/emscripten-releases/+log/b57559d2..f93cae82\n\nCo-authored-by: emscripten-bot \u003cemscripten-bot@users.noreply.github.com\u003e"
    },
    {
      "commit": "6f85eb3956f95dfb3afb3412a9127c2523e05649",
      "tree": "3ff3f09285beefa7d7195283a2443144d03fa1f3",
      "parents": [
        "c829a265fb0a920b68baedd0c29b7ab739ab2e17"
      ],
      "author": {
        "name": "emscripten-bot",
        "email": "179889221+emscripten-bot@users.noreply.github.com",
        "time": "Sat Aug 29 17:50:32 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 29 17:50:32 2026"
      },
      "message": "Update emsdk version from 5ec6e692 to b57559d2 (#27622)\n\nThis is an automatic change generated by tools/maint/rebaseline_tests.py\n--update-emsdk.\n\nemsdk version updated: 5ec6e692 \u003d\u003e b57559d2\n\nThe following revisions were included in this update:\n\n```\n- b57559d2 Roll emscripten from 92a1d865e63c to c829a265fb0a (4 revisions)\n- 25a9e054 Roll llvm-project from 3f2274211ab6 to 48378de650fc (18 revisions)\n- 2f48fa78 Roll emscripten from 259c50c36f7a to 92a1d865e63c (1 revision)\n- e05d8263 Roll binaryen from 23c19e240a81 to 8bad4db00f13 (1 revision)\n- 3c4d6d71 Roll llvm-project from 69db8489be2f to 3f2274211ab6 (58 revisions)\n- 6af18c37 Roll binaryen from 0f38ce795e95 to 23c19e240a81 (3 revisions)\n- c4b842cb Roll emscripten from 6c40a2747ca1 to 259c50c36f7a (1 revision)\n- 5069c80e Roll v8 from 6c9063bc8bb7 to 1cdea338fd59 (26 revisions)\n- 24e8852c Roll binaryen from d03c25ea43d8 to 0f38ce795e95 (1 revision)\n- dc30b0ee Roll llvm-project from 5c7095190a97 to 69db8489be2f (39 revisions)\n- d646ebaa Roll llvm-project from a7831dcce988 to 5c7095190a97 (28 revisions)\n```\n\nFull log:\nhttps://chromium.googlesource.com/emscripten-releases/+log/5ec6e692..b57559d2\n\nThe following (15) test expectation files were updated by\nrunning the tests with `--rebaseline`:\n\n```\ncodesize/test_codesize_cxx_ctors1.json: 153955 \u003d\u003e 153977 [+22 bytes / +0.01%]\ncodesize/test_codesize_cxx_ctors2.json: 153361 \u003d\u003e 153383 [+22 bytes / +0.01%]\ncodesize/test_codesize_cxx_except.json: 200105 \u003d\u003e 200127 [+22 bytes / +0.01%]\ncodesize/test_codesize_cxx_except_wasm.json: 169467 \u003d\u003e 169493 [+26 bytes / +0.02%]\ncodesize/test_codesize_cxx_except_wasm_legacy.json: 167327 \u003d\u003e 167353 [+26 bytes / +0.02%]\ncodesize/test_codesize_cxx_lto.json: 119555 \u003d\u003e 119581 [+26 bytes / +0.02%]\ncodesize/test_codesize_cxx_mangle.json: 266435 \u003d\u003e 266457 [+22 bytes / +0.01%]\ncodesize/test_codesize_cxx_noexcept.json: 155865 \u003d\u003e 155887 [+22 bytes / +0.01%]\ncodesize/test_codesize_cxx_wasmfs.json: 180971 \u003d\u003e 180993 [+22 bytes / +0.01%]\ncodesize/test_codesize_files_wasmfs.json: 63231 \u003d\u003e 63248 [+17 bytes / +0.03%]\ncodesize/test_codesize_hello_O1.json: 8041 \u003d\u003e 8060 [+19 bytes / +0.24%]\ncodesize/test_codesize_hello_dylink.json: 44108 \u003d\u003e 44125 [+17 bytes / +0.04%]\ncodesize/test_codesize_hello_dylink_all.json: 859323 \u003d\u003e 859345 [+22 bytes / +0.00%]\ncodesize/test_minimal_runtime_code_size_hello_embind.json: 14987 \u003d\u003e 15004 [+17 bytes / +0.11%]\ncodesize/test_minimal_runtime_code_size_hello_embind_val.json: 11714 \u003d\u003e 11731 [+17 bytes / +0.15%]\n\nAverage change: +0.05% (+0.00% - +0.24%)\n```\n\nCo-authored-by: emscripten-bot \u003cemscripten-bot@users.noreply.github.com\u003e"
    },
    {
      "commit": "c829a265fb0a920b68baedd0c29b7ab739ab2e17",
      "tree": "aafb1982d99aa031fa0f6d95610c3d12f11c6dea",
      "parents": [
        "4897433683b8adef2c35467a57906d849f400e16"
      ],
      "author": {
        "name": "emscripten-bot",
        "email": "179889221+emscripten-bot@users.noreply.github.com",
        "time": "Sat Aug 29 00:38:21 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 29 00:38:21 2026"
      },
      "message": "Update emsdk version from a05bf070 to 5ec6e692 (#27612)\n\nThis is an automatic change generated by tools/maint/rebaseline_tests.py\n--update-emsdk.\n\nemsdk version updated: a05bf070 \u003d\u003e 5ec6e692\n\nThe following revisions were included in this update:\n\n```\n- 5ec6e692 Roll llvm-project from aa332ae6b0c9 to a7831dcce988 (21 revisions)\n- 3e10efdc Roll binaryen from ece5da21a818 to d03c25ea43d8 (1 revision)\n- 0b7893e9 Roll binaryen from e258ff094873 to ece5da21a818 (1 revision)\n- 882f4906 Roll llvm-project from 0c1af4ee5e05 to aa332ae6b0c9 (55 revisions)\n- 71725e47 Roll binaryen from cce27ed19006 to e258ff094873 (1 revision)\n- b45467a7 Roll llvm-project from c30c4f5cd9d3 to 0c1af4ee5e05 (35 revisions)\n- 69205d63 Roll binaryen from b7c050e02648 to cce27ed19006 (1 revision)\n- 0ccf8a1d Roll v8 from 3dbba7b86bcd to 6c9063bc8bb7 (33 revisions)\n- 484069a4 Roll llvm-project from 959e8e7c74a3 to c30c4f5cd9d3 (38 revisions)\n- 3b88a601 Roll llvm-project from dc222c2de559 to 959e8e7c74a3 (16 revisions)\n- 92eb5a53 Roll binaryen from 876015e45e4f to b7c050e02648 (2 revisions)\n- 44c1b410 Roll emscripten from c60181f926ae to 6c40a2747ca1 (1 revision)\n- 4c89ef8d Roll llvm-project from a69a951450e8 to dc222c2de559 (16 revisions)\n- b07bbaa0 Roll binaryen from 0d962bcb6c1c to 876015e45e4f (1 revision)\n- a8f3a4d2 Roll llvm-project from 68f9f8be6e69 to a69a951450e8 (47 revisions)\n- de3da167 Roll binaryen from 67ac1ab072cd to 0d962bcb6c1c (4 revisions)\n- 0c5d61b9 Roll emscripten from 618713f7edd5 to c60181f926ae (1 revision)\n- 075a349d Roll llvm-project from 6f217343afdb to 68f9f8be6e69 (38 revisions)\n- 9ec599e5 Roll binaryen from 9d6a093095a7 to 67ac1ab072cd (1 revision)\n- 30d3f375 Roll v8 from d8a4c1c5d7cc to 3dbba7b86bcd (33 revisions)\n- f9c13a2c Roll llvm-project from a2ac4f6af958 to 6f217343afdb (40 revisions)\n- c12f104a Roll llvm-project from 646f69cafd20 to a2ac4f6af958 (27 revisions)\n```\n\nFull log:\nhttps://chromium.googlesource.com/emscripten-releases/+log/a05bf070..5ec6e692\n\nThe following (22) test expectation files were updated by\nrunning the tests with `--rebaseline`:\n\n```\ncodesize/test_codesize_cxx_ctors1.json: 153946 \u003d\u003e 153955 [+9 bytes / +0.01%]\ncodesize/test_codesize_cxx_ctors2.json: 153352 \u003d\u003e 153361 [+9 bytes / +0.01%]\ncodesize/test_codesize_cxx_except.json: 200105 \u003d\u003e 200105 [+0 bytes / +0.00%]\ncodesize/test_codesize_cxx_except_wasm.json: 169474 \u003d\u003e 169467 [-7 bytes / -0.00%]\ncodesize/test_codesize_cxx_except_wasm_legacy.json: 167334 \u003d\u003e 167327 [-7 bytes / -0.00%]\ncodesize/test_codesize_cxx_lto.json: 119544 \u003d\u003e 119555 [+11 bytes / +0.01%]\ncodesize/test_codesize_cxx_mangle.json: 266435 \u003d\u003e 266435 [+0 bytes / +0.00%]\ncodesize/test_codesize_cxx_noexcept.json: 155856 \u003d\u003e 155865 [+9 bytes / +0.01%]\ncodesize/test_codesize_cxx_wasmfs.json: 180958 \u003d\u003e 180971 [+13 bytes / +0.01%]\ncodesize/test_codesize_files_wasmfs.json: 63223 \u003d\u003e 63231 [+8 bytes / +0.01%]\ncodesize/test_codesize_hello_O0.json: 38580 \u003d\u003e 38580 [+0 bytes / +0.00%]\ncodesize/test_codesize_hello_dylink.json: 44108 \u003d\u003e 44108 [+0 bytes / +0.00%]\ncodesize/test_codesize_hello_dylink_all.json: 859331 \u003d\u003e 859323 [-8 bytes / -0.00%]\ncodesize/test_codesize_mem_O3_standalone.json: 9140 \u003d\u003e 9140 [+0 bytes / +0.00%]\ncodesize/test_codesize_mem_O3_standalone_narg.json: 8455 \u003d\u003e 8455 [+0 bytes / +0.00%]\ncodesize/test_codesize_mem_O3_standalone_narg_flto.json: 7386 \u003d\u003e 7386 [+0 bytes / +0.00%]\ncodesize/test_codesize_minimal_pthreads.json: 26001 \u003d\u003e 26015 [+14 bytes / +0.05%]\ncodesize/test_codesize_minimal_pthreads_memgrowth.json: 26460 \u003d\u003e 26474 [+14 bytes / +0.05%]\ncodesize/test_minimal_runtime_code_size_audio_worklet.json: 16385 \u003d\u003e 16385 [+0 bytes / +0.00%]\ncodesize/test_minimal_runtime_code_size_random_printf_wasm.json: 11037 \u003d\u003e 11037 [+0 bytes / +0.00%]\ncodesize/test_minimal_runtime_code_size_random_printf_wasm2js.json: 17346 \u003d\u003e 17346 [+0 bytes / +0.00%]\ncodesize/test_unoptimized_code_size.json: 172066 \u003d\u003e 172066 [+0 bytes / +0.00%]\n\nAverage change: +0.01% (-0.00% - +0.05%)\n```\n\nCo-authored-by: emscripten-bot \u003cemscripten-bot@users.noreply.github.com\u003e\nCo-authored-by: Alon Zakai \u003cazakai@google.com\u003e"
    },
    {
      "commit": "4897433683b8adef2c35467a57906d849f400e16",
      "tree": "ab761f85a1b3a75e592fcb93c86ee9c77175b57f",
      "parents": [
        "f4d9d9c500e5925aeb8c38dd67a770841816db66"
      ],
      "author": {
        "name": "Guy Bedford",
        "email": "guybedford@gmail.com",
        "time": "Sat Aug 29 00:38:16 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 29 00:38:16 2026"
      },
      "message": "Mark WASM_BINDGEN as an experimental setting (#27616)\n\nThis marks `-sWASM_BINDGEN` as an experimental setting, since the\nwasm-bindgen integration is still evolving and subject to change.\n\n* Adds the `[experimental]` tag in `settings.js` and an\n`EXPERIMENTAL_SETTINGS` entry, so enabling it now emits the standard\n`-Wexperimental` diagnostic:\n\n```\nemcc: warning: -sWASM_BINDGEN is experimental and subject to change [-Wexperimental]\n```\n\n* Regenerates the settings reference docs and adds a ChangeLog entry."
    },
    {
      "commit": "f4d9d9c500e5925aeb8c38dd67a770841816db66",
      "tree": "ccf54a2c357aa309b93423b128124b90a36fb780",
      "parents": [
        "704da900035b655c8aa3bc98fa42736d1ec28495"
      ],
      "author": {
        "name": "Sam Clegg",
        "email": "sbc@chromium.org",
        "time": "Sat Aug 29 00:25:04 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 29 00:25:04 2026"
      },
      "message": "[bootstrap] Honor EMSDK_NODE in bootstrap.py (#27617)\n\nWhen `EMSDK_NODE` is present in the environment, prepend its directory\nto `PATH` before running bootstrap actions.\n\nBy default, emsdk avoids prepending its own node binary to `PATH` if a\nsystem node is already present in `PATH`. However, bootstrap actions\n(such as `npm ci`) may fail if the system node is an older incompatible\nversion or lacks npm.\n\nSee: #27614"
    },
    {
      "commit": "704da900035b655c8aa3bc98fa42736d1ec28495",
      "tree": "c41fbf2a17fc5d3cda9e34a40514d710b6187863",
      "parents": [
        "92a1d865e63c91afab4f2d1d58d7d66f40f6b662"
      ],
      "author": {
        "name": "Sam Clegg",
        "email": "sbc@chromium.org",
        "time": "Fri Aug 28 23:58:52 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 28 23:58:52 2026"
      },
      "message": "[pylauncher] Use standard main() entry point with hybrid CRT linking (#27618)\n\nSwitch to standard `int main()` entry point in `pylauncher.c` and use\n`/MT` with `/NODEFAULTLIB:libucrt.lib ucrt.lib` in `build.bat`.\n\nThe goal of this change is to make the binaries less likely to trigger\nfalse positive detections from malware scanners and antivirus tools,\nwhich often flag tiny executables compiled with custom entry points\nand without buffer security checks (`/GS-`).\n\nThis links CRT startup code and compiler runtime support statically\n(so buffer security checks `/GS` and cookie initialization are handled\nautomatically by `mainCRTStartup` without custom entrypoint stubs or\n`vcruntime140.dll` dependencies) while dynamically linking against the\nOS-provided `ucrtbase.dll`.\n\nThis increases binary size by ~16-17 KB (total size ~23 KB) compared\nto the previous `/NODEFAULTLIB /GS-` setup, while avoiding the\n~100-300 KB overhead of statically linking the full Universal CRT."
    },
    {
      "commit": "92a1d865e63c91afab4f2d1d58d7d66f40f6b662",
      "tree": "7de9cd832ffd5068b105bdc55337a9c8e3f481db",
      "parents": [
        "259c50c36f7aa5578c38beac9b18f4b4fce4288f"
      ],
      "author": {
        "name": "Sam Clegg",
        "email": "sbc@chromium.org",
        "time": "Fri Aug 28 21:44:33 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 28 21:44:33 2026"
      },
      "message": "[CI] Remove `--enable-experimental-web-platform-features` from chrome flags (#27615)\n\nThis flag was originally added in #16813 to test WasmFS OPFS support,\nwhich has shipped in stable Chrome since version 102.\n\nIn Chrome 154, `--enable-experimental-web-platform-features` enables\n`AudioWorklet.port` (https://crbug.com/446920095). However, Chrome\ncannot deserialize `WebAssembly.Module` over a `MessagePort` into\n`AudioWorkletGlobalScope` (https://crbug.com/40210558).\n\nThis causes Emscripten\u0027s feature check in `src/lib/libwebaudio.js` to\nskip the `em-bootstrap` AudioWorkletProcessor and attempt to transfer\nthe Wasm module over `audioWorklet.port`, triggering a `messageerror`\nand breaking all audio worklet tests in Chrome 154."
    },
    {
      "commit": "259c50c36f7aa5578c38beac9b18f4b4fce4288f",
      "tree": "e64c15f03a0d2e8b2d6238337996bf55c7c1e6b3",
      "parents": [
        "6c40a2747ca1586e7a0aef73781c7f37186f5c5b"
      ],
      "author": {
        "name": "Sam Clegg",
        "email": "sbc@chromium.org",
        "time": "Fri Aug 28 20:47:16 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 28 20:47:16 2026"
      },
      "message": "[pylauncher] Add VERSIONINFO resource file for Windows launcher (#27601)\n\nAdd `tools/pylauncher/pylauncher.rc` containing a `VERSIONINFO` resource\nwith metadata (file description, version, copyright, company) and update\n`build.bat` to compile it with `rc.exe` and link it into\n`pylauncher.exe`.\n\nThis helps properly identify the executable in Windows and reduces\ngeneric heuristic false positive detections from antivirus scanners."
    },
    {
      "commit": "6c40a2747ca1586e7a0aef73781c7f37186f5c5b",
      "tree": "2d61685f6c3fc232b3182daca6dca01179885f89",
      "parents": [
        "c60181f926ae60c68be795b51748e8f85653d364"
      ],
      "author": {
        "name": "Guy Bedford",
        "email": "gbedford@cloudflare.com",
        "time": "Thu Aug 27 04:33:13 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 27 04:33:13 2026"
      },
      "message": "[NODERAWSOCKETS] Bind-first connect for synchronous getsockname (#27566)\n\nThis fixes an ordering issue in the NODERAWSOCKETS TCP client connect\npath.\n\nAn unbound client connect() created a plain async `net.Socket`, with\n`saddr`/`sport` only recorded on the async `\u0027connect\u0027` event, so\n`getsockname()` immediately after a non-blocking `connect()` returned\n`0.0.0.0:0`. Kernel semantics assign the ephemeral source port\nsynchronously at `connect()`, so callers that read the local address\nright after a non-blocking connect raced the event loop (reliably\nfailing under load).\n\n`connect()` on an unbound socket now binds an ephemeral port first,\nthrough the same eager synchronous `bindHandle` path an explicit\n`bind()` takes, then connects through the bound handle:\n\n* `getsockname()` reports the assigned port synchronously after\n`connect()`, matching kernel behavior\n* the local address updates to the real source address once the\nconnection completes, and the port stays stable\n* both bind primitives (public `net.BoundSocket`, or the `tcp_wrap`\nfallback on older node) are synchronous, so this works across node\nversions\n\nTest coverage: `test_noderawsockets_connect_getsockname` asserts the\nephemeral port is non-zero immediately after a non-blocking `connect()`\nreturns, before any event loop turn, and that it is unchanged once\nconnected. The test is plain POSIX and passes natively against the host\nstack.\n\n_Made with AI assistance under my review_"
    },
    {
      "commit": "c60181f926ae60c68be795b51748e8f85653d364",
      "tree": "2a2ec1e2948d92ce079bb9aff7a0e5713bf54f0f",
      "parents": [
        "618713f7edd5038510aca284121187e58a9b4151"
      ],
      "author": {
        "name": "emscripten-bot",
        "email": "179889221+emscripten-bot@users.noreply.github.com",
        "time": "Wed Aug 26 16:56:04 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 26 16:56:04 2026"
      },
      "message": "Update emsdk version from bf14f979 to a05bf070 (#27607)\n\nThis is an automatic change generated by tools/maint/rebaseline_tests.py\n--update-emsdk.\n\nemsdk version updated: bf14f979 \u003d\u003e a05bf070\n\nThe following revisions were included in this update:\n\n```\n- a05bf070 Roll emscripten from 7ee8fcca0331 to 618713f7edd5 (1 revision)\n- 8b9ba9ad Roll llvm-project from 1347901b5358 to 646f69cafd20 (51 revisions)\n- bbf5c97a Roll emscripten from 36feab31ff0f to 7ee8fcca0331 (1 revision)\n- 80d0273a Roll binaryen from c3c30bb9459a to 9d6a093095a7 (1 revision)\n- 212660b9 Roll llvm-project from 9e30a36318c0 to 1347901b5358 (58 revisions)\n- a3b77686 Roll emscripten from 2fb11a0493da to 36feab31ff0f (2 revisions)\n- 3bd474bb Roll binaryen from 3029fbb71739 to c3c30bb9459a (1 revision)\n- e8195cd4 Roll emscripten from 510a74598d4f to 2fb11a0493da (1 revision)\n- be39f6e2 Roll llvm-project from ee82d66261d2 to 9e30a36318c0 (54 revisions)\n- dd20af45 Roll v8 from 12db7cb804c6 to d8a4c1c5d7cc (32 revisions)\n- 2654e382 Roll llvm-project from 145f1447c173 to ee82d66261d2 (39 revisions)\n- 4c3d5c03 Roll llvm-project from 80dfaec65903 to 145f1447c173 (19 revisions)\n- 24ca45e5 Roll emscripten from ef72a4380877 to 510a74598d4f (6 revisions)\n- 43338075 Roll llvm-project from e35b8b991ae5 to 80dfaec65903 (54 revisions)\n- 3b317ed2 Add EMTEST_SKIP_AUTOCONF\n- 951fc891 Roll binaryen from 9af0edf4a78b to 3029fbb71739 (1 revision)\n- 5786681a Roll llvm-project from d1dd066fb3a2 to e35b8b991ae5 (55 revisions)\n- 3bc46097 Roll binaryen from bb0caa3fc547 to 9af0edf4a78b (1 revision)\n- 4c6e0273 Roll emscripten from 100783712d1c to ef72a4380877 (1 revision)\n- 794724c3 Roll llvm-project from afcbd03b9763 to d1dd066fb3a2 (41 revisions)\n- 00b636c7 Roll llvm-project from 4639fa213220 to afcbd03b9763 (10 revisions)\n- 31b3a7c4 Roll v8 from c44b14904a37 to 12db7cb804c6 (4 revisions)\n```\n\nFull log:\nhttps://chromium.googlesource.com/emscripten-releases/+log/bf14f979..a05bf070\n\nThe following (22) test expectation files were updated by\nrunning the tests with `--rebaseline`:\n\n```\ncodesize/test_codesize_cxx_ctors1.json: 153959 \u003d\u003e 153946 [-13 bytes / -0.01%]\ncodesize/test_codesize_cxx_ctors2.json: 153365 \u003d\u003e 153352 [-13 bytes / -0.01%]\ncodesize/test_codesize_cxx_except.json: 200109 \u003d\u003e 200105 [-4 bytes / -0.00%]\ncodesize/test_codesize_cxx_except_wasm.json: 169471 \u003d\u003e 169474 [+3 bytes / +0.00%]\ncodesize/test_codesize_cxx_except_wasm_legacy.json: 167331 \u003d\u003e 167334 [+3 bytes / +0.00%]\ncodesize/test_codesize_cxx_lto.json: 119555 \u003d\u003e 119544 [-11 bytes / -0.01%]\ncodesize/test_codesize_cxx_mangle.json: 266439 \u003d\u003e 266435 [-4 bytes / -0.00%]\ncodesize/test_codesize_cxx_noexcept.json: 155869 \u003d\u003e 155856 [-13 bytes / -0.01%]\ncodesize/test_codesize_cxx_wasmfs.json: 180975 \u003d\u003e 180958 [-17 bytes / -0.01%]\ncodesize/test_codesize_files_wasmfs.json: 63231 \u003d\u003e 63223 [-8 bytes / -0.01%]\ncodesize/test_codesize_hello_O0.json: 38586 \u003d\u003e 38580 [-6 bytes / -0.02%]\ncodesize/test_codesize_hello_dylink.json: 44112 \u003d\u003e 44108 [-4 bytes / -0.01%]\ncodesize/test_codesize_hello_dylink_all.json: 859157 \u003d\u003e 859331 [+174 bytes / +0.02%]\ncodesize/test_codesize_mem_O3_standalone.json: 9140 \u003d\u003e 9140 [+0 bytes / +0.00%]\ncodesize/test_codesize_mem_O3_standalone_narg.json: 8455 \u003d\u003e 8455 [+0 bytes / +0.00%]\ncodesize/test_codesize_mem_O3_standalone_narg_flto.json: 7386 \u003d\u003e 7386 [+0 bytes / +0.00%]\ncodesize/test_codesize_minimal_pthreads.json: 26015 \u003d\u003e 26001 [-14 bytes / -0.05%]\ncodesize/test_codesize_minimal_pthreads_memgrowth.json: 26474 \u003d\u003e 26460 [-14 bytes / -0.05%]\ncodesize/test_minimal_runtime_code_size_audio_worklet.json: 16389 \u003d\u003e 16385 [-4 bytes / -0.02%]\ncodesize/test_minimal_runtime_code_size_random_printf_wasm.json: 11050 \u003d\u003e 11037 [-13 bytes / -0.12%]\ncodesize/test_minimal_runtime_code_size_random_printf_wasm2js.json: 17354 \u003d\u003e 17346 [-8 bytes / -0.05%]\ncodesize/test_unoptimized_code_size.json: 172084 \u003d\u003e 172066 [-18 bytes / -0.01%]\n\nAverage change: -0.02% (-0.12% - +0.02%)\n```\n\nCo-authored-by: emscripten-bot \u003cemscripten-bot@users.noreply.github.com\u003e"
    },
    {
      "commit": "618713f7edd5038510aca284121187e58a9b4151",
      "tree": "4a95177efe21d19dd1fa42b39ebd95d043214a4d",
      "parents": [
        "7ee8fcca0331b9b892a00c9ad54588a0f793a783"
      ],
      "author": {
        "name": "Sam Clegg",
        "email": "sbc@chromium.org",
        "time": "Tue Aug 25 23:53:21 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 25 23:53:21 2026"
      },
      "message": "[CI] Move x86 Windows launcher build job to GitHub Actions (#27606)\n\nMove the `build-windows-launcher` job from CircleCI to GitHub Actions\n(`build-pylauncher-x64`), matching the existing ARM64 launcher build\njob. Remove `build-windows-launcher` from `.circleci/config.yml` and\ndelete the unused `.circleci/setup_vs2022.bat`."
    },
    {
      "commit": "7ee8fcca0331b9b892a00c9ad54588a0f793a783",
      "tree": "c4af24b306e6281fd31a80d2a267b33a90d579ed",
      "parents": [
        "36feab31ff0f5141e078241373d1f09f8c80e4a8"
      ],
      "author": {
        "name": "Brendan Dahl",
        "email": "brendan.dahl@gmail.com",
        "time": "Tue Aug 25 22:01:34 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 25 22:01:34 2026"
      },
      "message": "Force __cxa_can_catch in LTO with exceptions (#27578)\n\nDuring LTO code generation, the LLVM backend lowers Emscripten exception\nhandling into calls to __cxa_find_matching_catch_N, which is provided by\nJS library code and requires __cxa_can_catch from libc++abi.\n\nBecause libc++abi is an archive of bitcode files in LTO builds,\n__cxa_can_catch is not extracted before LTO codegen unless explicitly\nreferenced, leading to undefined symbol errors.\n\nThis is needed after the changes to [wasm-ld\nland](https://github.com/llvm/llvm-project/pull/217774)."
    },
    {
      "commit": "36feab31ff0f5141e078241373d1f09f8c80e4a8",
      "tree": "1954508c8e760d63487b165635956b5399d2f46a",
      "parents": [
        "aa768260f1b9ef126fb100279c042ed4751aeec8"
      ],
      "author": {
        "name": "Thomas Steiner",
        "email": "tomac@google.com",
        "time": "Tue Aug 25 19:24:25 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 25 19:24:25 2026"
      },
      "message": "Use streaming compilation on both Cross-Origin Storage paths (#27609)\n\nFollow-up to #27066. The Cross-Origin Storage integration read the\nmodule into an `ArrayBuffer` on both the cache-hit and cache-miss paths\nand called `WebAssembly.instantiate()`, so enabling\n`-sCROSS_ORIGIN_STORAGE` lost the download/compile overlap of the\nstandard `instantiateStreaming()` path. Every first-visit user hit the\nslower miss path. (Thanks to @reillyeon for spotting this in\nWICG/cross-origin-storage#74.)\n\n**Cache hit:** `handle.getFile().stream()` is wrapped in a `Response`\nwith an `application/wasm` content type and passed to\n`instantiateStreaming()`. The bytes were hash-verified when written into\nCOS, so the fixed type is safe.\n\n**Cache miss:** the fetch body is `tee()`\u0027d. One branch goes to\n`instantiateStreaming()` immediately; the other is `pipeTo()`\u0027d into the\nCOS writable in the background (`pipeTo()` closes the writable, and COS\nverifies the hash on close). If the store fails before consuming, the\ntee branch is cancelled so the body is not buffered indefinitely.\n\nThe server\u0027s MIME type is deliberately not forwarded on the miss path:\nthe standard path recovers from a bad MIME type by re-downloading, but\nhere the store branch is already consuming the body. A wrong file still\nfails compilation and falls through to the standard path as before. A\nnon-OK response now throws early rather than being handed to the\ncompiler.\n\nDocs, the custom `Module[\u0027instantiateWasm\u0027]` example, and the ChangeLog\nare updated to match. No test changes: the existing\n`test_cross_origin_storage_*` browser tests exercise both paths and the\ninstrumentation callbacks fire at the same points."
    },
    {
      "commit": "aa768260f1b9ef126fb100279c042ed4751aeec8",
      "tree": "5952284d2e0342ee05fe063209929351bb92f616",
      "parents": [
        "2fb11a0493dac4ea03bae8aa7f7a6b0ee12e3452"
      ],
      "author": {
        "name": "Sam Clegg",
        "email": "sbc@chromium.org",
        "time": "Tue Aug 25 19:21:32 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 25 19:21:32 2026"
      },
      "message": "Add `getpass` to libc build (#27605)\n\nInclude `getpass.c` in libc and ensure `getpass()` works correctly\nat least under Node.js.\n\nThis includes two bugfixes needed to make `getpass()` work:\n1. In `libtty.js`: In canonical mode (`ICANON`), make `read` return as\n   soon as a newline character (`\\n`) is encountered.\n2. In `libnoderawfs.js`: Properly mark TTY streams as non-seekable when\n   opened via `FS.open`, and remove hardcoded `seekable: false` from\n   standard stream creation.\n\nSee: #27583"
    },
    {
      "commit": "2fb11a0493dac4ea03bae8aa7f7a6b0ee12e3452",
      "tree": "072550bd67b724059f88a18fa809c3417b304a36",
      "parents": [
        "510a74598d4f8b2a34b578b64399c8436ea5f57a"
      ],
      "author": {
        "name": "Sam Clegg",
        "email": "sbc@chromium.org",
        "time": "Tue Aug 25 15:59:55 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 25 15:59:55 2026"
      },
      "message": "[test] Simplify `test_glfw_events.c` using `assert()` (#27604)\n\nReplace manual `g_state` bitmask failure tracking with direct `assert()`\nchecks in callbacks and the test runner loop.\n\nFollowup to  #27597"
    },
    {
      "commit": "510a74598d4f8b2a34b578b64399c8436ea5f57a",
      "tree": "26fe70235f853047e5fc8e057ee010edac8c36a7",
      "parents": [
        "f61e35fe2c76105fc46bba865d61a46fe87f20c4"
      ],
      "author": {
        "name": "Sam Clegg",
        "email": "sbc@chromium.org",
        "time": "Mon Aug 24 19:59:44 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 24 19:59:44 2026"
      },
      "message": "[test] Fix error reporting and revert key events in `test_glfw_events.c` (#27597)\n\nIn #22915 I inadvertently broke this test but it went unnoticed because\nthe error reporting was broken.\n\nThis change reverts `test_glfw_events.c` to use `injectKeyEvent` via\n`EM_ASM` instead of trying to use `fake_events.js` (which is not\nflexible\nenough yet for this test).\n\nAlso fix the error reporting and add `test_success` and `test_fail`\nhelpers the help keep it simple."
    },
    {
      "commit": "f61e35fe2c76105fc46bba865d61a46fe87f20c4",
      "tree": "9db1e24ced10eb4c284fcccc5529fea2d87b7be2",
      "parents": [
        "544e1ed11ae5a52969ee93ec3e0031f2bbd94e32"
      ],
      "author": {
        "name": "Sam Clegg",
        "email": "sbc@chromium.org",
        "time": "Mon Aug 24 19:59:22 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 24 19:59:22 2026"
      },
      "message": "Remove `-fwrapv-pointer` from SDL2 build. NFC (#27595)\n\nThis should have been removed in #24912."
    },
    {
      "commit": "544e1ed11ae5a52969ee93ec3e0031f2bbd94e32",
      "tree": "d73b07419ba1cce53739a127ae10edc648899ba0",
      "parents": [
        "9767960a030fcfd223bd51e8288730677f07327e"
      ],
      "author": {
        "name": "Sam Clegg",
        "email": "sbc@chromium.org",
        "time": "Mon Aug 24 16:42:10 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 24 16:42:10 2026"
      },
      "message": "Add a simple autoconf test. NFC (#27591)\n\nWe have larger autoconf tests but its good to have a small unit test to\ntest specific things.\n\nSee #27583"
    },
    {
      "commit": "9767960a030fcfd223bd51e8288730677f07327e",
      "tree": "06ecb1709fd0bfed14d3e36a06fc993cf2fababc",
      "parents": [
        "61495d4ef5b4fcbcba8f1602dd3406762fdb3e38"
      ],
      "author": {
        "name": "Derek Schuff",
        "email": "dschuff@chromium.org",
        "time": "Mon Aug 24 16:37:00 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 24 16:37:00 2026"
      },
      "message": "Update test_export_global_address (#27587)\n\nAdd more cases to cover functions as well as variables.\nAlso switch to C++ and check that exports use the linkage name."
    },
    {
      "commit": "61495d4ef5b4fcbcba8f1602dd3406762fdb3e38",
      "tree": "1f9afb0d2f9f032a0a380f1344c8a78f83b96fb5",
      "parents": [
        "46ff19a4db7412e90391103c332096894f3b30a9"
      ],
      "author": {
        "name": "Sam Clegg",
        "email": "sbc@chromium.org",
        "time": "Mon Aug 24 15:41:47 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 24 15:41:47 2026"
      },
      "message": "[noderawfs] Support TTY ioctls and add `test_ioctl_termios_noderawfs` (#27602)\n\nSet `stream.tty` to a TTY device object with `TTY.default_tty_ops` when\n`nodeTTY.isatty(nfd)` is true, allowing termios and window size ioctls\n(`TCGETS`, `TCSETS`, `TIOCGWINSZ`) to work under `NODERAWFS`.\n\nAdd `test_ioctl_termios_noderawfs` to `test/test_other.py`.\n\nSee: #22264"
    },
    {
      "commit": "46ff19a4db7412e90391103c332096894f3b30a9",
      "tree": "b766cce8f69f073dde37cd73641ae719a86d4fac",
      "parents": [
        "ef72a43808773bf90388cfa438a27342ebdb82c5"
      ],
      "author": {
        "name": "Sam Clegg",
        "email": "sbc@chromium.org",
        "time": "Mon Aug 24 15:38:01 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 24 15:38:01 2026"
      },
      "message": "Remove explicit `-sUSE_SDL\u003d0` when build sdl2/sdl3 ports. (#27594)\n\nThis should have been remove in #18443."
    },
    {
      "commit": "ef72a43808773bf90388cfa438a27342ebdb82c5",
      "tree": "e3aca7c0aef692258f0d5bfcba536994a54cca06",
      "parents": [
        "100783712d1c2f530446332722ed09a727c90c4c"
      ],
      "author": {
        "name": "emscripten-bot",
        "email": "179889221+emscripten-bot@users.noreply.github.com",
        "time": "Mon Aug 24 14:52:02 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 24 14:52:02 2026"
      },
      "message": "Update emsdk version from f3956940 to bf14f979 (#27603)\n\nThis is an automatic change generated by tools/maint/rebaseline_tests.py\n--update-emsdk.\n\nemsdk version updated: f3956940 \u003d\u003e bf14f979\n\nThe following revisions were included in this update:\n\n```\n- bf14f979 Roll llvm-project from 1f7bed0859cb to 4639fa213220 (3 revisions)\n- ecda095a Roll llvm-project from e124e312e22b to 1f7bed0859cb (4 revisions)\n- 4bae8397 Roll emscripten from a04d0beef36b to 100783712d1c (1 revision)\n- ec33b985 Roll llvm-project from a92b65bbd980 to e124e312e22b (7 revisions)\n- 40208a9c Roll llvm-project from 62b1dce2e660 to a92b65bbd980 (7 revisions)\n- 382e96df Roll llvm-project from f75f48e3ce41 to 62b1dce2e660 (14 revisions)\n```\n\nFull log:\nhttps://chromium.googlesource.com/emscripten-releases/+log/f3956940..bf14f979\n\nCo-authored-by: emscripten-bot \u003cemscripten-bot@users.noreply.github.com\u003e"
    },
    {
      "commit": "100783712d1c2f530446332722ed09a727c90c4c",
      "tree": "fb3eb1e3815c39b5e294ce82d653af24cab39ed9",
      "parents": [
        "a04d0beef36bfa7661cee4b8dff7d3909303dabc"
      ],
      "author": {
        "name": "emscripten-bot",
        "email": "179889221+emscripten-bot@users.noreply.github.com",
        "time": "Sun Aug 23 16:42:19 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Aug 23 16:42:19 2026"
      },
      "message": "Update emsdk version from abf420c8 to f3956940 (#27599)\n\nThis is an automatic change generated by tools/maint/rebaseline_tests.py\n--update-emsdk.\n\nemsdk version updated: abf420c8 \u003d\u003e f3956940\n\nThe following revisions were included in this update:\n\n```\n- f3956940 Roll llvm-project from 6e2ed23e1189 to f75f48e3ce41 (9 revisions)\n- 7c57716e Roll v8 from 02077f02e0f1 to c44b14904a37 (1 revision)\n- 5deb559e Roll llvm-project from 1411f47e2297 to 6e2ed23e1189 (17 revisions)\n- 08c13658 Roll llvm-project from 0d18bb67d106 to 1411f47e2297 (9 revisions)\n- bada95ed Roll emscripten from fd13fb0e6b82 to a04d0beef36b (1 revision)\n- 3360e9a2 Roll llvm-project from 2a9b623c95d6 to 0d18bb67d106 (13 revisions)\n- 9ec6af20 Roll llvm-project from 55de668108bc to 2a9b623c95d6 (21 revisions)\n```\n\nFull log:\nhttps://chromium.googlesource.com/emscripten-releases/+log/abf420c8..f3956940\n\nCo-authored-by: emscripten-bot \u003cemscripten-bot@users.noreply.github.com\u003e"
    },
    {
      "commit": "a04d0beef36bfa7661cee4b8dff7d3909303dabc",
      "tree": "1467182f722c1e666a537bdf34033b13e6963f00",
      "parents": [
        "fd13fb0e6b82137e346c2474ed76e8ec9518497b"
      ],
      "author": {
        "name": "emscripten-bot",
        "email": "179889221+emscripten-bot@users.noreply.github.com",
        "time": "Sat Aug 22 17:20:58 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 22 17:20:58 2026"
      },
      "message": "Update emsdk version from 154c6bf4 to abf420c8 (#27596)\n\nThis is an automatic change generated by tools/maint/rebaseline_tests.py\n--update-emsdk.\n\nemsdk version updated: 154c6bf4 \u003d\u003e abf420c8\n\nThe following revisions were included in this update:\n\n```\n- abf420c8 Roll llvm-project from 44e448476ee3 to 55de668108bc (31 revisions)\n- d8b5017e Roll emscripten from cc7c408bf747 to fd13fb0e6b82 (3 revisions)\n- 583af00f Roll binaryen from b899ca2f4c4b to bb0caa3fc547 (2 revisions)\n- 94ff0e9b Roll emscripten from a16643b3598c to cc7c408bf747 (1 revision)\n- 598393f8 Roll binaryen from 9b86340f97dd to b899ca2f4c4b (1 revision)\n- b926d565 Roll v8 from f7e0458d30f7 to 02077f02e0f1 (34 revisions)\n- daf77287 Roll llvm-project from 4ccc07bc4d10 to 44e448476ee3 (53 revisions)\n- f75abb77 Roll emscripten from d0d3829af0bc to a16643b3598c (1 revision)\n- 59fa333a Roll binaryen from 93c3dbf34215 to 9b86340f97dd (3 revisions)\n- fa27d6ec Roll binaryen from 3fe6a5fe0cc3 to 93c3dbf34215 (1 revision)\n- e692c6fb Roll llvm-project from 05bd2d911ece to 4ccc07bc4d10 (41 revisions)\n- dac4bfc6 Roll binaryen from 02cb86f52e94 to 3fe6a5fe0cc3 (2 revisions)\n- a63b04a7 Roll llvm-project from f6ea145aa8e8 to 05bd2d911ece (52 revisions)\n```\n\nFull log:\nhttps://chromium.googlesource.com/emscripten-releases/+log/154c6bf4..abf420c8\n\nThe following (4) test expectation files were updated by\nrunning the tests with `--rebaseline`:\n\n```\ncodesize/test_codesize_hello_dylink_all.json: 858893 \u003d\u003e 858886 [-7 bytes / -0.00%]\ncodesize/test_minimal_runtime_code_size_hello_webgl2_wasm2js.json: 18559 \u003d\u003e 18313 [-246 bytes / -1.33%]\ncodesize/test_minimal_runtime_code_size_hello_webgl_wasm2js.json: 18085 \u003d\u003e 17840 [-245 bytes / -1.35%]\ncodesize/test_minimal_runtime_code_size_random_printf_wasm2js.json: 17413 \u003d\u003e 17354 [-59 bytes / -0.34%]\n\nAverage change: -0.75% (-1.35% - -0.00%)\n```\n\nCo-authored-by: emscripten-bot \u003cemscripten-bot@users.noreply.github.com\u003e"
    },
    {
      "commit": "fd13fb0e6b82137e346c2474ed76e8ec9518497b",
      "tree": "119491b5ac5abcc5ff995e988664a2cfd6bc7ada",
      "parents": [
        "1c63bdb82ed5519b93f754fc32ea5773ea508418"
      ],
      "author": {
        "name": "Guy Bedford",
        "email": "gbedford@cloudflare.com",
        "time": "Sat Aug 22 01:27:02 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 22 01:27:02 2026"
      },
      "message": "Remove unnecessary try/catch guards in NODERAWSOCKETS backend (#27351)\n\nThis trims the try/catch guards in the `-sNODERAWSOCKETS` backend down\nto those that are actually needed on Node 18+.\n\nMost of the removed guards wrapped public `net.Socket` / `net.Server`\nstream methods (pause/resume/destroy/end/setNoDelay/setKeepAlive, server\nclose, dgram disconnect) that never throw in the states they are called.\nThe remaining catches all serve a real purpose: translating a Node throw\ninto a POSIX errno, guarding a private (process.binding) or capability\nAPI, or handling a dgram double-close.\n\nWhile here, out-of-range UDP `setsockopt` values (e.g.\n`IP_MULTICAST_TTL\u003d300`) now return `EINVAL` instead of being silently\nswallowed. Both the public dgram path (throws) and the udp_wrap fallback\npath (negative libuv code) are handled, and a rejected value is dropped\nso it neither takes effect nor re-fails a later option replay.\n\ntest_udp_sockopts.c is extended: an out-of-range set now asserts EINVAL\nand a subsequent valid set still succeeds.\n\n_Made with AI assistance, under my review._"
    },
    {
      "commit": "1c63bdb82ed5519b93f754fc32ea5773ea508418",
      "tree": "1cb5f2cf496d031d283522cec351534219223afb",
      "parents": [
        "0dc8f19fbf1fa6686935249b786432396e148666"
      ],
      "author": {
        "name": "emscripten-bot",
        "email": "179889221+emscripten-bot@users.noreply.github.com",
        "time": "Sat Aug 22 01:00:45 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 22 01:00:45 2026"
      },
      "message": "Update emsdk version from 72e0689c to 154c6bf4 (#27584)\n\nThis is an automatic change generated by tools/maint/rebaseline_tests.py\n--update-emsdk.\n\nemsdk version updated: 72e0689c \u003d\u003e 154c6bf4\n\nThe following revisions were included in this update:\n\n```\n- 154c6bf4 Roll llvm-project from 22c13f6db8c9 to f6ea145aa8e8 (84 revisions)\n- 6c74d67a Roll emscripten from 52b64990f58d to d0d3829af0bc (3 revisions)\n- 74bec79e Roll binaryen from 0af42fada13d to 02cb86f52e94 (3 revisions)\n- 250c24cf Roll emscripten from 5730b7ce0fa0 to 52b64990f58d (1 revision)\n- 0ef1484c Roll binaryen from 7836ed6eb3a8 to 0af42fada13d (2 revisions)\n- 0463ab3e Roll emscripten from f617615dd99c to 5730b7ce0fa0 (1 revision)\n- 42683c9b Roll llvm-project from c0125a7bf833 to 22c13f6db8c9 (74 revisions)\n- 165ec013 Roll v8 from d9740b53ddd6 to f7e0458d30f7 (46 revisions)\n- c6eeb6b9 Roll binaryen from 8d546dc4aea1 to 7836ed6eb3a8 (1 revision)\n- 20cefccc Roll emscripten from aeb67926e7de to f617615dd99c (1 revision)\n- 752637bd Fix PATH in trigger_emsdk_release.py\n- 9d70dbe8 Version 6.0.8 RC\n- c2c018ef Roll llvm-project from 020fe197085a to c0125a7bf833 (35 revisions)\n- dda523fc Roll llvm-project from 1c794fbafafe to 020fe197085a (23 revisions)\n- 749e8a17 Roll binaryen from 89a81ef9b72e to 8d546dc4aea1 (2 revisions)\n```\n\nFull log:\nhttps://chromium.googlesource.com/emscripten-releases/+log/72e0689c..154c6bf4\n\nThe following (4) test expectation files were updated by\nrunning the tests with `--rebaseline`:\n\n```\ncodesize/test_codesize_cxx_lto.json: 119546 \u003d\u003e 119539 [-7 bytes / -0.01%]\ncodesize/test_codesize_hello_dylink_all.json: 858884 \u003d\u003e 858893 [+9 bytes / +0.00%]\ncodesize/test_codesize_minimal_pthreads.json: 26016 \u003d\u003e 26015 [-1 bytes / -0.00%]\ncodesize/test_codesize_minimal_pthreads_memgrowth.json: 26475 \u003d\u003e 26474 [-1 bytes / -0.00%]\n\nAverage change: -0.00% (-0.01% - +0.00%)\n```\n\nCo-authored-by: emscripten-bot \u003cemscripten-bot@users.noreply.github.com\u003e"
    },
    {
      "commit": "0dc8f19fbf1fa6686935249b786432396e148666",
      "tree": "5b6a4bba1d802b742fbf467e38f0a62acba010bc",
      "parents": [
        "cc7c408bf747c6d96f9e7e8b44cddc98701eb9fe"
      ],
      "author": {
        "name": "Brendan Dahl",
        "email": "brendan.dahl@gmail.com",
        "time": "Fri Aug 21 23:59:53 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 21 23:59:53 2026"
      },
      "message": "Upgrade TypeScript to v7. (#27571)\n\nThe behavior of TypeScript\u0027s `--emitDeclarationOnly` mode has changed in\nv7 which caused some changes to the definitions that Emscripten outputs\nnow."
    },
    {
      "commit": "cc7c408bf747c6d96f9e7e8b44cddc98701eb9fe",
      "tree": "6120b2777d51e69a173c4a5bf7d8b1f5b2bed48f",
      "parents": [
        "a16643b3598cd00737c4d9e4d44dcf9b0bc68de0"
      ],
      "author": {
        "name": "Sam Clegg",
        "email": "sbc@chromium.org",
        "time": "Fri Aug 21 21:36:44 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 21 21:36:44 2026"
      },
      "message": "[CI] Fix test_other after #27579 (#27586)"
    },
    {
      "commit": "a16643b3598cd00737c4d9e4d44dcf9b0bc68de0",
      "tree": "f06ee1639f99ad2b8805e0f9b9e71906ed077841",
      "parents": [
        "d0d3829af0bc890b7eaacae2fdc89ce801c08fbd"
      ],
      "author": {
        "name": "Thomas Steiner",
        "email": "tomac@google.com",
        "time": "Fri Aug 21 19:42:02 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 21 19:42:02 2026"
      },
      "message": "Fix stale requestFileHandles() call in Cross-Origin Storage docs (#27585)\n\nThe `instantiateWasm` example in\n`site/source/docs/compiling/CrossOriginStorage.rst` called\n`navigator.crossOriginStorage.requestFileHandles(cosHash)` with a bare\nhash and then treated the result as a single `FileSystemFileHandle`\n(`.then(handle \u003d\u003e handle.getFile())`).\n\nThe API is `requestFileHandle()` (singular). The plural form was an\nearly draft that took an array of hashes and returned an array of\nhandles; it was [removed in favor of the singular\nform](https://github.com/WICG/cross-origin-storage/issues/61). The rest\nof this document — and the actual implementation in `src/preamble.js` —\nalready use the singular form, so this example was the only stale call\nsite.\n\nDocs-only, one line."
    },
    {
      "commit": "d0d3829af0bc890b7eaacae2fdc89ce801c08fbd",
      "tree": "ec26d2d29ab05eb4fb2d0bcf70db72d47aff0644",
      "parents": [
        "badaa0e498230247478005a46aa73d3c73e0a23d"
      ],
      "author": {
        "name": "Sam Clegg",
        "email": "sbc@chromium.org",
        "time": "Thu Aug 20 23:39:25 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 20 23:39:25 2026"
      },
      "message": "Support both legacy and non-legacy EH in ports (#27579)\n\nSplit out from #27575"
    },
    {
      "commit": "badaa0e498230247478005a46aa73d3c73e0a23d",
      "tree": "831577ebe1aed652d240b2b8a9209de09f887a4b",
      "parents": [
        "b9fba9833cebc923352660eb9f2fd6c415218499"
      ],
      "author": {
        "name": "Sam Clegg",
        "email": "sbc@chromium.org",
        "time": "Thu Aug 20 23:37:44 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 20 23:37:44 2026"
      },
      "message": "[CI] Pin bun version 1.3.14 for testing (#27581)\n\nSee https://github.com/emscripten-core/emscripten/issues/27580"
    },
    {
      "commit": "b9fba9833cebc923352660eb9f2fd6c415218499",
      "tree": "c4ad9ab5b0e97fd07947293304d791c0ee5fe5df",
      "parents": [
        "52b64990f58dffc6566df84bcff2743bcc2a4c0a"
      ],
      "author": {
        "name": "Brendan Dahl",
        "email": "brendan.dahl@gmail.com",
        "time": "Thu Aug 20 23:30:33 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 20 23:30:33 2026"
      },
      "message": "Do not cache JS output when warnings occur (#27577)\n\nWarnings emitted during JS library compilation are printed to stderr and\nnot stored in the cache. Hitting the cache on subsequent builds\nsuppresses these warnings.\n\nDo not cache the generated JavaScript output if warnings occurred so\nthat subsequent builds will recompile and emit the warnings."
    },
    {
      "commit": "52b64990f58dffc6566df84bcff2743bcc2a4c0a",
      "tree": "639d2025029cb767204636cec767f4329a9db034",
      "parents": [
        "5730b7ce0fa08e8aa96ead26ff640f6dae475310"
      ],
      "author": {
        "name": "Sam Clegg",
        "email": "sbc@chromium.org",
        "time": "Thu Aug 20 22:32:22 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 20 22:32:22 2026"
      },
      "message": "Covert a couple of EH tests to @parameterize. NFC (#27576)\n\nSplit out from #27575"
    },
    {
      "commit": "5730b7ce0fa08e8aa96ead26ff640f6dae475310",
      "tree": "a2205597275ae24b6e8bd9e2dfeebefa95e94d35",
      "parents": [
        "f617615dd99cda4fc1fd05b22cddbcf9b5487600"
      ],
      "author": {
        "name": "emscripten-bot",
        "email": "179889221+emscripten-bot@users.noreply.github.com",
        "time": "Thu Aug 20 18:21:32 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 20 18:21:32 2026"
      },
      "message": "Mark 6.0.8 as released (#27574)\n\nCo-authored-by: emscripten-bot \u003cemscripten-bot@users.noreply.github.com\u003e"
    },
    {
      "commit": "f617615dd99cda4fc1fd05b22cddbcf9b5487600",
      "tree": "55537efe0f0d9eebdd5ec1174800c0f873c1a47a",
      "parents": [
        "aeb67926e7de656da38bc807d83050af93578758"
      ],
      "author": {
        "name": "emscripten-bot",
        "email": "179889221+emscripten-bot@users.noreply.github.com",
        "time": "Thu Aug 20 15:32:37 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 20 15:32:37 2026"
      },
      "message": "Update emsdk version from 8aa5e86c to 72e0689c (#27573)\n\nThis is an automatic change generated by tools/maint/rebaseline_tests.py\n--update-emsdk.\n\nemsdk version updated: 8aa5e86c \u003d\u003e 72e0689c\n\nThe following revisions were included in this update:\n\n```\n- 72e0689c Roll llvm-project from 4bfd08c2d769 to 1c794fbafafe (25 revisions)\n- 1aa74b7a Roll emscripten from 1e0f2af79703 to aeb67926e7de (1 revision)\n- 0c744bea Roll binaryen from daf26d2edc10 to 89a81ef9b72e (2 revisions)\n- 541beb78 Roll emscripten from 2c4b1817d215 to 1e0f2af79703 (3 revisions)\n- 14c0a7bd Roll binaryen from b8c151259b34 to daf26d2edc10 (1 revision)\n- b02156e2 Roll llvm-project from 9715eb993dce to 4bfd08c2d769 (52 revisions)\n- a2c23b4c Roll emscripten from 1b1481ce9e01 to 2c4b1817d215 (2 revisions)\n- 29c0aa82 Roll emscripten from 77dc595f2954 to 1b1481ce9e01 (3 revisions)\n- 4f2fac0c Roll llvm-project from 5f6a32ee292e to 9715eb993dce (60 revisions)\n- 7cdf180f Roll v8 from 0fff700c2de2 to d9740b53ddd6 (68 revisions)\n- 601b794e Simplify `RevisionModifiesFile` to use `git show`\n```\n\nFull log:\nhttps://chromium.googlesource.com/emscripten-releases/+log/8aa5e86c..72e0689c\n\nCo-authored-by: emscripten-bot \u003cemscripten-bot@users.noreply.github.com\u003e"
    },
    {
      "commit": "aeb67926e7de656da38bc807d83050af93578758",
      "tree": "c7a87fc34a4a4e2298b4c589172331d7357ef90d",
      "parents": [
        "1e0f2af7970344661e447e0137e1330deeef3b52"
      ],
      "author": {
        "name": "Sam Clegg",
        "email": "sbc@chromium.org",
        "time": "Thu Aug 20 00:23:29 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 20 00:23:29 2026"
      },
      "message": "Mark WASM_BIGINT as deprecated (#27558)\n\nWith the minimum Safari version bumped to 15 in #27542, WebAssembly\nBigInt integration (`WASM_BIGINT`) is now standard and enabled by\ndefault across all supported engines. The only remaining use case\nfor disabling it is internally for `WASM2JS` (`-sWASM\u003d0`).\n\nUsers should no longer set `-sWASM_BIGINT` directly, so mark\n`WASM_BIGINT` as deprecated."
    },
    {
      "commit": "1e0f2af7970344661e447e0137e1330deeef3b52",
      "tree": "cf025e02ff2c93b6dab21feb73f451a3a69e156a",
      "parents": [
        "9bd5aa27a5d18136b09c005dbba5f75327d67579"
      ],
      "author": {
        "name": "Sam Clegg",
        "email": "sbc@chromium.org",
        "time": "Wed Aug 19 22:44:48 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 19 22:44:48 2026"
      },
      "message": "Remove SOCKET_WEBRTC socket backend and dependencies (#27367)\n\nRemove `-sSOCKET_WEBRTC` setting along with its vendored third-party\ndependencies `third_party/socket.io.js` (Socket.IO client v0.9.11) and\n`third_party/wrtcp.js` (experimental WebRTC P2P broker from 2012).\n\n`SOCKET_WEBRTC` has long been marked as untested and potentially broken\nin `src/settings.js`, and has no test coverage in the test suite.\nFurthermore, the underlying libraries depend on obsolete protocol\nversions, vendor-prefixed WebRTC constructors, and a hardcoded STUN\nserver IP address.\n\n`-sSOCKET_WEBRTC\u003d0` is moved to `LEGACY_SETTINGS` for backwards\ncompatibility, while passing `-sSOCKET_WEBRTC\u003d1` will now produce a\nclear error.\n\nFixes: #27366"
    },
    {
      "commit": "9bd5aa27a5d18136b09c005dbba5f75327d67579",
      "tree": "3fc7d6e9ecec711e4c732a865323d4b9d7f6fe97",
      "parents": [
        "ddff96a72b6f50c63786d7d76ed62a3f1db97ff2"
      ],
      "author": {
        "name": "Sam Clegg",
        "email": "sbc@chromium.org",
        "time": "Wed Aug 19 21:29:56 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 19 21:29:56 2026"
      },
      "message": "Simplify handling of `--bigint` in `finalize_wasm`. NFC (#27570)\n\nIn `wasm-emscripten-finalize`, both `--bigint` and\n`--no-legalize-javascript-ffi` have the exact same effect: they prevent\nrunning the `legalize-js-interface` pass (`if (!bigInt \u0026\u0026\nlegalizeJavaScriptFFI)`).\n\nPreviously, when `WASM_BIGINT` was enabled, Emscripten was passing both\n`--bigint` and `--no-legalize-javascript-ffi`. In addition, when\n`AUTODEBUG` was enabled, `--bigint` was appended a second time.\n\nConsolidate the check so `--bigint` is passed once when either\n`WASM_BIGINT` or `AUTODEBUG` is enabled, and remove the redundant\n`--no-legalize-javascript-ffi` flag.\n\nSplit out from #27558."
    },
    {
      "commit": "ddff96a72b6f50c63786d7d76ed62a3f1db97ff2",
      "tree": "ee778843d0835ce51dd5739726b2d862fc7b05e0",
      "parents": [
        "2c4b1817d2153a2af03f26abca61ee4d535831ec"
      ],
      "author": {
        "name": "Sam Clegg",
        "email": "sbc@chromium.org",
        "time": "Wed Aug 19 19:57:43 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 19 19:57:43 2026"
      },
      "message": "Move `LEGALIZE_JS_FFI` to legacy settings list (#27568)\n\nMove `LEGALIZE_JS_FFI` to `LEGACY_SETTINGS` (accepting only `0` for\nbackwards compatibility). JS FFI legalization is no longer needed under\nthe default `WASM_BIGINT` configuration and is now conditioned directly\non `WASM_BIGINT\u003d0`.\n\nSplit out from #27558."
    },
    {
      "commit": "2c4b1817d2153a2af03f26abca61ee4d535831ec",
      "tree": "332478e0f6274e9d3708747bf277621b35ef53ae",
      "parents": [
        "001fc91a6d3d9c337120841c792fea1d333e34d1"
      ],
      "author": {
        "name": "Sam Clegg",
        "email": "sbc@chromium.org",
        "time": "Wed Aug 19 18:32:08 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 19 18:32:08 2026"
      },
      "message": "Remove legacy int64 legalization warning (#27569)\n\nThis warning only really made sense before `WASM_BIGINT` was enabled by\ndefault. The warning was there to hint folks who were just building with\ndefault settings to enabled `WASM_BIGINT`, but since its enable by\ndefault these days it is less useful.\n\nThis really should have been part of #22993."
    },
    {
      "commit": "001fc91a6d3d9c337120841c792fea1d333e34d1",
      "tree": "ec2af612cedd722c5c6e1614e8c6fd236cd74d6a",
      "parents": [
        "1b1481ce9e01b3327422d8d16afa35df9c554276"
      ],
      "author": {
        "name": "emscripten-bot",
        "email": "179889221+emscripten-bot@users.noreply.github.com",
        "time": "Wed Aug 19 17:25:20 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 19 17:25:20 2026"
      },
      "message": "Update emsdk version from 60241fe0 to 8aa5e86c (#27567)\n\nThis is an automatic change generated by tools/maint/rebaseline_tests.py\n--update-emsdk.\n\nemsdk version updated: 60241fe0 \u003d\u003e 8aa5e86c\n\nThe following revisions were included in this update:\n\n```\n- 8aa5e86c Roll llvm-project from 9835f8acf3ba to 5f6a32ee292e (58 revisions)\n- ce5c5d35 Roll llvm-project from 774d70a3068b to 9835f8acf3ba (22 revisions)\n- 5d8c8c60 Roll binaryen from 7dd128dfcdef to b8c151259b34 (2 revisions)\n- d5a2c951 Roll llvm-project from 8b1e3aa6b661 to 774d70a3068b (54 revisions)\n- 1853fede Fix release candidate detection on trybots\n- d216bb12 Roll binaryen from 07a6f35f8ae0 to 7dd128dfcdef (1 revision)\n- 5273c55a Roll emscripten from 2e3e3cc617ae to 77dc595f2954 (1 revision)\n- c8004df5 Roll emscripten from ca200ba646c0 to 2e3e3cc617ae (1 revision)\n- b14c44ee Roll llvm-project from b025f5b75941 to 8b1e3aa6b661 (50 revisions)\n- 9326774a Roll llvm-project from 6394197d7698 to b025f5b75941 (42 revisions)\n- 5f4a447f Roll v8 from fd75eb5d6753 to 0fff700c2de2 (25 revisions)\n- a8c16c0c Roll llvm-project from ecdcdf0577c1 to 6394197d7698 (27 revisions)\n```\n\nFull log:\nhttps://chromium.googlesource.com/emscripten-releases/+log/60241fe0..8aa5e86c\n\nThe following (20) test expectation files were updated by\nrunning the tests with `--rebaseline`:\n\n```\ncodesize/test_codesize_cxx_ctors1.json: 153934 \u003d\u003e 153943 [+9 bytes / +0.01%]\ncodesize/test_codesize_cxx_ctors2.json: 153340 \u003d\u003e 153349 [+9 bytes / +0.01%]\ncodesize/test_codesize_cxx_except.json: 200093 \u003d\u003e 200093 [+0 bytes / +0.00%]\ncodesize/test_codesize_cxx_except_wasm.json: 169462 \u003d\u003e 169455 [-7 bytes / -0.00%]\ncodesize/test_codesize_cxx_except_wasm_legacy.json: 167322 \u003d\u003e 167315 [-7 bytes / -0.00%]\ncodesize/test_codesize_cxx_lto.json: 119535 \u003d\u003e 119546 [+11 bytes / +0.01%]\ncodesize/test_codesize_cxx_mangle.json: 266423 \u003d\u003e 266423 [+0 bytes / +0.00%]\ncodesize/test_codesize_cxx_noexcept.json: 155844 \u003d\u003e 155853 [+9 bytes / +0.01%]\ncodesize/test_codesize_cxx_wasmfs.json: 180962 \u003d\u003e 180975 [+13 bytes / +0.01%]\ncodesize/test_codesize_files_wasmfs.json: 63223 \u003d\u003e 63231 [+8 bytes / +0.01%]\ncodesize/test_codesize_hello_O0.json: 38586 \u003d\u003e 38586 [+0 bytes / +0.00%]\ncodesize/test_codesize_hello_dylink_all.json: 858910 \u003d\u003e 858884 [-26 bytes / -0.00%]\ncodesize/test_codesize_mem_O3_standalone.json: 9140 \u003d\u003e 9140 [+0 bytes / +0.00%]\ncodesize/test_codesize_mem_O3_standalone_narg.json: 8455 \u003d\u003e 8455 [+0 bytes / +0.00%]\ncodesize/test_codesize_mem_O3_standalone_narg_flto.json: 7386 \u003d\u003e 7386 [+0 bytes / +0.00%]\ncodesize/test_codesize_minimal_pthreads.json: 26002 \u003d\u003e 26016 [+14 bytes / +0.05%]\ncodesize/test_codesize_minimal_pthreads_memgrowth.json: 26461 \u003d\u003e 26475 [+14 bytes / +0.05%]\ncodesize/test_minimal_runtime_code_size_random_printf_wasm.json: 11050 \u003d\u003e 11050 [+0 bytes / +0.00%]\ncodesize/test_minimal_runtime_code_size_random_printf_wasm2js.json: 17413 \u003d\u003e 17413 [+0 bytes / +0.00%]\ncodesize/test_unoptimized_code_size.json: 172084 \u003d\u003e 172084 [+0 bytes / +0.00%]\n\nAverage change: +0.01% (-0.00% - +0.05%)\n```\n\nCo-authored-by: emscripten-bot \u003cemscripten-bot@users.noreply.github.com\u003e"
    },
    {
      "commit": "1b1481ce9e01b3327422d8d16afa35df9c554276",
      "tree": "1ac4ec177e258b4cda0329d1b33ffcc300a67e25",
      "parents": [
        "5f6b81bc7d00e43a5a281ff856dd6f7ae4d4be82"
      ],
      "author": {
        "name": "Sam Clegg",
        "email": "sbc@chromium.org",
        "time": "Wed Aug 19 16:10:31 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 19 16:10:31 2026"
      },
      "message": "Flip the default for LEGALIZE_JS_FFI. NFC (#27563)\n\nThis setting has already been deprecated for a long time. Flipping its\ndefault is really no-op here but it makes the followup changes to remove\nit simpler.\n\nSplit out from #27558."
    },
    {
      "commit": "5f6b81bc7d00e43a5a281ff856dd6f7ae4d4be82",
      "tree": "0f667f2d659e54082b32da7c36abe2edf42a288f",
      "parents": [
        "49dbb96a39a440b17264ae07ab6cfe0c0646a067"
      ],
      "author": {
        "name": "Sam Clegg",
        "email": "sbc@chromium.org",
        "time": "Wed Aug 19 15:55:48 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 19 15:55:48 2026"
      },
      "message": "Update comments around node + instantiateStreaming. NFC (#27562)\n\nSee\nhttps://github.com/emscripten-core/emscripten/pull/27560/changes#r3806199803"
    },
    {
      "commit": "49dbb96a39a440b17264ae07ab6cfe0c0646a067",
      "tree": "14f762845bfe62d859fbc1ed840fbef80544095f",
      "parents": [
        "77dc595f295427f8a010fb8de8d67925c254d91d"
      ],
      "author": {
        "name": "Sam Clegg",
        "email": "sbc@chromium.org",
        "time": "Wed Aug 19 15:53:15 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 19 15:53:15 2026"
      },
      "message": "Cleanup and re-enable JS FFI legalization tests. NFC (#27564)\n\nI\u0027m likely about to delete these forever, but for some reason I would\nstill like to land this cleanup first."
    },
    {
      "commit": "77dc595f295427f8a010fb8de8d67925c254d91d",
      "tree": "65a31bd77cdea3bb746876e38cd3f0eae2506c1a",
      "parents": [
        "2e3e3cc617ae9f3549072eb9a292015d594605d3"
      ],
      "author": {
        "name": "emscripten-bot",
        "email": "179889221+emscripten-bot@users.noreply.github.com",
        "time": "Tue Aug 18 18:13:50 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 18 18:13:50 2026"
      },
      "message": "Update emsdk version from ae6cb9c1 to 60241fe0 (#27561)\n\nThis is an automatic change generated by tools/maint/rebaseline_tests.py\n--update-emsdk.\n\nemsdk version updated: ae6cb9c1 \u003d\u003e 60241fe0\n\nThe following revisions were included in this update:\n\n```\n- 60241fe0 Roll emscripten from bd3bbeab717d to ca200ba646c0 (1 revision)\n- fb721d95 Roll emscripten from c333eb49ae50 to bd3bbeab717d (1 revision)\n- 7e7edeb3 Roll llvm-project from 9a1c6e561697 to ecdcdf0577c1 (33 revisions)\n- 45d98340 Roll binaryen from 081f8cbb1a13 to 07a6f35f8ae0 (1 revision)\n- 8a817fae Roll emscripten from c6285f2a3c15 to c333eb49ae50 (2 revisions)\n- 1fe48939 Roll binaryen from 8d9412ef6431 to 081f8cbb1a13 (1 revision)\n- 11204535 Roll emscripten from 4b47df092ec9 to c6285f2a3c15 (1 revision)\n- d10e6ea3 Roll llvm-project from 4cc02503f584 to 9a1c6e561697 (271 revisions)\n- c8fb05a8 Roll emscripten from 4e8b63eac594 to 4b47df092ec9 (1 revision)\n- a2e0030d Version 6.0.7 RC\n- f983dbd0 Roll v8 from 5280f012d5ce to fd75eb5d6753 (1 revision)\n```\n\nFull log:\nhttps://chromium.googlesource.com/emscripten-releases/+log/ae6cb9c1..60241fe0\n\nThe following (15) test expectation files were updated by\nrunning the tests with `--rebaseline`:\n\n```\ncodesize/test_codesize_cxx_ctors1.json: 153947 \u003d\u003e 153934 [-13 bytes / -0.01%]\ncodesize/test_codesize_cxx_ctors2.json: 153353 \u003d\u003e 153340 [-13 bytes / -0.01%]\ncodesize/test_codesize_cxx_except.json: 200106 \u003d\u003e 200093 [-13 bytes / -0.01%]\ncodesize/test_codesize_cxx_except_wasm.json: 169475 \u003d\u003e 169462 [-13 bytes / -0.01%]\ncodesize/test_codesize_cxx_except_wasm_legacy.json: 167335 \u003d\u003e 167322 [-13 bytes / -0.01%]\ncodesize/test_codesize_cxx_lto.json: 119548 \u003d\u003e 119535 [-13 bytes / -0.01%]\ncodesize/test_codesize_cxx_mangle.json: 266436 \u003d\u003e 266423 [-13 bytes / -0.00%]\ncodesize/test_codesize_cxx_noexcept.json: 155857 \u003d\u003e 155844 [-13 bytes / -0.01%]\ncodesize/test_codesize_cxx_wasmfs.json: 180975 \u003d\u003e 180962 [-13 bytes / -0.01%]\ncodesize/test_codesize_files_wasmfs.json: 63240 \u003d\u003e 63223 [-17 bytes / -0.03%]\ncodesize/test_codesize_hello_O1.json: 8060 \u003d\u003e 8041 [-19 bytes / -0.24%]\ncodesize/test_codesize_hello_dylink.json: 44113 \u003d\u003e 44096 [-17 bytes / -0.04%]\ncodesize/test_codesize_hello_dylink_all.json: 858927 \u003d\u003e 858910 [-17 bytes / -0.00%]\ncodesize/test_minimal_runtime_code_size_hello_embind.json: 15004 \u003d\u003e 14987 [-17 bytes / -0.11%]\ncodesize/test_minimal_runtime_code_size_hello_embind_val.json: 11731 \u003d\u003e 11714 [-17 bytes / -0.14%]\n\nAverage change: -0.04% (-0.24% - -0.00%)\n```\n\nCo-authored-by: emscripten-bot \u003cemscripten-bot@users.noreply.github.com\u003e"
    },
    {
      "commit": "2e3e3cc617ae9f3549072eb9a292015d594605d3",
      "tree": "cea2585490358280544b64ced3f8eed0326fc3f7",
      "parents": [
        "ca200ba646c042d7d0e2ad415ece84b36458c1ed"
      ],
      "author": {
        "name": "Brendan Dahl",
        "email": "brendan.dahl@gmail.com",
        "time": "Tue Aug 18 17:27:40 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 18 17:27:40 2026"
      },
      "message": "Fix poppler benchmark environment flags (#27544)\n\nPreserve existing environment flags in the test library builder instead\nof overwriting them. This ensures caller-provided optimization settings\nare maintained.\n\nSet CXXFLAGS alongside CFLAGS to ensure C++ dependencies compile with\nthe correct settings. Pass environment overrides to the freetype\ndependency to fix the poppler benchmark build with LTO."
    },
    {
      "commit": "ca200ba646c042d7d0e2ad415ece84b36458c1ed",
      "tree": "082bba066333319e05aba48745f56b5d2ed32ed9",
      "parents": [
        "bd3bbeab717dc6914705fb6a8e22e5a98f8a2358"
      ],
      "author": {
        "name": "Guy Bedford",
        "email": "guybedford@gmail.com",
        "time": "Tue Aug 18 03:41:51 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 18 03:41:51 2026"
      },
      "message": "Implement epoll APIs in the JS filesystem (#27207)\n\nAdds `epoll_create1`, `epoll_ctl`, `epoll_wait` and `epoll_pwait` on a\nsingle fd readiness model shared with `poll()`.\n\nBuilds off of the existing event-driven readiness model in the JS FS\nsystem with the integration point as the per-inode wait-queue, having\neach FS node carrying a `listeners` set and producers calling\n`notifyNodeListeners(node, flags)` on ready transitions. There is no\nseparate or parallel readiness machinery - it integrates directly with\nthe existing model. `pollOne(fd, events)` is reused on the same\nreadiness definition.\n\nPer standard epoll semantics - `epoll_ctl ADD` installs a new listener\non the watched node. If items are already ready they are added to the\nready list. That listener then appends the registration to the epoll\u0027s\nready list for waking. The epoll_wait consumes the ready list,\nre-checking each item against its current mask via `pollOne`.\n\n* `EPOLLONESHOT` clears listeners to avoid unnecessary callback firing.\n`EPOLL_CTL_MOD` can then re-arm them again.\n* `EPOLLET` is implemented correctly to avoid refiring items that remain\nready\n* `EPOLLEXCLUSIVE` is passed for listeners allowing only one wake for\nmultiple epoll listeners to avoid the \"thundering herd\".\n* When exceeding `maxevents`, draining follows Linux-like semantics in\nsupporting round-robin ready calling. To achieve this without losing\nperformance, a doubly-linked list is used for the registrations. A\nsimpler set / array with copying could be used alternatively if we don\u0027t\nwant to use this approach.\n* Registrations key on the open file description (the dup-shared stream\nstate): closing a watched fd and reusing its number for a different open\ndoes not resurrect the registration onto the new fd (matching Linux).\n* `dup(2)` of an epoll fd yields another reference to the same epoll\ninstance (registrations and ready list shared, per Linux eventpoll\nsemantics); only the last close reclaims it.\n\nMost of the diff is tests, covering these semantics in depth including\nerror handling, level versus edge reporting, nesting and ELOOP, fd-close\nauto-removal, dup instance sharing, JSPI and pthreads, real sockets,\nderegistration, deterministic round-robin fairness, and multi-threaded\nwaits on a shared epoll fd (per-edge exactly-once wakeup under\n`EPOLLET`, herd wakeup under level triggering, and `EPOLLONESHOT`\ndisarm/re-arm and exactly-once delivery against racing waiter threads).\n\nMinor semantic divergences to note:\n* `epoll_pwait` ignores `sigmask`\n* `epoll_create1` accepts and ignores `EPOLL_CLOEXEC` (unknown flags are\nrejected with `EINVAL`)\n* closing a watched fd evicts its registration even when a dup of the\nopen description survives; Linux keeps the registration alive through\nthe file and continues delivering events (the classic epoll footgun)\n* nesting is capped at 5 levels\n* `epoll_event` under Wasm in Musl is laid out as aligned 16 rather than\nx86-64\u0027s packed 12 bytes.\n\nFixes: #5033, #10556"
    },
    {
      "commit": "bd3bbeab717dc6914705fb6a8e22e5a98f8a2358",
      "tree": "96ee5915906b0e5d3ac4f7ed31e3352dd0c225c7",
      "parents": [
        "c333eb49ae500e070e2b442bc9e756ef7bcece79"
      ],
      "author": {
        "name": "Sam Clegg",
        "email": "sbc@chromium.org",
        "time": "Tue Aug 18 01:29:13 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 18 01:29:13 2026"
      },
      "message": "Remove experimental warning from `-sJSPI` (#27559)\n\nNow that JSPI has reached Phase 4 and is shipping (enabled by default\nwithout a flag since Chrome 137 and Node 26), remove the diagnostic\nwarning when linking with `-sJSPI`. Also update documentation and clean\nup `-Wno-experimental` suppressions in test files."
    },
    {
      "commit": "c333eb49ae500e070e2b442bc9e756ef7bcece79",
      "tree": "d0fec767a6fcd8d8fd4a693c5efa9474e7a465cd",
      "parents": [
        "5f9f690d02e6974b1ec26a59c8490797dc050020"
      ],
      "author": {
        "name": "Guy Bedford",
        "email": "guybedford@gmail.com",
        "time": "Mon Aug 17 22:58:30 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 17 22:58:30 2026"
      },
      "message": "Split test_sockets.py into node and browser suites (#27555)\n\nThis splits the `sockets` test suite into `sockets_node` and\n`sockets_browser`, as suggested by @sbc100 in #27207. A pure test\nrefactor with no test content changes, so that the node socket tests no\nlonger run under a browser-based suite.\n\n* `test/sockets_common.py`: shared server harnesses and helpers\n(websockify/compiled harnesses, echo server processes, IPv6 loopback\nprobe, skip decorators)\n* `test/test_sockets_node.py`: `sockets_node`/`sockets_node64` on\n`RunnerCore` (previously these ran under `BrowserCore`) - the nodejs\necho, connect-failure, subprotocol, and NODERAWSOCKETS tests\n* `test/test_sockets_browser.py`: `sockets_browser`/`sockets_browser64`\non `BrowserCore` - all btest-based tests, unchanged\n* `test/runner.py`, CircleCI config, and the test-suite docs updated;\nthe chrome CI job now runs both suites, preserving existing coverage\n\nVerified that every test method in the old file appears exactly once\nacross the new files."
    },
    {
      "commit": "5f9f690d02e6974b1ec26a59c8490797dc050020",
      "tree": "d4e5583b5dd23fe55a49046d84b5aa6cb370d47d",
      "parents": [
        "c6285f2a3c15516372b5c380f809add75360dcac"
      ],
      "author": {
        "name": "emscripten-bot",
        "email": "179889221+emscripten-bot@users.noreply.github.com",
        "time": "Mon Aug 17 22:45:14 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 17 22:45:14 2026"
      },
      "message": "Mark 6.0.7 as released (#27557)\n\nCo-authored-by: emscripten-bot \u003cemscripten-bot@users.noreply.github.com\u003e"
    },
    {
      "commit": "c6285f2a3c15516372b5c380f809add75360dcac",
      "tree": "221e40b507fc7b6152688f28230def6ad0b3f3a9",
      "parents": [
        "4b47df092ec9b4d6498a9891d51e447d378a72d4"
      ],
      "author": {
        "name": "Sam Clegg",
        "email": "sbc@chromium.org",
        "time": "Mon Aug 17 19:24:58 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 17 19:24:58 2026"
      },
      "message": "Remove support for non-standard -no-pthreads command line flag (#27546)\n\nIt turns out this was never really supported by LLVM in the way I\nthought it was when I added support here:\nhttps://github.com/llvm/llvm-project/pull/216378\n  \nI\u0027m pretty we never advertised the availability of this non-standard\nflag anywhere so I think removing it should be low risk. See #20723 for\nwhere it was added."
    },
    {
      "commit": "4b47df092ec9b4d6498a9891d51e447d378a72d4",
      "tree": "5ad6ec89c651c7ff4d44f6561c1d66830526634c",
      "parents": [
        "4e8b63eac59458c57583b59da9851c9a718bc073"
      ],
      "author": {
        "name": "emscripten-bot",
        "email": "179889221+emscripten-bot@users.noreply.github.com",
        "time": "Mon Aug 17 19:07:08 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 17 19:07:08 2026"
      },
      "message": "Update emsdk version from ad5e904b to ae6cb9c1 (#27554)\n\nThis is an automatic change generated by tools/maint/rebaseline_tests.py\n--update-emsdk.\n\nemsdk version updated: ad5e904b \u003d\u003e ae6cb9c1\n\nThe following revisions were included in this update:\n\n```\n- ae6cb9c1 Roll emscripten from ea0b9f272789 to 4e8b63eac594 (1 revision)\n```\n\nFull log:\nhttps://chromium.googlesource.com/emscripten-releases/+log/ad5e904b..ae6cb9c1\n\nCo-authored-by: emscripten-bot \u003cemscripten-bot@users.noreply.github.com\u003e"
    },
    {
      "commit": "4e8b63eac59458c57583b59da9851c9a718bc073",
      "tree": "5ccb4778474afc26021e6274b02401bdf07d5b24",
      "parents": [
        "ea0b9f272789117249a59a7cebed07de7f5c7ce2"
      ],
      "author": {
        "name": "emscripten-bot",
        "email": "179889221+emscripten-bot@users.noreply.github.com",
        "time": "Sun Aug 16 19:31:11 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Aug 16 19:31:11 2026"
      },
      "message": "Update emsdk version from ee36f30f to ad5e904b (#27550)\n\nThis is an automatic change generated by tools/maint/rebaseline_tests.py\n--update-emsdk.\n\nemsdk version updated: ee36f30f \u003d\u003e ad5e904b\n\nThe following revisions were included in this update:\n\n```\n- ad5e904b Roll v8 from 311d0e193f70 to 5280f012d5ce (3 revisions)\n- f7a7fdbe Roll emscripten from 4483d70a7809 to ea0b9f272789 (1 revision)\n```\n\nFull log:\nhttps://chromium.googlesource.com/emscripten-releases/+log/ee36f30f..ad5e904b\n\nCo-authored-by: emscripten-bot \u003cemscripten-bot@users.noreply.github.com\u003e"
    },
    {
      "commit": "ea0b9f272789117249a59a7cebed07de7f5c7ce2",
      "tree": "6ee0056ab4c1ca0bfe3ed392bb0e47edd196815a",
      "parents": [
        "4483d70a78098ed5d860dff2dc21f3025b2da2ee"
      ],
      "author": {
        "name": "emscripten-bot",
        "email": "179889221+emscripten-bot@users.noreply.github.com",
        "time": "Sat Aug 15 15:07:12 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 15 15:07:12 2026"
      },
      "message": "Update emsdk version from 614bcd22 to ee36f30f (#27548)\n\nThis is an automatic change generated by tools/maint/rebaseline_tests.py\n--update-emsdk.\n\nemsdk version updated: 614bcd22 \u003d\u003e ee36f30f\n\nThe following revisions were included in this update:\n\n```\n- ee36f30f Roll binaryen from dae272c71a46 to 8d9412ef6431 (1 revision)\n- b58523ea Roll emscripten from 8aca6b0a212c to 4483d70a7809 (1 revision)\n- 15cbaf62 Roll emscripten from 85b2c5bb57ec to 8aca6b0a212c (3 revisions)\n- ef20b745 Roll v8 from d315af3d83cf to 311d0e193f70 (28 revisions)\n- 5ad431de Roll binaryen from 3444b9772f39 to dae272c71a46 (2 revisions)\n- 0e470258 Roll llvm-project from 6baa105d7995 to 4cc02503f584 (40 revisions)\n- 2c38f98f Roll binaryen from 1bca181ef95a to 3444b9772f39 (1 revision)\n- aeaac473 Roll emscripten from 8fd74d6a84c2 to 85b2c5bb57ec (1 revision)\n- 55db39f5 Roll llvm-project from f0070530bfa4 to 6baa105d7995 (18 revisions)\n- 153c32f6 Roll llvm-project from 5f33e4f07a67 to f0070530bfa4 (11 revisions)\n```\n\nFull log:\nhttps://chromium.googlesource.com/emscripten-releases/+log/614bcd22..ee36f30f\n\nCo-authored-by: emscripten-bot \u003cemscripten-bot@users.noreply.github.com\u003e"
    },
    {
      "commit": "4483d70a78098ed5d860dff2dc21f3025b2da2ee",
      "tree": "2dfaa330454c0fd505fb84c051714e0bfb38b3c0",
      "parents": [
        "8aca6b0a212c7ee0b0c326bedd214149f0b48438"
      ],
      "author": {
        "name": "Sam Clegg",
        "email": "sbc@chromium.org",
        "time": "Fri Aug 14 23:43:50 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 14 23:43:50 2026"
      },
      "message": "[docs] Remove old comment regarding nascent DOM Level 3 Events spec (#27363)\n\nThis was added back in cef72b48d5."
    },
    {
      "commit": "8aca6b0a212c7ee0b0c326bedd214149f0b48438",
      "tree": "12c2e89f2030770eec4424e6542a57478bda2c7c",
      "parents": [
        "6313a2d67a92c3e3b449f48e2fc9882d7e45ff3c"
      ],
      "author": {
        "name": "Sam Clegg",
        "email": "sbc@chromium.org",
        "time": "Fri Aug 14 21:31:02 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 14 21:31:02 2026"
      },
      "message": "Bump oldest supported safari version from v14.1 to v15 (#27542)\n\nSafari 15 has been the default for a while now. This change means it is\nno longer possible to target anything older.\n\nToolchain and runtime impact:\n- Drops Binaryen lowering passes for `bulk-memory` and\n`nontrapping-fptoint` because all supported engines (Chrome \u003e\u003d 85,\nFirefox \u003e\u003d 79, Safari \u003e\u003d 15, Node \u003e\u003d 18.3) support them.\n- `JS_BIGINT_INTEGRATION` (`WASM_BIGINT`) is now unconditionally\nsupported across all target engines.\n- Removes legacy JS polyfills (e.g. `bigint64array.js`) and Safari\n14-specific workarounds.\n\nMarket share and device compatibility (AI-assisted):\n- Global usage: Safari 14 holds \u003c0.1% global market share and is below\nstandard reporting thresholds: https://caniuse.com/usage-table\nhttps://gs.statcounter.com/browser-version-market-share\n- iOS / iPadOS: iOS 15 supported all devices that ran iOS 14 (including\niPhone 6s/7, SE 1st gen, iPad Air 2, iPad mini 4, and iPod touch 7th\ngen), meaning zero active iOS devices were stranded on iOS 14:\nhttps://support.apple.com/100366\nhttps://en.wikipedia.org/wiki/IOS_15#Supported_devices\n- macOS: Safari 15 was released for macOS Catalina (10.15) and Big Sur\n(11.0), and shipped with Monterey (12.0). Only macOS Mojave (10.14) and\nolder were capped at Safari 14.1 (Mojave reached EOL in 2021):\nhttps://developer.apple.com/documentation/safari-release-notes/safari-15-release-notes\n\n---------\n\nCo-authored-by: Alon Zakai \u003calonzakai@gmail.com\u003e"
    },
    {
      "commit": "6313a2d67a92c3e3b449f48e2fc9882d7e45ff3c",
      "tree": "03a6cc92082f985f451fa7cc461222c60bbdaca4",
      "parents": [
        "b2c46221866393df0e636cd75b4352530f79cda3"
      ],
      "author": {
        "name": "Sam Clegg",
        "email": "sbc@chromium.org",
        "time": "Fri Aug 14 15:22:48 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 14 15:22:48 2026"
      },
      "message": "Add extended-const to feature matrix and pass to wasm-ld (#27532)\n\nAdd `Feature.EXTENDED_CONST` to `tools/feature_matrix.py` with minimum\nsupported engine versions (Chrome 114, Firefox 112, Safari 17.4, Node\n21.0.0).\n\nAlso handle `-mextended-const` and `-mno-extended-const` flags in\n`tools/cmdline.py`, and pass `--extra-features\u003dextended-const` to\n`wasm-ld` in `tools/building.py` when `extended-const` is available.\n\nEven though this feature is not enabled by our default browser versions\nthis change does enable this feature automatically when opting into\nother newer features such as `MEMORY64` or `WASM_EXCEPTIONS`."
    },
    {
      "commit": "b2c46221866393df0e636cd75b4352530f79cda3",
      "tree": "1cbe0be41e8d7fb392ce154035b5d3d964d34aae",
      "parents": [
        "85b2c5bb57ecae86b7dbf4c94b888b56098566a8"
      ],
      "author": {
        "name": "Sam Clegg",
        "email": "sbc@chromium.org",
        "time": "Fri Aug 14 15:10:11 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 14 15:10:11 2026"
      },
      "message": "Add test for `shm_open` and `shm_unlink` (#27540)\n\nAdd `test_shm_open` in `test/test_other.py` to verify that `shm_open`\nand `shm_unlink` work as expected via the virtual filesystem.\n\nFixes: #3020"
    },
    {
      "commit": "85b2c5bb57ecae86b7dbf4c94b888b56098566a8",
      "tree": "9e7cdbc7bf5833efca1307080e15d505c3ceb6f8",
      "parents": [
        "8fd74d6a84c2ac89c3e92d080beb70f62a81c03a"
      ],
      "author": {
        "name": "emscripten-bot",
        "email": "179889221+emscripten-bot@users.noreply.github.com",
        "time": "Fri Aug 14 14:27:19 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 14 14:27:19 2026"
      },
      "message": "Update emsdk version from c896a3e2 to 614bcd22 (#27541)\n\nThis is an automatic change generated by tools/maint/rebaseline_tests.py\n--update-emsdk.\n\nemsdk version updated: c896a3e2 \u003d\u003e 614bcd22\n\nThe following revisions were included in this update:\n\n```\n- 614bcd22 Roll llvm-project from f395eb5beec8 to 5f33e4f07a67 (31 revisions)\n- 42ae5b91 Roll emscripten from c3d5288f4420 to 8fd74d6a84c2 (1 revision)\n- a6f553de Roll binaryen from 8f1562688438 to 1bca181ef95a (2 revisions)\n- 4a437971 Roll emscripten from cad9eef9124b to c3d5288f4420 (8 revisions)\n- 4a3c21dc Roll llvm-project from 1ccdf48548ed to f395eb5beec8 (60 revisions)\n```\n\nFull log:\nhttps://chromium.googlesource.com/emscripten-releases/+log/c896a3e2..614bcd22\n\nCo-authored-by: emscripten-bot \u003cemscripten-bot@users.noreply.github.com\u003e"
    },
    {
      "commit": "8fd74d6a84c2ac89c3e92d080beb70f62a81c03a",
      "tree": "52cef2e69dd7666b899b7775d0d2e5fc2d7cf4f3",
      "parents": [
        "c3d5288f4420bbd63dd28c0dcc766cf7f9dc73a9"
      ],
      "author": {
        "name": "emscripten-bot",
        "email": "179889221+emscripten-bot@users.noreply.github.com",
        "time": "Fri Aug 14 01:06:22 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 14 01:06:22 2026"
      },
      "message": "Update emsdk version from 198cb40d to c896a3e2 (#27539)\n\nThis is an automatic change generated by tools/maint/rebaseline_tests.py\n--update-emsdk.\n\nemsdk version updated: 198cb40d \u003d\u003e c896a3e2\n\nThe following revisions were included in this update:\n\n```\n- c896a3e2 Roll llvm-project from bb810316fb4c to 1ccdf48548ed (57 revisions)\n- 8883ee1a Roll v8 from 2bb9ee82ef8a to d315af3d83cf (37 revisions)\n- 4b353d67 Roll llvm-project from 136691148938 to bb810316fb4c (41 revisions)\n```\n\nFull log:\nhttps://chromium.googlesource.com/emscripten-releases/+log/198cb40d..c896a3e2\n\nThe following (4) test expectation files were updated by\nrunning the tests with `--rebaseline`:\n\n```\ncodesize/test_codesize_minimal_pthreads.json: 26002 \u003d\u003e 26002 [+0 bytes / +0.00%]\ncodesize/test_codesize_minimal_pthreads_memgrowth.json: 26461 \u003d\u003e 26461 [+0 bytes / +0.00%]\ncodesize/test_minimal_runtime_code_size_audio_worklet.json: 16389 \u003d\u003e 16389 [+0 bytes / +0.00%]\ncodesize/test_minimal_runtime_code_size_hello_wasm_worker.json: 4099 \u003d\u003e 4099 [+0 bytes / +0.00%]\n\nAverage change: +0.00% (+0.00% - +0.00%)\n```\n\nCo-authored-by: emscripten-bot \u003cemscripten-bot@users.noreply.github.com\u003e"
    },
    {
      "commit": "c3d5288f4420bbd63dd28c0dcc766cf7f9dc73a9",
      "tree": "80356d919c81efbad068218686e8bd9aa14c55d8",
      "parents": [
        "f1bd4a65ce37316aa0a5bb29b55fbd615aa22fc0"
      ],
      "author": {
        "name": "Sam Clegg",
        "email": "sbc@chromium.org",
        "time": "Thu Aug 13 22:26:11 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 13 22:26:11 2026"
      },
      "message": "[ports] Fix fetching binary data via curl and test binary downloads (#27538)\n\nEnsure `utils.run_process` respects `text\u003dFalse` by only setting\n`encoding\u003d\u0027utf-8\u0027` when text mode is enabled. Pass `text\u003dFalse` when\nfetching ports with `curl` in `tools/ports/__init__.py` to prevent\ndecoding binary download data as UTF-8.\n\nSee: #27536"
    },
    {
      "commit": "f1bd4a65ce37316aa0a5bb29b55fbd615aa22fc0",
      "tree": "b7e8110bafc5006a9d6ee23b8ab0010cc2e9a6a1",
      "parents": [
        "5ef23f2b69f2cac006b3d6df3aa956ccf8933716"
      ],
      "author": {
        "name": "Sam Clegg",
        "email": "sbc@chromium.org",
        "time": "Thu Aug 13 17:39:28 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 13 17:39:28 2026"
      },
      "message": "Fix other.test_download_failure on macOS (#27536)\n\nThe reason CI didn\u0027t catch this is because the macOS tests run with\nFROZEN_CACHE, which skips this test.\n\nSee #27529"
    },
    {
      "commit": "5ef23f2b69f2cac006b3d6df3aa956ccf8933716",
      "tree": "99d6a37028dc516a21781bbbd4104d44d5b1a446",
      "parents": [
        "801c2fbbae0941bbe2bc680fe7449d19fafaa58f"
      ],
      "author": {
        "name": "Heejin Ahn",
        "email": "aheejin@gmail.com",
        "time": "Thu Aug 13 15:43:36 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 13 15:43:36 2026"
      },
      "message": "[EH] Move EH status management to exceptions.js (#27528)\n\n#27498 moved EH status management (`uncaughtExceptionCount` and\n`exceptionLast` from `libexceptions.js` to `libunwind.js`, but because\nin the native libcxxabi and libunwind, the management is done within\nlibcxxabi, I think it\u0027d be more consistent if we do the same for the JS\nlibraries."
    },
    {
      "commit": "801c2fbbae0941bbe2bc680fe7449d19fafaa58f",
      "tree": "6d4cf716bb3dffa09927a54771522940766a079b",
      "parents": [
        "7cc2974d1e7dd0c49aa30ccd9f155fd74dc37ddb"
      ],
      "author": {
        "name": "emscripten-bot",
        "email": "179889221+emscripten-bot@users.noreply.github.com",
        "time": "Thu Aug 13 15:06:02 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 13 15:06:02 2026"
      },
      "message": "Update emsdk version from 3bac87be to 198cb40d (#27535)\n\nThis is an automatic change generated by tools/maint/rebaseline_tests.py\n--update-emsdk.\n\nemsdk version updated: 3bac87be \u003d\u003e 198cb40d\n\nThe following revisions were included in this update:\n\n```\n- 198cb40d Roll llvm-project from e37b656cc6a1 to 136691148938 (19 revisions)\n```\n\nFull log:\nhttps://chromium.googlesource.com/emscripten-releases/+log/3bac87be..198cb40d\n\nCo-authored-by: emscripten-bot \u003cemscripten-bot@users.noreply.github.com\u003e"
    },
    {
      "commit": "7cc2974d1e7dd0c49aa30ccd9f155fd74dc37ddb",
      "tree": "86b70da078bdc21bc3ea565df0f4a8101bf8947b",
      "parents": [
        "ace19a3465ca221039f526a18f9c23a1dc6383d0"
      ],
      "author": {
        "name": "emscripten-bot",
        "email": "179889221+emscripten-bot@users.noreply.github.com",
        "time": "Thu Aug 13 10:07:23 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 13 10:07:23 2026"
      },
      "message": "Update emsdk version from 47206388 to 3bac87be (#27534)\n\nThis is an automatic change generated by tools/maint/rebaseline_tests.py\n--update-emsdk.\n\nExpected Binaryen version updated: 131 \u003d\u003e 132\n\nemsdk version updated: 47206388 \u003d\u003e 3bac87be\n\nThe following revisions were included in this update:\n\n```\n- 3bac87be Roll binaryen from 79dfe6b412a3 to 8f1562688438 (2 revisions)\n- 951fe605 Roll llvm-project from 742031c8aaf9 to e37b656cc6a1 (113 revisions)\n- d98dd290 Roll emscripten from 97e496bd5a85 to cad9eef9124b (3 revisions)\n- d956c429 Roll binaryen from d8c6b2abe35e to 79dfe6b412a3 (5 revisions)\n```\n\nFull log:\nhttps://chromium.googlesource.com/emscripten-releases/+log/47206388..3bac87be\n\nCo-authored-by: emscripten-bot \u003cemscripten-bot@users.noreply.github.com\u003e"
    },
    {
      "commit": "ace19a3465ca221039f526a18f9c23a1dc6383d0",
      "tree": "797f8fcad0bf176a86ba9cab6d34ad4ad765118d",
      "parents": [
        "250762d823c9eba21fce2e810de08d4347cdaa6d"
      ],
      "author": {
        "name": "Sam Clegg",
        "email": "sbc@chromium.org",
        "time": "Wed Aug 12 23:31:04 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 12 23:31:04 2026"
      },
      "message": "[ci] Add test-linux-arm64 CI job (#27505)\n\nAdd test-linux-arm64 job to CircleCI configuration to run crossplatform\ntests on ARM64 Linux hardware."
    },
    {
      "commit": "250762d823c9eba21fce2e810de08d4347cdaa6d",
      "tree": "3d96dbae3115baee8c28484e74ee44a279f67f38",
      "parents": [
        "0d654ba67fc69009dc48c795896462d1d208e64d"
      ],
      "author": {
        "name": "Sam Clegg",
        "email": "sbc@chromium.org",
        "time": "Wed Aug 12 22:43:33 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 12 22:43:33 2026"
      },
      "message": "[ports] Catch exceptions when downloading ports to avoid full backtrace (#27529)\n\nCatch network and download exceptions `tools/ports/__init__.py` when\nretrieving port artifacts, so that user-facing errors are reported\ncleanly via `utils.exit_with_error` without printing an unhandled Python\nbacktrace."
    },
    {
      "commit": "0d654ba67fc69009dc48c795896462d1d208e64d",
      "tree": "5474d0d3c302201ea1e667164bf8932c13439389",
      "parents": [
        "cad9eef9124b67d60b5e333a3e46dd9c199101f8"
      ],
      "author": {
        "name": "Sam Clegg",
        "email": "sbc@chromium.org",
        "time": "Wed Aug 12 22:42:45 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 12 22:42:45 2026"
      },
      "message": "[docs] Improve CMake documentation and add emcmake example (#27530)\n\nUpdate Building-Projects.rst to add a full CMake example showing emcmake\nusage, and clarify that emconfigure should not be used for CMake\nprojects.\n\nFixes: https://github.com/emscripten-core/emsdk/issues/1310"
    },
    {
      "commit": "cad9eef9124b67d60b5e333a3e46dd9c199101f8",
      "tree": "b9ab13f580e7836513ec761461a8919b44a5ec6c",
      "parents": [
        "9d9c25770276fdcba9b4069a103b5d421ed24d04"
      ],
      "author": {
        "name": "emscripten-bot",
        "email": "179889221+emscripten-bot@users.noreply.github.com",
        "time": "Wed Aug 12 18:53:55 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 12 18:53:55 2026"
      },
      "message": "Update emsdk version from be99a1e2 to 47206388 (#27527)\n\nThis is an automatic change generated by tools/maint/rebaseline_tests.py\n--update-emsdk.\n\nemsdk version updated: be99a1e2 \u003d\u003e 47206388\n\nThe following revisions were included in this update:\n\n```\n- 47206388 Remove exception that prevents archiving arm64 linux builds\n- ae09be2f Roll v8 from cb7c2e14ff8a to 2bb9ee82ef8a (44 revisions)\n- b07a27ef Roll llvm-project from adddcef03b6d to 742031c8aaf9 (35 revisions)\n- 4b503011 Roll binaryen from 302396a67643 to d8c6b2abe35e (2 revisions)\n- ee33338e Roll llvm-project from 57a9c4f939e5 to adddcef03b6d (20 revisions)\n- 94728c7d Roll binaryen from b3e9b4fbe69d to 302396a67643 (1 revision)\n- 1f2f50f3 Roll emscripten from 3858c434963d to 97e496bd5a85 (1 revision)\n- 99a6218c Roll llvm-project from 63cc0c35a7c0 to 57a9c4f939e5 (36 revisions)\n- 71a1e83c Roll emscripten from abdb6fd14ed0 to 3858c434963d (1 revision)\n- bc2bca79 Roll binaryen from 6906bf011c45 to b3e9b4fbe69d (1 revision)\n- 5a2b6bd7 Roll emscripten from 11230eb48f0d to abdb6fd14ed0 (10 revisions)\n- 2b275b54 Roll binaryen from efe5df1714bd to 6906bf011c45 (1 revision)\n- 85040b90 Roll llvm-project from d33566d943e5 to 63cc0c35a7c0 (73 revisions)\n- aa760ea9 Update Node version used in testing to from v22.16 to v24.19\n- 0b85fd6e Fix bad merge between a9e22c16a and 15ac5f163. NFC\n- a9e22c16 Enable more ruff checks. NFC\n- c2e10c17 Roll llvm-project from febf50748eff to d33566d943e5 (52 revisions)\n- 98c160f4 Roll llvm-project from cb9c4549dd20 to febf50748eff (11 revisions)\n- 83b6069f Roll v8 from 15ce9d47586c to cb7c2e14ff8a (16 revisions)\n```\n\nFull log:\nhttps://chromium.googlesource.com/emscripten-releases/+log/be99a1e2..47206388\n\nThe following (1) test expectation files were updated by\nrunning the tests with `--rebaseline`:\n\n```\ncodesize/test_codesize_hello_dylink_all.json: 856133 \u003d\u003e 856118 [-15 bytes / -0.00%]\n\nAverage change: -0.00% (-0.00% - -0.00%)\n```\n\nCo-authored-by: emscripten-bot \u003cemscripten-bot@users.noreply.github.com\u003e"
    },
    {
      "commit": "9d9c25770276fdcba9b4069a103b5d421ed24d04",
      "tree": "5c35eb7c989c05c41db7bd5fd18272c8cf998394",
      "parents": [
        "71bd2a8a0575981eaebaa99afef3ce3283c9a768"
      ],
      "author": {
        "name": "Kleis Auke Wolthuizen",
        "email": "github@kleisauke.nl",
        "time": "Wed Aug 12 17:31:00 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 12 17:31:00 2026"
      },
      "message": "Fix missing closing parentheses under `GL_DEBUG` (#27517)"
    },
    {
      "commit": "71bd2a8a0575981eaebaa99afef3ce3283c9a768",
      "tree": "b4b19472058e1c67106101a9f2b7c88bb9cad317",
      "parents": [
        "97e496bd5a85178a8b79306ee3b08690cd1d0570"
      ],
      "author": {
        "name": "HCL-JasonR",
        "email": "jason.riendeau@hcl-software.com",
        "time": "Wed Aug 12 17:30:20 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 12 17:30:20 2026"
      },
      "message": "Update Freetype to 2.14.3 (#27526)\n\nThere\u0027s a configuration option to use the system Harfbuzz. The Harfbuzz\nport uses Freetype, so I don\u0027t see a need to set that.\n\n\nhttps://gitlab.freedesktop.org/freetype/freetype/-/blob/master/docs/CHANGES?ref_type\u003dheads#L105"
    },
    {
      "commit": "97e496bd5a85178a8b79306ee3b08690cd1d0570",
      "tree": "0e14615acbcb23f91b4a29dce722774911ed13ee",
      "parents": [
        "3858c434963db0a5c13bfab829788e2b9cf874a9"
      ],
      "author": {
        "name": "Sam Clegg",
        "email": "sbc@chromium.org",
        "time": "Tue Aug 11 23:11:18 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 11 23:11:18 2026"
      },
      "message": "Do not check `isFileURI` in `SINGLE_FILE` mode (#27521)\n\nIn `SINGLE_FILE` mode, `binaryFile` is passed as a `Uint8Array` in\nmemory. Guarding the `isFileURI` assertion warning with `#if ASSERTIONS\n\u0026\u0026 !SINGLE_FILE` prevents `isFileURI(binaryFile)` from being called on a\n`Uint8Array` when instantiation fails, avoiding `TypeError: A.startsWith\nis not a function`.\n\nSee: #27156"
    },
    {
      "commit": "3858c434963db0a5c13bfab829788e2b9cf874a9",
      "tree": "a4f38aa2c230b026ab294aeaff8346988696c1b8",
      "parents": [
        "abdb6fd14ed0dd714491b0f6a6f6027f4c710e9e"
      ],
      "author": {
        "name": "Hendrik Hübner",
        "email": "117831077+HendrikHuebner@users.noreply.github.com",
        "time": "Tue Aug 11 22:25:59 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 11 22:25:59 2026"
      },
      "message": "Fix exporting of invalid JavaScript identifiers (#27522)\n\nThe fix from #25922 seems incomplete, because it only applied on the\nbranch with \u0027Assertions\u0027.\n\nWhen `settings.ASSERTIONS` is falsy, we still try to declare the a\nvariable with an invalid identifier."
    },
    {
      "commit": "abdb6fd14ed0dd714491b0f6a6f6027f4c710e9e",
      "tree": "9802fc4677575b149b6e56da64f4a34e601b93b0",
      "parents": [
        "016715b087874378cfee7ebed60fb30826dc637d"
      ],
      "author": {
        "name": "Hood Chatham",
        "email": "roberthoodchatham@gmail.com",
        "time": "Tue Aug 11 20:24:55 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 11 20:24:55 2026"
      },
      "message": "Remove \"EXPORTED_FUNCTIONS used when linkable set\" warning (#27514)\n\nResolves #21838.\n\nSince #21785 \"Avoid creating JS symbols for symbols only used in dynamic\nlinking\" was merged, it has been necessary to set `-sEXPORTED_FUNCTIONS` even\nwhen using `-sSIDE_MODULE\u003d1` or `-sMAIN_MODULE\u003d1` so this warning is no longer\ncorrect."
    },
    {
      "commit": "016715b087874378cfee7ebed60fb30826dc637d",
      "tree": "4fdb837861141f234f4e1449f719db778a70f379",
      "parents": [
        "44b51692fe0b5f958b46141d490bcbaee5881c52"
      ],
      "author": {
        "name": "Sam Clegg",
        "email": "sbc@chromium.org",
        "time": "Tue Aug 11 18:52:20 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 11 18:52:20 2026"
      },
      "message": "[openal] Remove code duplication in setSourceParam(AL_BUFFER). NFC (#27513)\n\nConsolidate the zero (`AL_BUFFER` \u003d 0) and non-zero buffer handling in\n`setSourceParam(AL_BUFFER)`.\n\nPreviously, setting `AL_BUFFER` to 0 handled queue clearing and refCount\ndecrements in a separate `if (value \u003d\u003d\u003d 0)` branch from non-zero buffer\nassignment.\n\nThis change is safe and NFC because:\n1. `AL.buffers[0]` is pre-populated as a placeholder object in\n`AL.buffers`, so looking up `buf \u003d AL.buffers[value]` works for 0 and\nwill not trigger the `!buf` check (`AL_INVALID_VALUE`).\n2. Moving the `!buf` check to the top allows invalid non-zero buffer IDs\nto return early before modifying `bufQueue` or `refCount`, preserving\nexisting error handling behavior.\n3. In both branches, previous buffer refCounts in `src.bufQueue` are\ndecremented and `src.bufQueue` is replaced with `[buf]` (which is\n`[AL.buffers[0]]` when `value \u003d\u003d\u003d 0`).\n4. `src.bufsProcessed` is reset to 0 in both cases.\n5. The remaining differences (incrementing `buf.refCount` and setting\n`src.type` to `AL_STATIC` vs `AL_UNDETERMINED`) are handled by checking\n`if (!value)`.\n\nSplit out from #27425."
    },
    {
      "commit": "44b51692fe0b5f958b46141d490bcbaee5881c52",
      "tree": "91097f188b463acb6e3ebfff8d50ef06e67b36f8",
      "parents": [
        "191e23cfebf547d8b3b94eeab893b4cc5cdc3c1e"
      ],
      "author": {
        "name": "Sam Clegg",
        "email": "sbc@chromium.org",
        "time": "Tue Aug 11 18:23:18 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 11 18:23:18 2026"
      },
      "message": "[test] Connect to 127.0.0.1 in verify_tcp_connection to fix socket test timeouts (#27523)\n\nIn `test/test_sockets.py`, `verify_tcp_connection` previously attempted\nto connect to `(\u0027localhost\u0027, port)`. In Linux CI container environments,\n`socket.create_connection((\u0027localhost\u0027, port))` resolves `localhost` to\nIPv6 `::1` first.\n\nHowever, compiled WebSocket servers in Emscripten bind to `0.0.0.0`\n(IPv4 only). When polling `localhost`, attempts to connect to `::1`\ntimed out on each retry, causing `verify_tcp_connection` to fail after\n10 retries and raise `[Compiled server failed to start up in a timely\nmanner]` even though the server process was running and listening on\n`127.0.0.1`.\n\nChange `verify_tcp_connection` to accept `port` directly and connect to\n`127.0.0.1`, bypassing DNS resolution and connecting straight to IPv4.\n\nSee: #27283"
    },
    {
      "commit": "191e23cfebf547d8b3b94eeab893b4cc5cdc3c1e",
      "tree": "8d3f7de2b2516252386804632aecc4f61ade3588",
      "parents": [
        "694e4517b4eeb04bcf19098ee77cdc6c5a879b7d"
      ],
      "author": {
        "name": "Sam Clegg",
        "email": "sbc@chromium.org",
        "time": "Tue Aug 11 18:20:00 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 11 18:20:00 2026"
      },
      "message": "Update wasm-eh requirements in test_embind_tsgen_exceptions (#27524)\n\nThis should have been updated in #27105"
    },
    {
      "commit": "694e4517b4eeb04bcf19098ee77cdc6c5a879b7d",
      "tree": "2bed8ceb61e1be4201c80cb549eae03bdcc8a49a",
      "parents": [
        "249c13b695885430105999f7698c982d8151df64"
      ],
      "author": {
        "name": "emscripten-bot",
        "email": "179889221+emscripten-bot@users.noreply.github.com",
        "time": "Tue Aug 11 17:34:46 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 11 17:34:46 2026"
      },
      "message": "Update emsdk version from 8d72db9a to be99a1e2 (#27519)\n\nThis is an automatic change generated by tools/maint/rebaseline_tests.py\n--update-emsdk.\n\nemsdk version updated: 8d72db9a \u003d\u003e be99a1e2\n\nThe following revisions were included in this update:\n\n```\n- be99a1e2 Roll llvm-project from 2a0ecec03efe to cb9c4549dd20 (57 revisions)\n- 15ac5f16 Add Check Environment build step to validate host tools, compression, and release scripts\n- 5efb33f0 Roll emscripten from 443f97046197 to 11230eb48f0d (1 revision)\n- adaed80f Add gcloud CIPD package to DEPS and PATH\n- d70d1fa4 Roll binaryen from f1b0e46c248c to efe5df1714bd (2 revisions)\n- b0e3bb64 Roll llvm-project from 6f65ede5cb8b to 2a0ecec03efe (67 revisions)\n- 333001a2 Roll emscripten from 4b49a33f2e79 to 443f97046197 (1 revision)\n- 5025856e Convert gsutil usage to gcloud storage. NFC\n- 36767eb2 Roll llvm-project from 8ea1b9dc4dbe to 6f65ede5cb8b (30 revisions)\n- 340e43f6 Roll llvm-project from 2b4469220062 to 8ea1b9dc4dbe (17 revisions)\n```\n\nFull log:\nhttps://chromium.googlesource.com/emscripten-releases/+log/8d72db9a..be99a1e2\n\nThe following (1) test expectation files were updated by\nrunning the tests with `--rebaseline`:\n\n```\ncodesize/test_codesize_hello_dylink_all.json: 856215 \u003d\u003e 856210 [-5 bytes / -0.00%]\n\nAverage change: -0.00% (-0.00% - -0.00%)\n```\n\nCo-authored-by: emscripten-bot \u003cemscripten-bot@users.noreply.github.com\u003e"
    },
    {
      "commit": "249c13b695885430105999f7698c982d8151df64",
      "tree": "59f45351acd9d2c1f913becf39f18f59714e4d5c",
      "parents": [
        "3ff1a6ccca6b7feda5466228f1b203fbc5429998"
      ],
      "author": {
        "name": "Sam Clegg",
        "email": "sbc@chromium.org",
        "time": "Tue Aug 11 17:34:29 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 11 17:34:29 2026"
      },
      "message": "Consistent closure compiler args (#27516)\n\nWe we only passing `--max_old_space_size` on non-Windows because\nget_npm_cmd has no way to add node arguments (that node command is\nembedded within `node_modules/.bin/closure-compiler` so cannot be\nmodified directly. Settings NODE_OPTIONS, works on all platforms.\n\nThis platform discrepancy dates back to #9989 when\n`--max_old_space_size` was first added."
    },
    {
      "commit": "3ff1a6ccca6b7feda5466228f1b203fbc5429998",
      "tree": "229c434085a566c7a62464910a5d701b40776309",
      "parents": [
        "baab80c0d0fc6f41ec34432a13039fcfeb395869"
      ],
      "author": {
        "name": "Sam Clegg",
        "email": "sbc@chromium.org",
        "time": "Tue Aug 11 16:11:08 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 11 16:11:08 2026"
      },
      "message": "Prevent HTML minification from corrupting embedded WASM data (#27509)\n\nPass `--ignore-custom-fragments \u0027[]\u0027` to `html-minifier-terser`.\n\nBy default, `html-minifier-terser` includes custom fragment regexes\n`/\u003c%[\\s\\S]*?%\u003e/` and `/\u003c\\?[\\s\\S]*?\\?\u003e/` intended for ignoring\nserver-side\npreprocessor tags (like PHP `\u003c?php ... ?\u003e` or ASP `\u003c% ... %\u003e`). When\nmatching these fragments, `html-minifier-terser` matches surrounding\nwhitespace `\\s*` and collapses it.\n\nWhen WASM binary data is embedded in JavaScript inside an HTML file\n(such as in `-sSINGLE_FILE\u003d1` builds), arbitrary byte sequences in the\nWASM binary can happen to match `\u003c?...?\u003e` or `\u003c%...%\u003e`. In these cases,\n`html-minifier-terser` mistakes the binary data for preprocessor tags\nand collapses surrounding spaces (`0x20` bytes), corrupting the embedded\nWASM binary payload.\n\nPassing `--ignore-custom-fragments \u0027[]\u0027` disables this behavior. It is\nsafe for Emscripten because generated HTML files are standard\nclient-side documents, not server-side PHP/ASP template files containing\npreprocessor tags.\n\nFixes: #27156"
    },
    {
      "commit": "baab80c0d0fc6f41ec34432a13039fcfeb395869",
      "tree": "852de8b14f0a1f0f5abca4eac1b30c641d3df338",
      "parents": [
        "032b3ba7b47889a1cb1d0ec903c8689367ee0041"
      ],
      "author": {
        "name": "Sam Clegg",
        "email": "sbc@chromium.org",
        "time": "Tue Aug 11 00:12:42 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 11 00:12:42 2026"
      },
      "message": "[ci] Verify cmake and ninja installation after choco install (#27512)\n\nChocolatey can return exit code 0 even when package resolution fails\n(e.g., when a NuGet feed timeout causes a `NuGetResolverInputException`\nand Chocolatey drops the failed package from the install list. See\nhttps://github.com/chocolatey/choco/issues/1609\n\nExplicitly run `cmake --version` and `ninja --version` after `choco` in\n`.circleci/config.yml` to ensure the executables exist in `PATH` and\nfail the step immediately if either package failed to install.\n\nFixes: #27511"
    },
    {
      "commit": "032b3ba7b47889a1cb1d0ec903c8689367ee0041",
      "tree": "630a81e6b7c1ee819d501fee444228b06da0d1b3",
      "parents": [
        "5198bc57a5075b0d8a350385a341292b6a35afe2"
      ],
      "author": {
        "name": "Sam Clegg",
        "email": "sbc@chromium.org",
        "time": "Tue Aug 11 00:10:11 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 11 00:10:11 2026"
      },
      "message": "Require node v26 for GROWABLE_ARRAYBUFFERS feature (#27105)\n\nFollow up #27103\nCan someone confirm that it fixes this issue?  (I know I\u0027m being lazy I coudl"
    },
    {
      "commit": "5198bc57a5075b0d8a350385a341292b6a35afe2",
      "tree": "5d133071825023f08cde333fdd215f5ec75efa1a",
      "parents": [
        "11230eb48f0d44321ca08d883708d81e460d41f8"
      ],
      "author": {
        "name": "emscripten-bot",
        "email": "179889221+emscripten-bot@users.noreply.github.com",
        "time": "Mon Aug 10 21:22:50 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 10 21:22:50 2026"
      },
      "message": "Update emsdk version from 43184c3b to 8d72db9a (#27510)\n\nThis is an automatic change generated by tools/maint/rebaseline_tests.py\n--update-emsdk.\n\nemsdk version updated: 43184c3b \u003d\u003e 8d72db9a\n\nThe following revisions were included in this update:\n\n```\n- 8d72db9a Roll llvm-project from 3f4f5199cc48 to 2b4469220062 (13 revisions)\n- c92f07f0 Roll v8 from 2e8cedb300f5 to 15ce9d47586c (2 revisions)\n- 863ab1fd Roll emscripten from 15351ffbe868 to 4b49a33f2e79 (1 revision)\n- 46c9099d Roll llvm-project from 7078915abc5b to 3f4f5199cc48 (14 revisions)\n- bc3a7d58 Roll emscripten from b1fc37fb8516 to 15351ffbe868 (1 revision)\n- 75890a86 Roll llvm-project from 1a08c4064249 to 7078915abc5b (14 revisions)\n- 7213c01f Roll llvm-project from 5371bcaa368e to 1a08c4064249 (5 revisions)\n- 42f549f1 Roll llvm-project from 1f112d62e1fa to 5371bcaa368e (11 revisions)\n```\n\nFull log:\nhttps://chromium.googlesource.com/emscripten-releases/+log/43184c3b..8d72db9a\n\nCo-authored-by: emscripten-bot \u003cemscripten-bot@users.noreply.github.com\u003e"
    },
    {
      "commit": "11230eb48f0d44321ca08d883708d81e460d41f8",
      "tree": "59eb065857b26a664021874a5ab674f951d2f195",
      "parents": [
        "443f97046197de49c3636681c07d7d6fa926b9c4"
      ],
      "author": {
        "name": "Guy Bedford",
        "email": "guybedford@gmail.com",
        "time": "Mon Aug 10 20:28:42 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 10 20:28:42 2026"
      },
      "message": "Link the Wasm EH runtime under -fwasm-exceptions without requiring C++ (#27496)\n\nThis makes `-fwasm-exceptions` link the Wasm EH runtime independently of\nC++ linking.\n\nWasm EH objects can be produced by non-C++ frontends - notably rustc,\nwhose precompiled std uses Wasm exceptions for unwinding and which\ninvokes `emcc` (not `em++`) as its linker. Since `DEFAULT_TO_CXX` was\ndisabled by default in #27469, any rust-driven emcc link now fails with:\n\n```\nwasm-ld: error: libstd-*.rlib: undefined symbol: __cpp_exception\nwasm-ld: error: libpanic_unwind-*.rlib: undefined symbol: _Unwind_RaiseException\n```\n\nbecause both libunwind and the `__cpp_exception` tag (previously defined\nin libc++abi) were only linked under `LINK_AS_CXX`. The tag and the\nunwinding runtime are language-agnostic runtime support for the Wasm EH\nLLVM lowering, not part of the C++ ABI surface.\n\nThis PR now includes #27498 as its base, which provides the same\n`_Unwind_*` linkability for the non-Wasm-EH modes on the JS side.\n\nWhat\u0027s implemented:\n\n* The `__cpp_exception` tag definition moves from libc++abi\n(`__cpp_exception.S`) into libunwind\u0027s `Unwind-wasm.c` as inline asm,\nmatching upstream llvm/llvm-project#185770.\n* libunwind is linked whenever `WASM_EXCEPTIONS` is enabled, rather than\nonly when linking as C++.\n\nTest coverage extends `test_libunwind` from #27498 with `wasm_eh` and\n`wasm_legacy_eh` variants (completing its TODO), and adds\n`test_cpp_exception_tag` linking an asm object that throws the tag\ndirectly from a C caller - the same reference pattern as rustc-generated\ncatch/throw sites - which fails to link without this change. The\nnow-unneeded `DEFAULT_TO_CXX` workaround is dropped from\n`test_wasi_with_sjlj`. Existing C++ Wasm EH coverage\n(`core0.test_exceptions_*`) passes unchanged.\n\n_Made with AI assistance under my review_"
    },
    {
      "commit": "443f97046197de49c3636681c07d7d6fa926b9c4",
      "tree": "c2b42126794bd822ee0e49621709e88babe25ce5",
      "parents": [
        "4b49a33f2e795d3d6a08991c572eb22778b8a8bb"
      ],
      "author": {
        "name": "Sam Clegg",
        "email": "sbc@chromium.org",
        "time": "Mon Aug 10 16:52:24 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 10 16:52:24 2026"
      },
      "message": "[pthread] Clear waitAsync waiter in returnWorkerToPool to prevent deadlock (#27501)\n\nWhen a thread exits and its worker is returned to pool, clear any\npending `Atomics.waitAsync` waiter armed on the thread\u0027s structure\nbefore freeing its memory in `_emscripten_thread_free_data`.\n\nFixes: #27492"
    },
    {
      "commit": "4b49a33f2e795d3d6a08991c572eb22778b8a8bb",
      "tree": "0f0a01cdd0d9f3e90511c0334bfee01f718e8046",
      "parents": [
        "15351ffbe8681e9afc26d76c1d57cd542859fe71"
      ],
      "author": {
        "name": "emscripten-bot",
        "email": "179889221+emscripten-bot@users.noreply.github.com",
        "time": "Sun Aug 09 23:55:14 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Aug 09 23:55:14 2026"
      },
      "message": "Update emsdk version from cef24b4f to 43184c3b (#27507)\n\nThis is an automatic change generated by tools/maint/rebaseline_tests.py\n--update-emsdk.\n\nemsdk version updated: cef24b4f \u003d\u003e 43184c3b\n\nThe following revisions were included in this update:\n\n```\n- 43184c3b Roll llvm-project from bb3419bc0de6 to 1f112d62e1fa (11 revisions)\n- 648c1aeb Roll v8 from eebbc36f6f06 to 2e8cedb300f5 (2 revisions)\n- 572c7ab4 Roll llvm-project from 35854f82e5ce to bb3419bc0de6 (24 revisions)\n- 34ead310 Roll emscripten from 2f3d9cc68dde to b1fc37fb8516 (1 revision)\n- b193c5df Roll llvm-project from 4e274280c33e to 35854f82e5ce (2 revisions)\n- b30ba868 Roll llvm-project from e4b930171eb8 to 4e274280c33e (4 revisions)\n- 3eb917ab Roll llvm-project from 2f9775ad49bf to e4b930171eb8 (4 revisions)\n```\n\nFull log:\nhttps://chromium.googlesource.com/emscripten-releases/+log/cef24b4f..43184c3b\n\nCo-authored-by: emscripten-bot \u003cemscripten-bot@users.noreply.github.com\u003e"
    },
    {
      "commit": "15351ffbe8681e9afc26d76c1d57cd542859fe71",
      "tree": "701ea9de853df00f58e733b4e58ea490853b5d2a",
      "parents": [
        "b1fc37fb8516edc2dbd98a5c1b6313ad2a0bf7b0"
      ],
      "author": {
        "name": "Yan Pujante",
        "email": "yan@pongasoft.com",
        "time": "Sun Aug 09 19:21:54 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Aug 09 19:21:54 2026"
      },
      "message": "[contrib.glfw3] Upgraded emscripten-glfw to latest 3.5.1 GLFW API (#27508)\n\nGLFW just released a new version and I ported emscripten-glfw to it.\nHere are the release notes:\n\n- Upgraded to GLFW 3.5.1 (check the\n[Changelog](https://www.glfw.org/changelog.html) for details, although\nmost changes\n  are related to bug fixes in other platforms)\n- Added support for the new input mode `GLFW_UNLIMITED_MOUSE_BUTTONS`"
    },
    {
      "commit": "b1fc37fb8516edc2dbd98a5c1b6313ad2a0bf7b0",
      "tree": "c046409ffabe88d73722ea80a5d2c475fc15d9c4",
      "parents": [
        "2f3d9cc68dde05c86b0efb91f96446bad8789314"
      ],
      "author": {
        "name": "emscripten-bot",
        "email": "179889221+emscripten-bot@users.noreply.github.com",
        "time": "Sat Aug 08 18:37:09 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 08 18:37:09 2026"
      },
      "message": "Update emsdk version from 763c2d21 to cef24b4f (#27502)\n\nThis is an automatic change generated by tools/maint/rebaseline_tests.py\n--update-emsdk.\n\nemsdk version updated: 763c2d21 \u003d\u003e cef24b4f\n\nThe following revisions were included in this update:\n\n```\n- cef24b4f Roll llvm-project from 83959f01d350 to 2f9775ad49bf (33 revisions)\n- 75605f3c Roll emscripten from ec43f619371c to 2f3d9cc68dde (1 revision)\n- d4e9387f Roll emscripten from 4946c02c3801 to ec43f619371c (1 revision)\n- 970da17d Roll emscripten from 8be44a7966ad to 4946c02c3801 (2 revisions)\n- 84286965 Roll llvm-project from b3a4504bd99b to 83959f01d350 (106 revisions)\n- c36617da Roll v8 from 45a68e7aa0d4 to eebbc36f6f06 (35 revisions)\n- 6d9c248b Roll binaryen from b97310a2f0c5 to f1b0e46c248c (4 revisions)\n- 2613781d Roll llvm-project from 34323ab08e6e to b3a4504bd99b (31 revisions)\n```\n\nFull log:\nhttps://chromium.googlesource.com/emscripten-releases/+log/763c2d21..cef24b4f\n\nThe following (21) test expectation files were updated by\nrunning the tests with `--rebaseline`:\n\n```\ncodesize/test_codesize_cxx_ctors1.json: 153927 \u003d\u003e 153937 [+10 bytes / +0.01%]\ncodesize/test_codesize_cxx_ctors2.json: 153333 \u003d\u003e 153343 [+10 bytes / +0.01%]\ncodesize/test_codesize_cxx_except.json: 200099 \u003d\u003e 200109 [+10 bytes / +0.00%]\ncodesize/test_codesize_cxx_except_wasm.json: 169465 \u003d\u003e 169475 [+10 bytes / +0.01%]\ncodesize/test_codesize_cxx_except_wasm_legacy.json: 167325 \u003d\u003e 167335 [+10 bytes / +0.01%]\ncodesize/test_codesize_cxx_lto.json: 119542 \u003d\u003e 119548 [+6 bytes / +0.01%]\ncodesize/test_codesize_cxx_mangle.json: 266429 \u003d\u003e 266439 [+10 bytes / +0.00%]\ncodesize/test_codesize_cxx_noexcept.json: 155837 \u003d\u003e 155847 [+10 bytes / +0.01%]\ncodesize/test_codesize_cxx_wasmfs.json: 180955 \u003d\u003e 180965 [+10 bytes / +0.01%]\ncodesize/test_codesize_files_wasmfs.json: 63232 \u003d\u003e 63240 [+8 bytes / +0.01%]\ncodesize/test_codesize_hello_dylink.json: 44105 \u003d\u003e 44113 [+8 bytes / +0.02%]\ncodesize/test_codesize_hello_dylink_all.json: 856207 \u003d\u003e 856215 [+8 bytes / +0.00%]\ncodesize/test_codesize_mem_O3.json: 9135 \u003d\u003e 9143 [+8 bytes / +0.09%]\ncodesize/test_codesize_mem_O3_grow.json: 9470 \u003d\u003e 9478 [+8 bytes / +0.08%]\ncodesize/test_codesize_mem_O3_grow_standalone.json: 9298 \u003d\u003e 9306 [+8 bytes / +0.09%]\ncodesize/test_codesize_mem_O3_standalone.json: 9132 \u003d\u003e 9140 [+8 bytes / +0.09%]\ncodesize/test_codesize_mem_O3_standalone_lib.json: 8325 \u003d\u003e 8333 [+8 bytes / +0.10%]\ncodesize/test_codesize_mem_O3_standalone_narg.json: 8447 \u003d\u003e 8455 [+8 bytes / +0.09%]\ncodesize/test_codesize_mem_O3_standalone_narg_flto.json: 7378 \u003d\u003e 7386 [+8 bytes / +0.11%]\ncodesize/test_codesize_minimal_pthreads.json: 25964 \u003d\u003e 25975 [+11 bytes / +0.04%]\ncodesize/test_codesize_minimal_pthreads_memgrowth.json: 26416 \u003d\u003e 26427 [+11 bytes / +0.04%]\n\nAverage change: +0.04% (+0.00% - +0.11%)\n```\n\nCo-authored-by: emscripten-bot \u003cemscripten-bot@users.noreply.github.com\u003e"
    },
    {
      "commit": "2f3d9cc68dde05c86b0efb91f96446bad8789314",
      "tree": "b34efbec87ea095bc55edd1911577fd365b595fd",
      "parents": [
        "ec43f619371c1e9a426391c3eb43458e3faa34a9"
      ],
      "author": {
        "name": "Sam Clegg",
        "email": "sbc@chromium.org",
        "time": "Sat Aug 08 01:32:19 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 08 01:32:19 2026"
      },
      "message": "[Emscripten-EH] Implement `__cxa_throw` in terms of `_Unwind_RaiseException` (#27498)\n\nIt turns out the libunwind symbols are supposed to always be available,\nenen non-C++ programs. This means that `__cxa_throw` should be\nimplemented in terms of `_Unwind_RaiseException` and not the other way\naround.\n\n- Moves the libunwind code into a new libunwind.js file (only use for\nEmscripten EH).\n- Add support for `_Unwind_Resume`\n- Implement `__cxa_throw` and other exception-handling APIs in terms of\nthe lower level `_Unwind` API.\n\nInspired by #27496"
    },
    {
      "commit": "ec43f619371c1e9a426391c3eb43458e3faa34a9",
      "tree": "9ba117738d02d6f96fea1cdd9fc159f3ddd58a06",
      "parents": [
        "4946c02c3801b587af3140e097c0985168d0e620"
      ],
      "author": {
        "name": "Hood Chatham",
        "email": "roberthoodchatham@gmail.com",
        "time": "Sat Aug 08 01:21:07 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 08 01:21:07 2026"
      },
      "message": "Update instantiateWasm docs and tests (#27493)\n\nSince #24967, instantiateWasm works with source maps (in addition to\nsanitizers).\n\nIn all cases the return value is ignored so I removed the discussion of\nreturn values. When dynamic linking or pthreads are enabled,\nsuccessCallback expects both the instance and the module. I think the\nsimplest thing to do in the documentaion is to say that we always pass\nboth instance and module. I also updated all the tests in accordance\nwith no return value and pass both instance and module.\n\nI also added a default handler value to the docs."
    },
    {
      "commit": "4946c02c3801b587af3140e097c0985168d0e620",
      "tree": "aba1f254d3888c2f75fd529403c0aeec0c2d1dfa",
      "parents": [
        "ba1040c2d2bb4cdb64712519cf7d2312b8a0b9c4"
      ],
      "author": {
        "name": "Sam Clegg",
        "email": "sbc@chromium.org",
        "time": "Fri Aug 07 19:25:36 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 07 19:25:36 2026"
      },
      "message": "[test] Assert parameterize arguments are tuples and convert test lists (#27495)\n\nEnsure all argument lists passed to `parameterize` and `@parameterized`\nare tuples so that composing multiple parameterizing decorators via\ntuple concatenation (`v2 + v1`) is always valid.\n\nAdd an assertion in `parameterize` to enforce tuple parameter values,\nand convert existing list parameter values in tests to tuples.\n\nStandardizing on tuples was chosen over lists because all 17 predefined\ndecorators in `decorators.py` and ~95% of `@parameterized` call sites in\ntest files (1,041 tuples vs 165 lists) already used tuples. Going with\nlists would have resulted in a ~6x larger patch.\n\nSee\nhttps://github.com/emscripten-core/emscripten/pull/27493#discussion_r3731257269"
    },
    {
      "commit": "ba1040c2d2bb4cdb64712519cf7d2312b8a0b9c4",
      "tree": "4a57ee70e70a2c279526abef8e2bb32cfb8be9e4",
      "parents": [
        "8be44a7966aded65bbfa16e0847d6a6dc35b91a0"
      ],
      "author": {
        "name": "emscripten-bot",
        "email": "179889221+emscripten-bot@users.noreply.github.com",
        "time": "Fri Aug 07 16:37:47 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 07 16:37:47 2026"
      },
      "message": "Update emsdk version from 36d4c36b to 763c2d21 (#27497)\n\nThis is an automatic change generated by tools/maint/rebaseline_tests.py\n--update-emsdk.\n\nemsdk version updated: 36d4c36b \u003d\u003e 763c2d21\n\nThe following revisions were included in this update:\n\n```\n- 763c2d21 Roll llvm-project from 9219721a5d68 to 34323ab08e6e (20 revisions)\n- ef94d00b Roll llvm-project from 3705e63f8099 to 9219721a5d68 (38 revisions)\n- efb2724e Roll emscripten from eb51a986459b to 8be44a7966ad (2 revisions)\n- 74f9062f Roll binaryen from e821d1759676 to b97310a2f0c5 (1 revision)\n- 2bc32c56 Roll emscripten from ad0641c1af9f to eb51a986459b (1 revision)\n- 76482dc1 Roll llvm-project from 2f4043eb92f7 to 3705e63f8099 (54 revisions)\n- 5895336e Roll emscripten from 01346488e29f to ad0641c1af9f (1 revision)\n- b4686154 Roll v8 from 3c06a07680f8 to 45a68e7aa0d4 (48 revisions)\n- 04765734 Roll llvm-project from 0b12400bd4f0 to 2f4043eb92f7 (15 revisions)\n```\n\nFull log:\nhttps://chromium.googlesource.com/emscripten-releases/+log/36d4c36b..763c2d21\n\nCo-authored-by: emscripten-bot \u003cemscripten-bot@users.noreply.github.com\u003e"
    },
    {
      "commit": "8be44a7966aded65bbfa16e0847d6a6dc35b91a0",
      "tree": "0c0f83fae92c2f4f7c5e09e6d46b574c2ce78c90",
      "parents": [
        "b1be552965b354caf380c4b2ceb873ce3979b096"
      ],
      "author": {
        "name": "Hood Chatham",
        "email": "roberthoodchatham@gmail.com",
        "time": "Thu Aug 06 21:50:50 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 06 21:50:50 2026"
      },
      "message": "Update comment about passing --no-shlib-sigcheck when configuring (#27494)"
    },
    {
      "commit": "b1be552965b354caf380c4b2ceb873ce3979b096",
      "tree": "f48c67ac12f71960fb4e632abbb2317b6dee1953",
      "parents": [
        "eb51a986459b585f24be38362e2227d29e0d70a1"
      ],
      "author": {
        "name": "Hood Chatham",
        "email": "roberthoodchatham@gmail.com",
        "time": "Thu Aug 06 20:01:25 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 06 20:01:25 2026"
      },
      "message": "Turn off shared library signature check for autoconf checks (#27470)\n\n`AC_CHECK_LIB(somelib, func)` writes the following to conftest.c:\n\n```C\nchar func ();\n\nint main(void) {\n   return func ();\n}\n```\nThen runs `emcc conftest.c -lsomelib` and checks whether it succeeds.\nWith static libraries the signature mismatch is just a warning but with\nshared libraries it is a hard error. Before emcc 6.0.0, even if\nconfigure tried to make a shared library it would make a fake dynamic\nlibrary instead and we didn\u0027t see this problem. But since then it makes\na real dynamic library and then fails to configure.\n\nThe fix is if we are configuring pass `-Wl,--no-shlib-sigcheck` to\ndisable the signature check."
    },
    {
      "commit": "eb51a986459b585f24be38362e2227d29e0d70a1",
      "tree": "828798e290d856fe4300f3e645e0d7db19876b13",
      "parents": [
        "ad0641c1af9f8aa87353e7721f4db280d5cf53ec"
      ],
      "author": {
        "name": "Sam Clegg",
        "email": "sbc@chromium.org",
        "time": "Thu Aug 06 16:15:18 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 06 16:15:18 2026"
      },
      "message": "Remove extra line breaks in JS error messages. NFC (#27489)\n\nThe line breaks here don\u0027t really help because the strings themselves\nare already way over the max line length.\n\nIMHO these extra line breaks only hurt readability."
    },
    {
      "commit": "ad0641c1af9f8aa87353e7721f4db280d5cf53ec",
      "tree": "4ad1f6f6d01610d99c73f21bc588d2f37738161c",
      "parents": [
        "01346488e29fcd589e99abffc3e99f48b18d8d1e"
      ],
      "author": {
        "name": "emscripten-bot",
        "email": "179889221+emscripten-bot@users.noreply.github.com",
        "time": "Thu Aug 06 15:33:32 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 06 15:33:32 2026"
      },
      "message": "Update emsdk version from 504cd45c to 36d4c36b (#27491)\n\nThis is an automatic change generated by tools/maint/rebaseline_tests.py\n--update-emsdk.\n\nemsdk version updated: 504cd45c \u003d\u003e 36d4c36b\n\nThe following revisions were included in this update:\n\n```\n- 36d4c36b Roll llvm-project from ff6d537b14d7 to 0b12400bd4f0 (337 revisions)\n- 4bc40138 Roll emscripten from 739800b54664 to 01346488e29f (3 revisions)\n- 0b07d115 Roll emscripten from 6d5db104dc67 to 739800b54664 (1 revision)\n- 1cca58a3 Roll binaryen from fc8f31cfe291 to e821d1759676 (1 revision)\n- f6ceb65c Roll emscripten from ce75e0688409 to 6d5db104dc67 (1 revision)\n- 833aa203 Version 6.0.6 RC\n- 541b30a7 Roll v8 from 32d3f8c07ee3 to 3c06a07680f8 (32 revisions)\n```\n\nFull log:\nhttps://chromium.googlesource.com/emscripten-releases/+log/504cd45c..36d4c36b\n\nCo-authored-by: emscripten-bot \u003cemscripten-bot@users.noreply.github.com\u003e"
    },
    {
      "commit": "01346488e29fcd589e99abffc3e99f48b18d8d1e",
      "tree": "c65b66c7508b74c8940c23b0cbb795f62d873352",
      "parents": [
        "2f34f27fecbe5b3db93aad05321327d130dfcd70"
      ],
      "author": {
        "name": "Guy Bedford",
        "email": "guybedford@gmail.com",
        "time": "Wed Aug 05 23:26:10 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 05 23:26:10 2026"
      },
      "message": "Support JS libraries self-registering their exports with visibility attributes (#27436)\n\nThis implements support for JS libraries declaring their own public\nexports using per-symbol attributes, split out from #27208 as requested\nin review there.\n\nThe attributes separate symbol inclusion from export visibility:\n\n* `__export: true` exports the symbol if it is otherwise included.\n* `__force: true` includes the symbol even when nothing references it,\nwithout exporting it, analogous to `DEFAULT_LIBRARY_FUNCS_TO_INCLUDE`.\n* Using both unconditionally includes and exports the symbol.\n\nThis allows binding layers such as wasm-bindgen to define a public JS\nAPI surface distinct from the wasm export names, including exported\nclasses and namespaces:\n\n```js\naddToLibrary({\n  $Counter__export: true,\n  $Counter__force: true,\n  $Counter: class Counter { /* ... */ },\n});\n```\n\nThe attributes are consumed as JS library compile-time metadata and do\nnot appear in generated output. The JS compiler forwards only the\nsymbols actually emitted through `extraExports`, allowing the\n`WASM_ESM_INTEGRATION` wrapper to re-export them without mutating or\nreturning the global `EXPORTED_FUNCTIONS` setting. Decorated exports are\nalso retained through meta-DCE.\n\nTest coverage verifies the independent attribute semantics under legacy\nmodularized output, `MODULARIZE\u003dinstance`, `WASM_ESM_INTEGRATION`, and\noptimized `-O3` builds, together with decorator validation.\n\n_Made with AI assistance under my review_"
    }
  ],
  "next": "2f34f27fecbe5b3db93aad05321327d130dfcd70"
}
