Skip to content

v0.59.0

Choose a tag to compare

@ttraenkler ttraenkler released this 28 Jun 20:15
0eec638

What's new in v0.59.0

Highlight — Native Messaging transpiled-.js fix (#389)

#2754 — a bun build / esbuild type-stripped + bundled .js of the synchronous Native-Messaging hosts no longer compiles to a zero-output module. Root cause: stripping the types made the injected readSync/writeSync callbacks any, so the call went through dynamic dispatch, whose funcref wrapper was registered after the call site — the call lowered to a null reference and the callbacks were never invoked. Now the wrappers are pre-registered regardless of compile order.

Verified by hand byte-exact at 1 / 64 / 128 MiB on the reporter's exact bun build --target node flow under real wasmtime v46 for nm_deno, nm_node_fs, and the raw-WASI host. (The async nm_node_process host is byte-exact to 64 MiB; a ≥128 MiB buffer-growth bug is tracked in #2807.) The fix ships with a CI round-trip test (esbuild-bundled, in-process) that asserts a real byte-exact echo; switching that to bun + real wasmtime at scale for all variants is the #2807 follow-up.

Features

  • #2783 — general --link <namespace> dynamic-linking flag (replaces --link-node-shims; --link node:fs is the only spelling).
  • #2784 / #2681 — native-vec-aware method + element dispatch.
  • #2792symbol[] out-of-bounds → undefined, plus a native standalone __box_symbol.
  • #2788 — hybrid IR no-box NUMBER-local gate.

Notable fixes

  • #2795console.log applies ToString/ToPrimitive and renders booleans as true/false.
  • #2801 — WasmGC vec fields are presented to the host as real JS arrays.
  • #2804 — object spread & Object.assign copy both keys and values.
  • #2787 — packed-i32 array read-side soundness (overflow/-0 demoted to f64).
  • #2777 — O(n) process.stdin byte accumulation.
  • #2786 — server-side auto-enqueue as the single merge-queue enqueuer.
  • Toolchain: pinned wasmtime to v46.0.1 (its array.copy fix makes large-frame echo ~60× faster than v44).

Full changelog: v0.58.0...v0.59.0