This release adds 1 notable feature for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Topics
+5 more
Summary
AI summaryUpdates http, runtime, and reflect across a mixed release.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| 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'smatchKnownFieldsrules (set-cookie → array, cookie →
"; ", others →", ", single-value keeps first). (#5079 / #5102) - fix(runtime): over-large
TypedArray/Buffer/Map/Set/array
allocations now throw a catchableRangeErrorinstead of aborting the
process. (#5067 / #5103) - fix(reflect):
Reflect.constructerror-message wording matches Node.
(#2768 / #5105) - fix(util):
util.format%o/%Oquote top-level strings, and
util.inspectrenders the[Object: null prototype]prefix. (#5106, #5107) - perf(compile): oversized modules compile at
-O0to fix the
wide-object-literal codegen blowup (env override
PERRY_LL_O0_THRESHOLD_BYTES). (#4880 / #5109) - fix(url):
String(), template interpolation, and+-concat ofURL/
URLSearchParamsyieldhref/ 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
About perry
A native TypeScript compiler written in Rust. Compiles TypeScript directly to executables using SWC and LLVM.
Related context
Related tools
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]