This release adds 2 notable features for engineering teams evaluating rollout.
Published 2mo
Build & Package
✓ No known CVEs patched
✓ No known CVEs patched in this version
Topics
android
compile
harmonyos
ios
llvm
macos
+5 more
native
smc
typescript
watchos
windows
Summary
AI summaryFixed string NaN-boxing bugs causing textfieldGetString to return undefined in certain interop scenarios.
Full changelog
Bug Fixes
- String NaN-boxing in function calls —
is_stringlocals (I64 raw pointers) passed to functions expecting F64 now usejs_nanbox_string(STRING_TAG0x7FFF) instead ofinline_nanbox_pointer(POINTER_TAG0x7FFD). FixestextfieldGetStringreturn values becomingundefinedwhen used inencodeURIComponent,||, or cross-module calls (GH-10, GH-11, GH-12) - JS interop string args —
js_call_functionandjs_native_call_methodfallback paths now properly NaN-box string arguments with STRING_TAG instead of raw I64→F64 bitcast
Performance
- Direct object field access —
PropertyGet/PropertySeton variables assigned from object literals now use direct offset loads/stores (24 + idx*8) instead ofjs_object_get_field_by_nameruntime 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
About perry
A native TypeScript compiler written in Rust. Compiles TypeScript directly to executables using SWC and LLVM.
Related context
Beta — feedback welcome: [email protected]