From 8268010a0a83fcc1faa87be25211f209223df3df Mon Sep 17 00:00:00 2001 From: giles Date: Thu, 23 Apr 2026 22:29:48 +0000 Subject: [PATCH] HS-plan: mark unless modifier blocked --- plans/hs-conformance-to-100.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/plans/hs-conformance-to-100.md b/plans/hs-conformance-to-100.md index ed17c0dc..9658581d 100644 --- a/plans/hs-conformance-to-100.md +++ b/plans/hs-conformance-to-100.md @@ -60,7 +60,7 @@ Each cluster below is one commit. Order is rough — a loop agent may skip ahead 13. **[pending] `toggle` multi-class + timed + until-event** — `toggle` (3 assertion-fail tests). Expected: +3. -14. **[in-progress] `unless` modifier** — `unlessModifier / unless can conditionally execute` (1 test). Parser/compiler addition. Expected: +1. +14. **[blocked: parser unless + compiler hs-unless-wrap produces correct compile output but test still fails with `Undefined symbol: _test-result` — some interaction with the test harness's _run-test-thunk + _test-result define. Also needs generator classList.add pattern (which was bundled in). Deferred until harness interaction root-caused.] `unless` modifier** — `unlessModifier / unless can conditionally execute` (1 test). Parser/compiler addition. Expected: +1. 15. **[pending] `transition` query-ref + multi-prop + initial** — `transition` 3 tests. Expected: +2-3. @@ -158,6 +158,9 @@ Many tests are `SKIP (untranslated)` because `tests/playwright/generate-sx-tests (Reverse chronological — newest at top.) +### 2026-04-23 — cluster 14 unless modifier (blocked, reverted) +- Attempted: parser `cl-collect` handles `cmd unless cond` by emitting `(hs-unless-wrap cond cmd)`, compiler adds a `hs-unless-wrap` case that translates to `(if (hs-falsy? cond) cmd nil)`. Compile output correct. But test fails with `Undefined symbol: _test-result` suggesting the test-harness thunk eval throws somehow. Also added a generator pattern for `classList.add/remove/toggle` but that alone didn't fix the test. Reverted per abort rule; compile-shape fix looks sound and should be revisited after clusters that don't depend on harness internals. + ### 2026-04-23 — cluster 8 select returns selected text (blocked, reverted) - Attempted: added `hs-get-selection` runtime, compiler branch to rewrite bare `selection` to `(hs-get-selection)`, generator pattern to translate `evaluate(() => { var range = document.createRange(); ...; window.getSelection().addRange(range); })`, and mock support in `hs-run-filtered.js` for `document.createRange` / `window.getSelection` / `firstChild` text node. Tests still returned empty — range.toString() wasn't picking up the text. Reverted per the abort rule. Would need a more faithful mock of DOM text nodes with data propagation.