fix(javascript)!: preserve property paths and uncertain slot presence

Use one explicit object/array slot model and JSON-pointer property identity across mutation analysis, return projection, and semantic graphs. Require observed presence for discriminants and resolve writes only through retained object or array receivers.

BREAKING CHANGE: projected return fields require explicit presence and semantic object operations carry full property paths.
This commit is contained in:
morluto
2026-10-09 20:03:19 +08:00
parent 63bf91405c
commit 475a0f84da
23 changed files with 831 additions and 560 deletions
@@ -62,7 +62,11 @@ it("invalidates a deep mutation while retaining unrelated literal properties", (
expect(onlyBinding(ir, "root").value).toEqual({
status: "object",
properties: [
{ name: "untouched", value: { status: "literal", value: "retained" } },
{
name: "untouched",
presence: "present",
value: { status: "literal", value: "retained" },
},
{
name: "next",
presence: "unknown-coverage",