HS: wait on event basics (+4 tests)
Five parts: (a) tests/hs-run-filtered.js `io-wait-event` mock now registers a one-shot listener on the target element and resumes with the event, instead of immediately resuming with nil. (b) Added hs-wait-for-or runtime form carrying a timeout-ms; mock resumes immediately when a timeout is present (0ms tests). (c) parser parse-wait-cmd recognises `wait for EV(v1, v2)` destructure syntax, emits :destructure list on wait-for AST. (d) compiler emit-wait-for updated for :from/:or combos; a new `__bind-from-detail__` form compiles to `(define v (host-get (host-get it "detail") v))`, and the `do`-sequence handler preprocesses wait-for to splice these synthetic bindings after the wait. (e) generator extracts `detail: ...` from `CustomEvent` options so dispatched events carry their payload. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -48,11 +48,17 @@
|
||||
(define hs-wait (fn (ms) (perform (list (quote io-sleep) ms))))
|
||||
|
||||
;; Wait for CSS transitions/animations to settle on an element.
|
||||
(define
|
||||
hs-wait-for
|
||||
(fn
|
||||
(target event-name)
|
||||
(perform (list (quote io-wait-event) target event-name))))
|
||||
(begin
|
||||
(define
|
||||
hs-wait-for
|
||||
(fn
|
||||
(target event-name)
|
||||
(perform (list (quote io-wait-event) target event-name))))
|
||||
(define
|
||||
hs-wait-for-or
|
||||
(fn
|
||||
(target event-name timeout-ms)
|
||||
(perform (list (quote io-wait-event) target event-name timeout-ms)))))
|
||||
|
||||
;; ── Class manipulation ──────────────────────────────────────────
|
||||
|
||||
|
||||
Reference in New Issue
Block a user