HS: halt command modes, mock event methods

Parser:
- halt default/bubbling: match ident type (not just keyword)
- halt the event's: consume possessive marker

Runtime:
- hs-halt! dispatches: default→preventDefault, bubbling→stopPropagation,
  event→both

Mock DOM:
- Add event method dispatch: preventDefault, stopPropagation,
  stopImmediatePropagation set correct flags on event dict

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-21 05:44:08 +00:00
parent a876ac8a7f
commit 922e7a7892
3 changed files with 18 additions and 4 deletions

View File

@@ -1657,8 +1657,8 @@
(fn
()
(let
((the-event (and (match-kw "the") (or (match-kw "event") (match-kw "default")))))
(list (quote halt!) (if the-event "event" "default")))))
((mode (cond ((match-kw "the") (do (match-kw "event") (match-kw "'s") "event")) ((or (match-kw "default") (and (= (tp-val) "default") (do (adv!) true))) "default") ((or (match-kw "bubbling") (and (= (tp-val) "bubbling") (do (adv!) true))) "bubbling") (true "event"))))
(list (quote halt!) mode))))
(define
parse-param-list
(fn () (if (= (tp-type) "paren-open") (parse-call-args) (list))))