HS trigger: compound event names + detail, event-refs via host-get
- parse-trigger-cmd: use parse-compound-event-name so 'trigger foo:bar' and 'trigger foo.bar' preserve the full event name. Also parse an optional detail dict '(x:42)' like parse-send-cmd. - compiler: 3-arg (trigger NAME DETAIL TGT) emits dom-dispatch with the detail dict. 2-arg (trigger NAME TGT) unchanged. - emit-on event-ref bindings now use (host-get event 'detail') → the event carries detail as a JS object, so the SX 'get' primitive returned nil and tests checking 'on foo(x) … x' saw empty values. Net: trigger 2→6 (100%).
This commit is contained in:
@@ -1438,10 +1438,15 @@
|
||||
(fn
|
||||
()
|
||||
(let
|
||||
((name (get (adv!) "value")))
|
||||
((name (parse-compound-event-name)))
|
||||
(let
|
||||
((tgt (parse-tgt-kw "on" (list (quote me)))))
|
||||
(list (quote trigger) name tgt)))))
|
||||
((dtl (if (= (tp-type) "paren-open") (parse-detail-dict) nil)))
|
||||
(let
|
||||
((tgt (parse-tgt-kw "on" (list (quote me)))))
|
||||
(if
|
||||
dtl
|
||||
(list (quote trigger) name dtl tgt)
|
||||
(list (quote trigger) name tgt)))))))
|
||||
(define parse-log-cmd (fn () (list (quote log) (parse-expr))))
|
||||
(define
|
||||
parse-inc-cmd
|
||||
|
||||
Reference in New Issue
Block a user