Skip to content

perry

v0.4.47 Feature

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

Published 2mo 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 Bug Fixes, Previous, and resolveType across a mixed release.

Full changelog

Bug Fixes

  • x86_64 module-local function dispatch: Function wrappers for .map(resolveType) callbacks used Linkage::Export even for non-exported functions. When two modules shared the same filename and function names (e.g., two contract.ts files both with resolveType), the linker resolved the wrong wrapper. Non-exported wrappers now use Linkage::Local.
  • obj[c.name] garbage on any-typed objects: is_string_index_expr_get no longer returns false for all PropertyGet on non-string objects — now defaults to string except for known class instances with numeric fields.
  • Union-typed obj[intKey] wrong dispatch: is_union added to is_known_array check so js_dynamic_array_get (which handles arrays at runtime) is used instead of string-key property lookup.
  • Cross-module await Promise<[T, T]> tuple indexing: Type::Tuple added to the Await expression-inference handler's inner_type match for correct is_array flag on resolved value.
  • Bug #8 regression reverted: Broad Tuple additions to is_typed_pointer/is_typed_array caused SIGBUS on complex module graphs; reverted to minimal one-line fix.

Features

  • Promise.race: Full implementation — js_promise_race runtime function iterates promise array, attaches resolve/reject handlers with first-wins semantics, handles already-settled promises and non-promise values.

Previous (v0.4.46)

  • String.replaceAll, String.matchAll, arr.shift()?.method() fix, Buffer.subarray/slice, SQLite params/pragma/transaction, .length on Call results, x86_64 overload dispatch fix

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]