From f38558fcc1c11035916a7c28a388dbbb28f55ddc Mon Sep 17 00:00:00 2001 From: giles Date: Sun, 26 Apr 2026 15:23:39 +0000 Subject: [PATCH] HS-plan: log Bucket F _order+assert= fix +1; sync scoreboard Co-Authored-By: Claude Sonnet 4.6 --- plans/hs-conformance-scoreboard.md | 3 ++- plans/hs-conformance-to-100.md | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/plans/hs-conformance-scoreboard.md b/plans/hs-conformance-scoreboard.md index e2a1776e..9f011643 100644 --- a/plans/hs-conformance-scoreboard.md +++ b/plans/hs-conformance-scoreboard.md @@ -4,7 +4,7 @@ Live tally for `plans/hs-conformance-to-100.md`. Update after every cluster comm ``` Baseline: 1213/1496 (81.1%) -Merged: 1310/1496 (87.6%) delta +97 +Merged: 1311/1496 (87.6%) delta +98 Worktree: all landed Target: 1496/1496 (100.0%) Remaining: ~192 tests (clusters 17/29(partial)/31 blocked; 33/34 partial) @@ -86,6 +86,7 @@ Defer until A–D drain. Estimated ~25 recoverable tests. |---|---------|--------|---|--------| | F1 | add CSS template interpolation | done | +1 | 5a76a040 | | F2 | empty multi-element (query→for-each) | done | +1 | 875e9ba3 | +| F3 | hs-make-object _order + assert= for dicts | done | +1 | daea2808 | ## Buckets roll-up diff --git a/plans/hs-conformance-to-100.md b/plans/hs-conformance-to-100.md index 8173a3ab..5796d80b 100644 --- a/plans/hs-conformance-to-100.md +++ b/plans/hs-conformance-to-100.md @@ -177,6 +177,9 @@ Many tests are `SKIP (untranslated)` because `tests/playwright/generate-sx-tests ## Progress log +### 2026-04-26 — Bucket F: hs-make-object _order + assert= for dicts (+1) +- **daea2808** — `HS Bucket F: fix hs-make-object _order + assert= for dicts (+1 test)`. Two-part fix: (a) `runtime.sx` `hs-make-object` no longer appends `_order` key to HS object literals — V8's native string-key insertion order is sufficient, and the hidden key was breaking structural equality. (b) `generate-sx-tests.py` `emit_eval` now detects when `expected_sx` contains `{` (dict syntax) and emits `assert-equal` (which uses `equal?` for deep structural equality) instead of `assert=` (which uses `=`, reference equality for dicts). Together these fix arrayLiteral "arrays containing objects work". Suite hs-upstream-expressions/arrayLiteral: 7/8 → 8/8. Smoke 0-195 unchanged at 175/195. + ### 2026-04-26 — Bucket F: empty multi-element fix (+1) - **875e9ba3** — `HS: empty multi-element fix (+1 test)`. `empty .class` compiled `(empty-target (query ".class"))` through `hs-to-sx` → `(hs-empty-target! (hs-query-first ".class"))` which only emptied the first match. Fix: detect `(query ...)` target in the `empty-target` compiler case and emit `(for-each (fn (_el) (hs-empty-target! _el)) (hs-query-all sel))`, mirroring the `add-class` pattern. Suite hs-upstream-empty: 12/13 → 13/13. Smoke 0-195: 175/195 unchanged.