- Parser: `--` line comments, `|` op, `result` → `the-result`, query-scoped `<sel> in <expr>`, `is a/an <type>` predicate, multi-`as` chaining with `|`, `match`/`precede` keyword aliases, `[attr]` add/toggle, between attr forms - Runtime: per-element listener registry + hs-deactivate!, attr toggle variants, set-inner-html boots subtree, hs-append polymorphic on string/list/element, default? / array-set! / query-all-in / list-set via take+drop, hs-script idempotence guard - Integration: skip reserved (me/it/event/you/yourself) when collecting vars - Tokenizer: emit `--` comments and `|` op - Test framework + conformance runner updates; new tests/hs-run-filtered.js (single-process Node runner using OCaml VM step-limit to bound infinite loops); generate-sx-conformance-dev.py improvements - mcp_tree.ml + run_tests.ml: harness extensions - .gitignore: top-level test-results/ (Playwright artifacts) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
19 lines
595 B
Plaintext
19 lines
595 B
Plaintext
(defsuite
|
|
"hs-diag"
|
|
(deftest
|
|
"put into #id compiled"
|
|
(let
|
|
((sx (hs-to-sx-from-source "on click put \"foo\" into #d1")))
|
|
(assert=
|
|
(serialize sx)
|
|
"(hs-on me \"click\" (fn (event) (hs-set-inner-html! (hs-query-first \"#d1\") \"foo\")))")))
|
|
(deftest
|
|
"put into #id works"
|
|
(let
|
|
((el (dom-create-element "div")))
|
|
(dom-set-attr el "id" "d1")
|
|
(dom-set-attr el "_" "on click put \"foo\" into #d1")
|
|
(dom-append (dom-body) el)
|
|
(hs-activate! el)
|
|
(dom-dispatch el "click" nil)
|
|
(assert= (dom-text-content el) "foo")))) |