From 1b4b7effbd4730845e91a5ecff7b5e45302bc104 Mon Sep 17 00:00:00 2001 From: giles Date: Fri, 24 Apr 2026 07:01:53 +0000 Subject: [PATCH] HS-plan: log possessive done +1 Co-Authored-By: Claude Opus 4.7 (1M context) --- 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 701c6420..ead31200 100644 --- a/plans/hs-conformance-to-100.md +++ b/plans/hs-conformance-to-100.md @@ -76,7 +76,7 @@ Each cluster below is one commit. Order is rough — a loop agent may skip ahead 20. **[pending] `repeat` property for-loops + where** — `repeat / basic property for loop`, `can nest loops`, `where clause can use the for loop variable name` (3 tests). Expected: +3. -21. **[in-progress] `possessiveExpression` property access via its** — `possessive / can access its properties` (1 test, Expected `foo` got ``). Expected: +1. +21. **[done (+1)] `possessiveExpression` property access via its** — `possessive / can access its properties` (1 test, Expected `foo` got ``). Expected: +1. 22. **[pending] window global fn fallback** — `regressions / can invoke functions w/ numbers in name` + unlocks several others. When calling `foo()` where `foo` isn't SX-defined, fall back to `(host-global "foo")`. Design decision: either compile-time emit `(or foo (host-global "foo"))` via a helper, or add runtime lookup in the dispatch path. Expected: +2-4. @@ -160,6 +160,9 @@ Many tests are `SKIP (untranslated)` because `tests/playwright/generate-sx-tests (Reverse chronological — newest at top.) +### 2026-04-24 — cluster 21 possessive expression via its +- **f0c41278** — `HS: possessive expression via its (+1 test)`. Two generator changes: (a) `parse_run_locals` (Pattern 2 `var R = await run(...)`) now recognises `result: ` in the opts dict and binds it to `it` so `run("its foo", {result: {foo: "foo"}})` produces `(eval-hs-locals "its foo" (list (list (quote it) {:foo "foo"})))`. Same extraction added to Pattern 1. (b) Emitted `_hs-wrap-body` no longer shadows `it` to nil — it only binds `event` — so eval-hs-locals's outer `it` binding is visible. `eval-hs` still binds `it` nil at its own fn wrapper. Suite hs-upstream-expressions/possessiveExpression: 22/23 → 23/23. Smoke 0-195: 162/195 unchanged. + ### 2026-04-24 — cluster 18 throw respond via exception event - **dda3becb** — `HS: throw respond via exception event (+2 tests)`. `hs-on` wraps each event handler in a `guard` that catches thrown exceptions and re-dispatches them as an `exception` DOM event on the same target with `{error: e}` as detail. `on exception(error)` handlers (also registered via hs-on) receive the event and destructure `error` from detail. Wrapping skips `exception`/`error` event handlers to avoid infinite loops. Suite hs-upstream-throw: 5/7 → 7/7. Smoke 0-195: 162/195 unchanged.