Skip to content

perry

v0.5.1166 Feature

This release adds 1 notable feature for engineering teams evaluating rollout.

Published 1mo Build & Package
✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

android compile harmonyos ios llvm macos
+5 more
native smc typescript watchos windows

Summary

AI summary

Updates http, runtime, and reflect across a mixed release.

Changes in this release

Performance Medium

Oversized modules compile at `-O0` to mitigate codegen blowup (env override `PERRY_LL_O0_THRESHOLD_BYTES`).

Oversized modules compile at `-O0` to mitigate codegen blowup (env override `PERRY_LL_O0_THRESHOLD_BYTES`).

Source: llm_adapter@2026-06-14

Confidence: high

Bugfix Medium

`res.headers['set-cookie']` is now an array with proper folding per Node rules.

`res.headers['set-cookie']` is now an array with proper folding per Node rules.

Source: llm_adapter@2026-06-14

Confidence: high

Bugfix Medium

Over-large TypedArray/Buffer/Map/Set/array allocations throw a catchable RangeError instead of aborting.

Over-large TypedArray/Buffer/Map/Set/array allocations throw a catchable RangeError instead of aborting.

Source: llm_adapter@2026-06-14

Confidence: high

Bugfix Medium

`Reflect.construct` error messages match Node's wording.

`Reflect.construct` error messages match Node's wording.

Source: llm_adapter@2026-06-14

Confidence: high

Bugfix Medium

`util.format` `%o`/`%O` quote top-level strings; `util.inspect` shows `[Object: null prototype]` prefix.

`util.format` `%o`/`%O` quote top-level strings; `util.inspect` shows `[Object: null prototype]` prefix.

Source: llm_adapter@2026-06-14

Confidence: high

Bugfix Medium

Stringification, template interpolation, and concatenation of `URL`/`URLSearchParams` yield `href` or query string (Node parity).

Stringification, template interpolation, and concatenation of `URL`/`URLSearchParams` yield `href` or query string (Node parity).

Source: llm_adapter@2026-06-14

Confidence: high

Bugfix Medium

In-function classes now run their static field initializers and static blocks.

In-function classes now run their static field initializers and static blocks.

Source: llm_adapter@2026-06-14

Confidence: high

Bugfix Medium

`fsPromises.watch()` re-baselines its snapshot at the first `.next()` to deliver writes after the call (regression fix).

`fsPromises.watch()` re-baselines its snapshot at the first `.next()` to deliver writes after the call (regression fix).

Source: llm_adapter@2026-06-14

Confidence: high

Bugfix Medium

Next.js standalone compile walls reduced to 31–35.

Next.js standalone compile walls reduced to 31–35.

Source: llm_adapter@2026-06-14

Confidence: high

Full changelog

v0.5.1166 — Node-parity & robustness sweep (10 fixes)

Rolls up the issue-fix batch merged on top of 0.5.1165. Per-PR detail lives on
each GitHub PR; the headline changes:

  • fix(http): res.headers['set-cookie'] is now an array, and repeated
    headers fold per Node's matchKnownFields rules (set-cookie → array, cookie →
    "; ", others → ", ", single-value keeps first). (#5079 / #5102)
  • fix(runtime): over-large TypedArray/Buffer/Map/Set/array
    allocations now throw a catchable RangeError instead of aborting the
    process. (#5067 / #5103)
  • fix(reflect): Reflect.construct error-message wording matches Node.
    (#2768 / #5105)
  • fix(util): util.format %o/%O quote top-level strings, and
    util.inspect renders the [Object: null prototype] prefix. (#5106, #5107)
  • perf(compile): oversized modules compile at -O0 to fix the
    wide-object-literal codegen blowup (env override
    PERRY_LL_O0_THRESHOLD_BYTES). (#4880 / #5109)
  • fix(url): String(), template interpolation, and +-concat of URL /
    URLSearchParams yield href / query string (Node parity). (#5108)
  • fix(hir): in-function classes now run their static field initializers and
    static blocks. (#5110)
  • fix(fs): fsPromises.watch() re-baselines its snapshot at the first
    .next() so writes after the call are delivered (#5099 regression). (#5117)
  • fix(runtime,codegen,hir): Next.js standalone compile walls 31–35. (#5112)

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track perry

Get notified when new releases ship.

Sign up free

About perry

A native TypeScript compiler written in Rust. Compiles TypeScript directly to executables using SWC and LLVM.

All releases →

Related context

Earlier breaking changes

  • v0.5.1158 `cluster` workers share a listening port using SO_REUSEPORT and IPC round‑trip.
  • v0.5.1158 Streams now support BYOB readers and real `ByteLengthQueuingStrategy` accounting.
  • v0.5.1158 `Atomics.wait`, `notify`, and `waitAsync` now block and wake across agents using a shared `SharedArrayBuffer`.
  • v0.5.1158 `node:dns` and `node:dgram` perform real network I/O instead of stub behavior.
  • v0.5.1158 `AsyncLocalStorage` and `async_hooks` now propagate context across await, microtasks, timers, and `process.nextTick`.

Beta — feedback welcome: [email protected]