Skip to content

perry

v0.5.1150 Feature

This release adds 5 notable features 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

Broad release touches Fixes — spec parity, runtime, Highlights, and hir.

Changes in this release

Feature Low

Adds fully-static musl Linux target (`--libc musl`).

Adds fully-static musl Linux target (`--libc musl`).

Source: llm_adapter@2026-06-09

Confidence: high

Feature Low

Adds explicit resource management with `using`, `await using`, `Symbol.dispose`, and `DisposableStack`. (#4795, #4812)

Adds explicit resource management with `using`, `await using`, `Symbol.dispose`, and `DisposableStack`. (#4795, #4812)

Source: llm_adapter@2026-06-09

Confidence: high

Feature Low

Adds SharedArrayBuffer and non‑agent Atomics spec parity. (#4794, #4803)

Adds SharedArrayBuffer and non‑agent Atomics spec parity. (#4794, #4803)

Source: llm_adapter@2026-06-09

Confidence: high

Feature Low

Adds Annex B web‑compat features: String HTML methods, Object accessor methods, `RegExp.prototype.compile`, and `escape`/`unescape`. (#4796, #4813)

Adds Annex B web‑compat features: String HTML methods, Object accessor methods, `RegExp.prototype.compile`, and `escape`/`unescape`. (#4796, #4813)

Source: llm_adapter@2026-06-09

Confidence: high

Feature Low

Adds cross‑platform DatePicker widget. (#4772, #4790)

Adds cross‑platform DatePicker widget. (#4772, #4790)

Source: llm_adapter@2026-06-09

Confidence: high

Feature Low

Adds drag‑and‑drop support across all platforms. (#4773, #4791)

Adds drag‑and‑drop support across all platforms. (#4773, #4791)

Source: llm_adapter@2026-06-09

Confidence: high

Feature Low

Adds WinUI 3 backend scaffold and `--target windows-winui` option. (#4680, #4780)

Adds WinUI 3 backend scaffold and `--target windows-winui` option. (#4680, #4780)

Source: llm_adapter@2026-06-09

Confidence: high

Feature Low

Adds async-from-sync iterator adapter. (#4590)

Adds async-from-sync iterator adapter. (#4590)

Source: granite4.1:30b@2026-06-09-audit

Confidence: low

Bugfix Medium

Fixes async‑generator spec parity from 57.7 % to 93.0 %. (#4777)

Fixes async‑generator spec parity from 57.7 % to 93.0 %. (#4777)

Source: llm_adapter@2026-06-09

Confidence: high

Bugfix Medium

Fixes Temporal Duration/Instant parity from 29.8 % to 88.5 %. (#4819)

Fixes Temporal Duration/Instant parity from 29.8 % to 88.5 %. (#4819)

Source: llm_adapter@2026-06-09

Confidence: high

Bugfix Medium

Fixes nested‑Proxy `Object.getPrototypeOf` segfault on Linux. (#4824)

Fixes nested‑Proxy `Object.getPrototypeOf` segfault on Linux. (#4824)

Source: llm_adapter@2026-06-09

Confidence: high

Bugfix Low

Fixes Temporal ZonedDateTime parity from 34 % to 84 %. (#4820)

Fixes Temporal ZonedDateTime parity from 34 % to 84 %. (#4820)

Source: granite4.1:30b@2026-06-09-audit

Confidence: low

Bugfix Low

Improves Temporal PlainDate/PlainDateTime, PlainTime, YearMonth, MonthDay, Now parity. (#4818, #4821)

Improves Temporal PlainDate/PlainDateTime, PlainTime, YearMonth, MonthDay, Now parity. (#4818, #4821)

Source: granite4.1:30b@2026-06-09-audit

Confidence: low

Bugfix Low

Fixes built‑ins RegExp non‑lookbehind parity. (#4809)

Fixes built‑ins RegExp non‑lookbehind parity. (#4809)

Source: granite4.1:30b@2026-06-09-audit

Confidence: low

Bugfix Low

Resolves eval-code, function-code, and arguments‑object parity issues. (#4808)

Resolves eval-code, function-code, and arguments‑object parity issues. (#4808)

Source: granite4.1:30b@2026-06-09-audit

Confidence: low

Bugfix Low

Addresses tails of Date, Number, JSON, Math, NativeErrors test262 cases. (#4807)

Addresses tails of Date, Number, JSON, Math, NativeErrors test262 cases. (#4807)

Source: granite4.1:30b@2026-06-09-audit

Confidence: low

Bugfix Low

Stabilizes typed‑array and exotic‑descriptor crashes in built‑ins tails. (#4817)

Stabilizes typed‑array and exotic‑descriptor crashes in built‑ins tails. (#4817)

Source: granite4.1:30b@2026-06-09-audit

Confidence: low

Bugfix Low

Improves expression‑semantics parity (new, delete, call, spread, compound assign). (#4802)

Improves expression‑semantics parity (new, delete, call, spread, compound assign). (#4802)

Source: granite4.1:30b@2026-06-09-audit

Confidence: low

Bugfix Low

Enhances statement‑semantics parity (for‑of iterator protocol, with, eval completion values). (#4786)

Enhances statement‑semantics parity (for‑of iterator protocol, with, eval completion values). (#4786)

Source: granite4.1:30b@2026-06-09-audit

Confidence: low

Bugfix Low

Updates built‑ins Object parity v2. (#4784)

Updates built‑ins Object parity v2. (#4784)

Source: granite4.1:30b@2026-06-09-audit

Confidence: low

Bugfix Low

Updates built‑ins Array parity v2. (#4778)

Updates built‑ins Array parity v2. (#4778)

Source: granite4.1:30b@2026-06-09-audit

Confidence: low

Bugfix Low

Fixes built‑ins String boxed‑receiver methods and argument coercion. (#4754, #4755)

Fixes built‑ins String boxed‑receiver methods and argument coercion. (#4754, #4755)

Source: granite4.1:30b@2026-06-09-audit

Confidence: low

Bugfix Low

Aligns Function parity (instanceof Function, constructor, prototype length/name). (#4752, #4758, #4761)

Aligns Function parity (instanceof Function, constructor, prototype length/name). (#4752, #4758, #4761)

Source: granite4.1:30b@2026-06-09-audit

Confidence: low

Bugfix Low

Improves Proxy built‑in parity. (#4748)

Improves Proxy built‑in parity. (#4748)

Source: granite4.1:30b@2026-06-09-audit

Confidence: low

Bugfix Low

Refines class field/element initializer parity v2. (#4779)

Refines class field/element initializer parity v2. (#4779)

Source: granite4.1:30b@2026-06-09-audit

Confidence: low

Bugfix Low

Corrects class accessor name, super, subclass, and method parity. (#4770)

Corrects class accessor name, super, subclass, and method parity. (#4770)

Source: granite4.1:30b@2026-06-09-audit

Confidence: low

Bugfix Low

Supports static and computed accessors on class expressions. (#4747)

Supports static and computed accessors on class expressions. (#4747)

Source: granite4.1:30b@2026-06-09-audit

Confidence: low

Bugfix Low

Ensures method‑as‑value identity and injective private‑symbol mangling in classes. (#4764)

Ensures method‑as‑value identity and injective private‑symbol mangling in classes. (#4764)

Source: granite4.1:30b@2026-06-09-audit

Confidence: low

Bugfix Low

Improves class destructuring and default‑parameter parity. (#4766)

Improves class destructuring and default‑parameter parity. (#4766)

Source: granite4.1:30b@2026-06-09-audit

Confidence: low

Full changelog

Highlights

  • Massive TC39 test262 parity push across the spec surface — Temporal (Duration/Instant 29.8%→88.5%, ZonedDateTime 34%→84%, PlainDate/PlainDateTime/PlainTime/YearMonth/MonthDay/Now), async generators 57.7%→93.0%, plus broad Array/String/Function/Object/Proxy/Promise/RegExp/class/iteration/expression-semantics work.
  • Explicit Resource Managementusing / await using / Symbol.dispose / Symbol.asyncDispose / DisposableStack (#4795, #4812).
  • SharedArrayBuffer + non-agent Atomics spec parity (#4794, #4803).
  • Annex B web-compat — String HTML methods, Object accessor methods, RegExp.prototype.compile, escape/unescape (#4796, #4813).
  • Lone-surrogate round-tripping via WTF-8 (#4793, #4806) and fancy-regex fallback wired through every RegExp op (#4797, #4801).
  • Cross-platform UI: DatePicker widget (#4772), drag & drop across all platforms (#4773), WinUI 3 backend scaffold + --target windows-winui (#4680).
  • Fully-static musl Linux target (--libc musl / [linux] libc) (#4834).

Features

  • feat(linux): fully-static musl target — --libc musl / [linux] libc (#4834)
  • feat(runtime): explicit-resource-management — using / await using / Symbol.dispose (#4795, #4812)
  • feat(runtime): SharedArrayBuffer + non-agent Atomics spec parity (#4794, #4803)
  • feat(annexb): String HTML methods, Object accessor methods, RegExp.compile, escape/unescape ToString (#4796, #4813)
  • feat(runtime): async-from-sync iterator adapter (#4590)
  • feat(ui): cross-platform DatePicker widget (#4772, #4790)
  • feat(ui): drag & drop across all platforms (#4773, #4791)
  • feat(ui-windows): WinUI 3 backend scaffold + --target windows-winui (#4680, #4780)
  • feat(codegen): default Windows output extension by type (#4771, #4782)
  • feat(publish): [android] version_code override (#4814)

Fixes — spec parity (test262)

  • fix(runtime): Temporal Duration + Instant parity 29.8%→88.5% (#4819)
  • fix(runtime): Temporal.ZonedDateTime parity 34%→84% (#4820)
  • fix(runtime): Temporal PlainDate/PlainDateTime parity + object-method arg-cap fix (#4821)
  • fix(runtime): Temporal PlainTime/YearMonth/MonthDay/Now parity + shared infra (#4818)
  • fix: standalone async-generator parity 57.7%→93.0% (#4777)
  • fix(runtime): built-ins/RegExp (non-lookbehind) parity (#4809)
  • fix: eval-code / function-code / arguments-object parity (#4808)
  • fix(runtime): Date/Number/JSON/Math/NativeErrors test262 tails (#4807)
  • fix(runtime): typed-array & exotic-descriptor crashes in built-ins tails (#4817)
  • fix(hir): expression-semantics parity (new/delete/call/spread/compound-assign) (#4802)
  • fix(hir): statement-semantics parity (for-of iterator protocol, with, eval completion-values) (#4786)
  • fix(runtime): built-ins/Object parity v2 (#4784)
  • fix(runtime): built-ins/Array parity v2 (#4778)
  • fix(runtime): built-ins/String boxed-receiver methods + arg coercion (#4754, #4755)
  • fix(runtime): built-ins/Function parity — instanceof Function, fn.constructor, prototype length/name (#4752, #4758, #4761)
  • fix(runtime): built-ins/Proxy parity (#4748)
  • fix(hir): class field/element initializer parity v2 (#4779)
  • fix: class accessor-name / super / subclass / method parity (#4770)
  • fix: class async / async-generator method parity (#4768)
  • fix(class): static & computed accessors on class expressions (#4747)
  • fix(class): method-as-value identity + injective private-symbol mangling (#4764)
  • fix(hir): class destructuring + default-parameter parity (#4766)
  • fix(hir): object-literal semantics parity (#4751)
  • fix(hir): iteration-statement protocol parity (#4750)
  • fix(operators): abstract relational comparison + logical-assignment NamedEvaluation (#4753)
  • fix(transform,runtime): yield* delegation next-capture + object-literal thenable await (#4783)
  • fix(runtime): TypedArray @@species (SpeciesCreate) for slice/subarray/map/filter (#4762)
  • fix(runtime): TypedArray dynamic buffer-view construction + from/of/new validation (#4763)
  • fix(runtime): TypedArray.prototype.set offset validation + array-like coercion (#4757)
  • fix(runtime): TypedArray element-store coercion (ToUint32 modular) + f16 rounding (#4746)
  • fix(runtime): Promise resolving-functions guard + combinator semantics (#4745)
  • fix(runtime): Promise static methods preserve receiver brand checks when borrowed (#4603)
  • fix(runtime): generic Array.prototype.reverse/fill over array-like receivers (#4620, #4640)

Fixes — runtime / codegen / crashes

  • fix(runtime): adopt returned promise state on async tail-return (#4832)
  • fix(runtime): honor dangerouslySetInnerHTML in hono/jsx rendering (#4827, #4830)
  • fix(runtime): nested-Proxy Object.getPrototypeOf no longer segfaults on Linux (#4824)
  • fix(runtime): round-trip lone surrogates via WTF-8 (#4793, #4806)
  • fix(runtime): wire fancy-regex fallback through every RegExp operation (#4797, #4801)
  • fix(hir): obj?.method(args) on builtins no longer short-circuits to undefined (#4816)
  • fix(runtime): for-of/spread over a Headers handle no longer segfaults (#4800)
  • fix(runtime): bind this=iterable when calling Symbol.iterator (#4788)
  • fix(runtime): function-object descriptors + proxy SetIntegrityLevel parity (#4789)
  • fix(runtime): frozen-array pop/shift/push/unshift throw TypeError (#4781)
  • fix(codegen): destructured-value copies no longer truncate to i32 (#4785)
  • fix(runtime): symbol-keyed property write on a native handle no longer throws (#4749)
  • fix(codegen): new <imported-function>() runs the constructor body (#4769)
  • fix: zod v4 safeParse on invalid input — crash + readable error (#4699, #4774)

Fixes — platform / stdlib / build

  • fix(macos): chdir to Contents/Resources on .app launch so assets resolve (#4833)
  • fix(hir): resolve CJS worker path joins (#4815)
  • fix(cjs): prune dead platform-guarded requires (#4822)
  • fix(publish): anchor bare-name [publish].exclude entries to the project root (#4811)
  • fix(android): make perry-ui-android resilient to a shadowed JNI_OnLoad (#4804)
  • fix(watchos/visionos): find the entry object by symbol, not filename (#4799)
  • fix(tvos): copy project resource dirs into the .app bundle (#4787)
  • fix(ui-windows): Mica-by-default + WM_DPICHANGED relayout (#4681, #4776)
  • fix(link): link libc++/libc++abi in cross-Apple branches (#4759)
  • fix(runtime): @hono/node-server c.req.text()/.json()/.formData() on POST/PUT (#4765)
  • fix(runtime): subclassing native Request/Response exposes working body methods (#4756)
  • fix(stream): honor emitClose/autoDestroy close-lifecycle options (#4386)
  • fix(net): native-handle instanceof net.Socket + explicit Tokio runtimes (#4525)
  • fix(http): Agent drops the bogus close method to match Node (#4628)
  • fix(zlib): expose external Transform stream handles + validate async one-shot callback (#4506, #4514)
  • fix(webcrypto): algorithm.length for KMAC128/256 (#4515)
  • fix(globals): spec .length for legacy/global function values (#4545)

See CHANGELOG.md for full detail.

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]