6.0.2

emscripten-core/emscripten6.0.2Jul 1, 2026by emscripten-bot

Upgrading?

Release notes summary

This release improves memory management flexibility with enhanced `GROWABLE_ARRAYBUFFERS` options and introduces a new Node.js networking feature. It also removes default symbols from the module API to improve security and clarity.

Key Highlights

  • New `-sNODERAWSOCKETS` setting for Node.js TCP/UDP sockets without proxy processes
  • `GROWABLE_ARRAYBUFFERS` now supports `=1` (auto-detect) and `=2` (forced) modes
  • Removed 14 symbols from default `INCOMING_MODULE_JS_API` (requires explicit flag)

Breaking Changes

  • The following symbols are no longer included in `INCOMING_MODULE_JS_API` by default: GL_MAX_TEXTURE_IMAGE_UNITS, SDL_canPlayWithWebAudio, SDL_numSimultaneouslyQueuedBuffers, freePreloadedMediaOnUse, preinitializedWebGLContext, keyboardListeningElement, doNotCaptureKeyboard, extraStackTrace, preloadPlugins, postMainLoop, preMainLoop, forcedAspectRatio, mainScriptUrlOrBlob, onFullScreen, INITIAL_MEMORY, wasmMemory, wasmBinary. Users must explicitly add them to `-sINCOMING_MODULE_JS_API`.

New Features

  • Node.js TCP/UDP socket support via `-sNODERAWSOCKETS`
  • Enhanced `GROWABLE_ARRAYBUFFERS` handling with modes =1 and =2

Full Release Notes

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


## Contributors
Thanks to the following contributors: @sbc100 (36) @kleisauke (5) @dschuff (3) @guybedford (3) @Diyou (1) @fanchenkong1 (1) @stas-badzi (1) @UnknownHacker1 (1)

## New Contributors
* @UnknownHacker1 made their first contribution in https://github.com/emscripten-core/emscripten/pull/27163
* @stas-badzi made their first contribution in https://github.com/emscripten-core/emscripten/pull/27192

**Full Changelog**: https://github.com/emscripten-core/emscripten/compare/6.0.1...6.0.2

Related Repositories