Swift for Wasm May 2026 Updates

Notable changes this month: JavaScriptKit 0.52.0-0.53.0 with continued BridgeJS improvements for compatibility and performance, more foundational work for Emscripten support in the Swift toolchain, a WASI fix for NSString in Foundation, and ElementaryUI becoming the first Swift framework featured in js-framework-benchmark.

Many thanks to @kateinoigakukun, @krodak, @lorentey, Matthew Ayers, @sliemeobn, @tshortli, and @wfltaylor for contributions!

Swift Toolchain

JavaScriptKit

Three releases this month: 0.52.0 with multiple BridgeJS improvements, 0.52.1 fixing closures with struct return, and 0.53.0 introducing a faster JSObjectSpace, JSTypedArray as a recognized BridgeJS type, and bulk TypedArray copy for numeric arrays among other changes.

  • BridgeJS: support nested @JS types inside structs and classes #735;
  • BridgeJS: diagnose struct initializer parameter order mismatch #733;
  • BridgeJS: fix optionals build error with Embedded Swift #734;
  • BridgeJS: move optional JSObject to stack ABI, enabling Optional<@JSClass> #738;
  • Fix cross-thread JSString deinit by wrapping JSObject instead of raw ref #741;
  • BridgeJS: fix closures with struct return #739;
  • Faster JSObjectSpace (JS runtime retain/release) #676;
  • BridgeJS: fix name collision for same-named nested structs #744;
  • BridgeJS: add JSTypedArray as a recognized BridgeJS type #746;
  • BridgeJS: optimize numeric array transfer with bulk TypedArray copy #745.

WasmKit

  • Add Xcode 26.5 to the testing matrix #345.

ElementaryUI

Two releases this month: 0.2.3 and 0.3.0 upgrading to JavaScriptKit 0.53. Existing projects updating to 0.3.0 need to reinstall the bundled BrowserRuntime npm package and clear the Vite dev cache (see the release notes for the exact commands).

  • ElementaryUI is in the current snapshot of the js-framework-benchmark results, the first Swift framework to join the list;
  • Upgrade to JavaScriptKit 0.53 #105.

Other Notable Changes


Thank you for reading, and please feel free to add any comments or suggestions if we missed anything!

If you'd like to catch up with changes from previous months, here's a list of recent updates:

15 Likes