Files
scriptc/packages/compiler
Chris Tate 4e87f45817 Follow values through array properties, unknown keys, JSON callbacks, reflection and tagged templates
Five gaps in the shape analysis let values escape or change unnoticed:

- A store to a named property of an array was dropped, so a value read
  back from it and leaked did not escape.
- Named loads on instances, classes and functions ignored values written
  under unknown keys. They now read that field once it exists, without
  creating it for atoms that have none.
- JSON.parse never ran its reviver, and JSON.stringify never ran its
  replacer or the toJSON methods of the values it serializes. The reviver
  now runs with untracked values, the replacer with every serialized value
  (the holder as `this`), and toJSON on each value that has one. Their
  results are serialized in turn.
- `new Proxy` and `Proxy.revocable` record a proxy operation on the target,
  and Reflect.deleteProperty records a delete, so those literals are G.
- A tagged template now calls its tag with the strings array (with its
  `raw` array) and the substitutions, which were not evaluated before.
2026-10-23 16:16:09 -05:00
..
…
2026-10-23 12:08:08 -05:00
2026-10-23 12:08:08 -05:00