Skip to content

v0.59.4

Choose a tag to compare

@ttraenkler ttraenkler released this 29 Jun 05:24

v0.59.4

Released 2026-06-29.

Patch release. Native-Messaging memory + packaging follow-ups from the
#389 thread, plus a couple of compiler fixes. (No published-package
features; the #2827 statusline/dashboard change is repo tooling only.)

Packaging

  • #2828 — the npm package now ships examples/ (the native-messaging hosts
    and the other examples). Previously only dist/ was published, so
    npm i @loopdive/js2 did not include the hosts and you had to fetch them from
    GitHub.

Native Messaging (#389)

  • #2832nm_js2wasm_node_process now bounds its read-side memory. It
    previously buffered the entire incoming frame, so peak RSS scaled ~8× the frame
    size (≈530 MB for a 64 MiB request, ≈2 GB at 256 MiB) and could exhaust memory
    on a constrained machine. It now streams the input through a reused bounded
    window like the other three hosts — peak RSS is flat ~35 MB regardless of
    frame size
    . (0.59.2's #2814 bounded the write side; this completes it.) All
    four hosts round-trip byte-exact under wasmtime 46.0.1 at 1/64/128/256 MiB with
    flat memory.

Compiler fixes

  • #2809 — sparse-array reduceRight with no initial value (funcIdx desync);
    new Array(undefined, …) builds an externref vec.
  • #2806 — narrow the void-undefined slot rule to void-expression
    initializers; var x = (void 0) stays evolving-any/externref.

Full changelog: v0.59.3...v0.59.4