Skip to content

Commit 2ba5950

Browse files
authored
fix(runtime): a Map/Set subclass in a base-typed binding was read as a raw header (#7570) (#7573)
is_map_expr/is_set_expr decided 'this receiver is a Map/Set' from the DECLARED TypeScript type and emitted a raw js_map_* call that dereferences the receiver as a MapHeader. A subclass instance is a plain ObjectHeader, so entries: *mut f64 read parent_class_id||field_count -- SIGBUS on the first .set(). Resolved at the runtime entry points via a GcHeader brand check in clean_map_ptr/clean_set_ptr, so the emitted IR is byte-identical and the fast path is one load and compare.
1 parent 46338e3 commit 2ba5950

9 files changed

Lines changed: 957 additions & 159 deletions

File tree

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.1334
11+
**Current Version:** 0.5.1335
1212

1313

1414
## TypeScript Parity Status

0 commit comments

Comments
 (0)