Skip to content

perry

v0.4.37 Feature

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

Fixed string NaN-boxing bugs causing textfieldGetString to return undefined in certain interop scenarios.

Full changelog

Bug Fixes

  • String NaN-boxing in function callsis_string locals (I64 raw pointers) passed to functions expecting F64 now use js_nanbox_string (STRING_TAG 0x7FFF) instead of inline_nanbox_pointer (POINTER_TAG 0x7FFD). Fixes textfieldGetString return values becoming undefined when used in encodeURIComponent, ||, or cross-module calls (GH-10, GH-11, GH-12)
  • JS interop string argsjs_call_function and js_native_call_method fallback paths now properly NaN-box string arguments with STRING_TAG instead of raw I64→F64 bitcast

Performance

  • Direct object field accessPropertyGet/PropertySet on variables assigned from object literals now use direct offset loads/stores (24 + idx*8) instead of js_object_get_field_by_name runtime lookup, when field ordering is known at compile time
  • Object field cache upgraded — 3-tuple entries (keys_ptr, key_hash, field_index) for collision safety, 1024 entries (up from 512)

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]