Commit 87b5d39
authored
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
File tree
- changelog.d
- crates
- perry-codegen/src/expr
- perry-runtime/src
- array
- object
- proxy
- 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