Skip to content

Commit 87b5d39

Browse files
authored
fix(runtime): an Array subclass in a base-typed binding was read as a raw header (#7574) (#7603)
An Array-subclass instance is a plain ObjectHeader that overlays ArrayHeader field-for-field, so a.push(1) stored 1.0 over keys_array (a live GC child edge) and the second push SIGSEGVed dereferencing it -- fault address 0x3ff0000000000000, the bit pattern of the double just written. Brand checks at the runtime funnels plus two codegen tiers the issue did not name (the inline ArrayPush store -- the actual crash -- and the typed-feedback boxed fallback); subclass receivers redirect onto the spec-generic engine. Includes the forEach receiver, the Array-exotic length step on the unannotated path, and a concat regression the funnel itself introduced, caught by the family A/B.
1 parent aaea8b8 commit 87b5d39

18 files changed

Lines changed: 929 additions & 95 deletions

CLAUDE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
88

99
Perry is a native TypeScript compiler written in Rust that compiles TypeScript source code directly to native executables. It uses SWC for TypeScript parsing and LLVM for code generation.
1010

11-
**Current Version:** 0.5.1342
11+
**Current Version:** 0.5.1343
1212

1313

1414
## TypeScript Parity Status

0 commit comments

Comments
 (0)