Rebuild hyperscript WASM bytecode bundles (hs-*.sxbc + manifest)
Updates the pre-bundled HS tokenizer/parser/compiler/runtime/integration sx + sxbc pairs plus module-manifest.json in shared/static/wasm/sx/, matching the current HS source after recent patches (call command, event destructuring, halt/append, break/continue, CSS block syntax, etc.). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -10,20 +10,46 @@
|
||||
;; Returns a function (fn (me) ...) that can be called with a DOM element.
|
||||
;; Uses eval-expr-cek to turn the SX data structure into a live closure.
|
||||
|
||||
(define
|
||||
hs-handler
|
||||
(fn
|
||||
(src)
|
||||
(let
|
||||
((sx (hs-to-sx-from-source src)))
|
||||
(eval-expr-cek
|
||||
(list
|
||||
(quote fn)
|
||||
(list (quote me))
|
||||
(list
|
||||
(quote let)
|
||||
(list (list (quote it) nil) (list (quote event) nil))
|
||||
sx))))))
|
||||
(begin
|
||||
(define
|
||||
hs-collect-vars
|
||||
(fn
|
||||
(sx)
|
||||
(define vars (list))
|
||||
(define
|
||||
walk
|
||||
(fn
|
||||
(node)
|
||||
(when
|
||||
(list? node)
|
||||
(when
|
||||
(and
|
||||
(> (len node) 1)
|
||||
(= (first node) (quote set!))
|
||||
(symbol? (nth node 1)))
|
||||
(let
|
||||
((name (nth node 1)))
|
||||
(when
|
||||
(not (some (fn (v) (= v name)) vars))
|
||||
(set! vars (cons name vars)))))
|
||||
(for-each walk node))))
|
||||
(walk sx)
|
||||
vars))
|
||||
(define
|
||||
hs-handler
|
||||
(fn
|
||||
(src)
|
||||
(let
|
||||
((sx (hs-to-sx-from-source src)))
|
||||
(let
|
||||
((extra-vars (hs-collect-vars sx)))
|
||||
(let
|
||||
((bindings (append (list (list (quote it) nil) (list (quote event) nil)) (map (fn (v) (list v nil)) extra-vars))))
|
||||
(eval-expr-cek
|
||||
(list
|
||||
(quote fn)
|
||||
(list (quote me))
|
||||
(list (quote let) bindings sx)))))))))
|
||||
|
||||
;; ── Activate a single element ───────────────────────────────────
|
||||
;; Reads the _="..." attribute, compiles, and executes with me=element.
|
||||
|
||||
Reference in New Issue
Block a user