Skip to content

perry

v0.5.1116 Feature

This release adds 3 notable features for engineering teams evaluating rollout.

Published 9h 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 Infrastructure / tests, Atomics, and Parity across a mixed release.

Changes in this release

Feature Low

Adds Atomics basic and bitwise operations.

Adds Atomics basic and bitwise operations.

Source: llm_adapter@2026-06-03

Confidence: high

Feature Low

Exposes core Intl constructors.

Exposes core Intl constructors.

Source: llm_adapter@2026-06-03

Confidence: high

Feature Low

Adds X509Certificate properties and extension metadata access.

Adds X509Certificate properties and extension metadata access.

Source: llm_adapter@2026-06-03

Confidence: high

Feature Low

Provides node stream to web stream adapters.

Provides node stream to web stream adapters.

Source: llm_adapter@2026-06-03

Confidence: high

Feature Low

Completes Array.fromAsync mapFn semantics.

Completes Array.fromAsync mapFn semantics.

Source: llm_adapter@2026-06-03

Confidence: high

Feature Low

Exposes HTTP request abort signals.

Exposes HTTP request abort signals.

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

Confidence: low

Performance Low

Caches tagged‑template objects per call site.

Caches tagged‑template objects per call site.

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

Confidence: low

Bugfix Medium

Makes node:events static helpers dispatch events correctly.

Makes node:events static helpers dispatch events correctly.

Source: llm_adapter@2026-06-03

Confidence: high

Bugfix Medium

Directly dispatches uncurried hasOwnProperty.

Directly dispatches uncurried hasOwnProperty.

Source: llm_adapter@2026-06-03

Confidence: high

Bugfix Medium

Ensures Uint8Array.of and from build buffer‑backed representations.

Ensures Uint8Array.of and from build buffer‑backed representations.

Source: llm_adapter@2026-06-03

Confidence: high

Bugfix Medium

Makes Reflect.set, getPrototypeOf, and deleteProperty throw on non‑object receivers.

Makes Reflect.set, getPrototypeOf, and deleteProperty throw on non‑object receivers.

Source: llm_adapter@2026-06-03

Confidence: high

Bugfix Medium

Installs DataView.prototype accessors and get/set methods.

Installs DataView.prototype accessors and get/set methods.

Source: llm_adapter@2026-06-03

Confidence: high

Bugfix Medium

Honors async buffered limits, argv0, and stdio: inherit in child_process.

Honors async buffered limits, argv0, and stdio: inherit in child_process.

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

Confidence: low

Bugfix Low

Converts asymmetric KeyObject instances to CryptoKey.

Converts asymmetric KeyObject instances to CryptoKey.

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

Confidence: low

Bugfix Low

Invokes registered loader hooks for dynamic imports.

Invokes registered loader hooks for dynamic imports.

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

Confidence: low

Bugfix Low

Corrects String.matchAll iterator semantics.

Corrects String.matchAll iterator semantics.

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

Confidence: low

Bugfix Low

Preserves CommonJS require function name.

Preserves CommonJS require function name.

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

Confidence: low

Bugfix Low

Materializes array‑like receivers for Array.prototype methods when called via .call/.apply.

Materializes array‑like receivers for Array.prototype methods when called via .call/.apply.

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

Confidence: low

Bugfix Low

Respects closure accessor properties.

Respects closure accessor properties.

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

Confidence: low

Bugfix Low

Respects symbol enumerability in Object.assign.

Respects symbol enumerability in Object.assign.

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

Confidence: low

Bugfix Low

Skips sparse array holes during iteration method execution.

Skips sparse array holes during iteration method execution.

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

Confidence: low

Bugfix Low

Aligns prototype and super assignment behavior with ECMAScript spec.

Aligns prototype and super assignment behavior with ECMAScript spec.

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

Confidence: low

Bugfix Low

Corrects assignment evaluation order to match specification.

Corrects assignment evaluation order to match specification.

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

Confidence: low

Bugfix Low

Implements arrow function special binding semantics correctly.

Implements arrow function special binding semantics correctly.

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

Confidence: low

Bugfix Low

Preserves delete operator references within with statements.

Preserves delete operator references within with statements.

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

Confidence: low

Bugfix Low

Enforces Temporal Dead Zone for default parameters that appear later in function body.

Enforces Temporal Dead Zone for default parameters that appear later in function body.

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

Confidence: low

Bugfix Low

Preserves lexical new.target value inside arrow functions.

Preserves lexical new.target value inside arrow functions.

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

Confidence: low

Refactor Low

Restores scalar method inlining for PutValueSet constructors.

Restores scalar method inlining for PutValueSet constructors.

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

Confidence: low

Refactor Low

Caps pointer local type growth during codegen.

Caps pointer local type growth during codegen.

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

Confidence: low

Refactor Low

Uses generator closure prototypes for instance creation.

Uses generator closure prototypes for instance creation.

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

Confidence: low

Full changelog

Highlights

42 commits since v0.5.1112 — a broad Node.js + TypeScript parity push: language-correctness fixes (assignment evaluation order, arrow binding, default-param TDZ, new.target), more Node built-in surface (Atomics, Intl, X509, child_process options, web stream adapters), and runtime prototype/reflection fixes.

Features

  • Atomics: basic operations + bitwise operations (#4247, #4253)
  • Expose core Intl constructors (#4254)
  • X509Certificate: publicKey, name checks, and extension metadata (#4249, #4252, #4241)
  • node stream → web stream adapters (#4237)
  • Complete Array.fromAsync mapFn semantics (#4238)

Fixes — runtime & Node compat

  • node:events module-level static helpers (once/on/listenerCount/…) now dispatch (#850)
  • Dispatch uncurried hasOwnProperty directly (#4279)
  • Uint8Array.of/from build the buffer-backed representation
  • isPrototypeOf + Reflect.set/getPrototypeOf/deleteProperty throw on non-object (#4265)
  • Install DataView.prototype accessors + get/set methods (#4256)
  • Convert asymmetric KeyObjects to CryptoKey (#4245)
  • Expose HTTP request abort signals (#4248)
  • Invoke registered loader hooks for dynamic imports (#4225)
  • String.matchAll iterator semantics (#4223)
  • Preserve CommonJS require function name (#4220)
  • Materialize array-like receivers for Array.prototype.*.call (#4231)
  • child_process: honor async buffered limits, argv0, and stdio: inherit (#4250, #4246, #4240)
  • Honor closure accessor properties (#4243)
  • Respect symbol enumerability in Object.assign (#4239)
  • Skip sparse array holes in iteration methods (#4236)

Fixes — codegen & language parity

  • Restore scalar method inlining for PutValueSet constructors (#945)
  • Cap pointer local type growth in codegen (#4235)
  • Cache tagged-template objects per call site (#4234)
  • Prototype & super assignment parity (#4233)
  • Assignment evaluation order (#4229)
  • Arrow special binding semantics (#4228)
  • Preserve with references for delete (#4227)
  • Default-parameter TDZ for later bindings (#4226)
  • Preserve lexical new.target for arrows (#4224)
  • Use generator closure prototypes for instances (#4222)
  • Avoid recursive constructor inlining (#4221)
  • Preserve CommonJS require name / honor well-known archives in no-auto links (#4242)
  • Native instance walk for fluent chains (#4219)

Infrastructure / tests

  • Parity: expected-exit=1 for intentional-throw expected-output tests
  • HTTP upgrade-websocket frame coverage (#4251)
  • Optional PTY parity runner for tty (#4232)

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 →

Beta — feedback welcome: [email protected]