morluto
475a0f84da
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.
2026-10-09 20:18:52 +08:00
Matt Van Horn and morluto
45e3edc17f
feat(javascript): report observed export property presence ( #1160 )
...
* feat(javascript): report observed export property presence
Extend compare_javascript_export_shapes so each retained return variant
lists observed property names and each change reports presence independently
of value resolution. Complete parent coverage classifies one-sided names as
added or removed even when static values stay unknown.
Fixes #725
* test(javascript): match unknown export-shape values by availability
Nested availability objects include a reason when values stay unresolved.
Assert availability through objectContaining so presence-only added and
removed rows still verify unknown values.
* fix(javascript): preserve uncertain export property presence and locations
* fix(javascript): normalize presence and preserve local property coverage
* fix(javascript): require present discriminants for return pairing
* fix(javascript): normalize retained shapes before comparison
* refactor(javascript): share return projection with executable examples
* fix(javascript): localize uncertainty for missing mutated slots
* fix(javascript): bind advertised export examples to exact artifacts
* fix(javascript): keep uncertain property flow as candidates
---------
Co-authored-by: morluto <76467478+morluto@users.noreply.github.com >
2026-10-09 18:30:31 +08:00
morluto
4a1837d9d5
fix(javascript): bound primitive string growth and repeated evaluation
2026-10-09 00:49:31 +08:00
morluto
16f4609d68
fix(javascript): bound semantic expansion and resolve lexical receivers
2026-10-09 00:49:30 +08:00
morluto
dcde958450
perf(javascript): analyze member chains without recursive copying ( #932 )
...
* fix(javascript): traverse deep semantic member chains iteratively
* fix(javascript): preserve deep initializer and pattern analysis
2026-10-07 19:09:25 +08:00
morluto
62b37111e7
fix(javascript): handle deep AST traversal and addition without stack overflow ( #915 )
...
* fix(javascript): avoid recursion and eager ancestry copies in deep ASTs
* fix(javascript): traverse static analysis and bundler ASTs iteratively
2026-10-07 17:40:05 +08:00
ysopwnable
f6a58f1062
refactor(javascript): group domain semantics and contracts ( #907 )
2026-10-07 17:16:58 +08:00