Commit 2ba5950
authored
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
- changelog.d
- crates/perry-runtime/src
- object
- test-files
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
11 | | - | |
| 11 | + | |
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
| |||
0 commit comments