Commit Graph
3 Commits
Author SHA1 Message Date
Chris Tate 390b404251 Keep a union loop binding in the debug-variables fixture
The fixture's loop iterated `[6, 7] as (number | undefined)[]` so that
its binding kept the union layout the LLDB check reads through
`item->tag` and `item->slot.arm0`. Since (T | undefined)[] stores T
elements, an array that never holds undefined gives a `number` binding,
and the check failed with "item is not a pointer".

The loop now iterates `[6, 7, undefined]`, whose binding needs the
union, and the check also reads the undefined arm's tag.
2026-10-25 07:46:24 -05:00
Chris Tate 2ff5711a54 Keep record layouts stable for shorthand and literal-argument fields
A shorthand property and an object literal passed as an argument no
longer widen the declared record layout of the binding or parameter
that receives them. A widened layout made every existing record that
flowed into that binding or parameter convert to a copy, so later
writes through the copy were lost. Those literals keep a missing
element in their own fields and convert, with a check, into a declared
record.

The debug-variables fixture iterates an array whose elements may be
undefined, so its loop binding keeps the union layout the debugger
check inspects.
2026-10-10 03:40:36 -05:00
Chris Tateandtimokosonen 0af282af54 fix(compiler): expose source variables in LLVM dev builds (#485)
- Preserve source bindings and lexical scopes for native debugger inspection.
- Verify variable values, module isolation, and cache restores in LLDB, and document native representations.

Fixes #483

Co-authored-by: timokosonen <325538238+timokosonen@users.noreply.github.com>
2026-09-27 08:26:32 -05:00