fix(javascript): retain assignment and nested-default destructuring

Share source identity and one iterative pattern walker across declarations and assignments. Traverse nested default targets without losing dependency paths, preserving existing scalar-default occurrence identities and conservative unresolved slots.

Validation: 405 focused tests across five files, including public CLI dependency Evidence. Refs #4609, #4604
This commit is contained in:
morluto committed 2026-10-17 08:32:26 +08:00
1 parent c3e42385e7
commit bfb7ed0bd4
4 files changed
+187 -27

No files matched your search

@@ -265,7 +265,10 @@ describe("JavaScript semantic analysis: read-modify-write", () => {
let value;
[value = source.count] = [];
`);
expect(ir.objectOperations.map(({ kind }) => kind)).toEqual(["read"]);
expect(ir.objectOperations.map(({ kind }) => kind)).toEqual([
"destructure",
"read",
]);
});
it("does not model a compound binding write as a competing replacement", () => {