diff --git a/shared/static/wasm/sx/hs-parser.sx b/shared/static/wasm/sx/hs-parser.sx
index bfe28b30..b61639d5 100644
--- a/shared/static/wasm/sx/hs-parser.sx
+++ b/shared/static/wasm/sx/hs-parser.sx
@@ -1553,20 +1553,18 @@
cl-collect
(fn
(acc)
- (do
- (match-kw "then")
- (let
- ((cmd (parse-cmd)))
- (if
- (nil? cmd)
- acc
- (let
- ((acc2 (append acc (list cmd))))
- (cond
- ((match-kw "then") (cl-collect acc2))
- ((and (not (at-end?)) (= (tp-type) "keyword") (cmd-kw? (tp-val)))
- (cl-collect acc2))
- (true acc2))))))))
+ (let
+ ((cmd (parse-cmd)))
+ (if
+ (nil? cmd)
+ acc
+ (let
+ ((acc2 (append acc (list cmd))))
+ (cond
+ ((match-kw "then") (cl-collect acc2))
+ ((and (not (at-end?)) (= (tp-type) "keyword") (cmd-kw? (tp-val)))
+ (cl-collect acc2))
+ (true acc2)))))))
(let
((cmds (cl-collect (list))))
(cond
diff --git a/shared/static/wasm/sx/hs-parser.sxbc b/shared/static/wasm/sx/hs-parser.sxbc
index 7027fa60..bfdeb86c 100644
--- a/shared/static/wasm/sx/hs-parser.sxbc
+++ b/shared/static/wasm/sx/hs-parser.sxbc
@@ -1,3 +1,3 @@
-(sxbc 1 "50a6d0a0eb0f1019"
+(sxbc 1 "919466450a51fa00"
(code
- :constants ("hs-parse" {:upvalue-count 0 :arity 2 :constants (0 "len" {:upvalue-count 3 :arity 0 :constants ("<" "nth") :bytecode (18 0 18 1 52 0 0 2 33 11 0 18 2 18 0 52 1 0 2 32 1 0 2 50)} {:upvalue-count 1 :arity 0 :constants ("get" "type" "eof") :bytecode (18 0 48 0 17 0 16 0 33 12 0 16 0 1 1 0 52 0 0 2 32 3 0 1 2 0 50)} {:upvalue-count 1 :arity 0 :constants ("get" "value") :bytecode (18 0 48 0 17 0 16 0 33 12 0 16 0 1 1 0 52 0 0 2 32 1 0 2 50)} {:upvalue-count 2 :arity 0 :constants ("nth" "+" 1) :bytecode (18 0 18 1 52 0 0 2 17 0 18 1 1 2 0 52 1 0 2 19 1 5 16 0 50)} {:upvalue-count 3 :arity 0 :constants (">=" "=" "eof") :bytecode (18 0 18 1 52 0 0 2 6 34 12 0 5 18 2 48 0 1 2 0 52 1 0 2 50)} {:upvalue-count 3 :arity 1 :constants ("=" "keyword") :bytecode (18 0 48 0 1 1 0 52 0 0 2 6 33 11 0 5 18 1 48 0 16 0 52 0 0 2 33 9 0 18 2 48 0 5 3 32 1 0 2 50)} {:upvalue-count 2 :arity 1 :constants ("error" "str" "Expected '" "' at position ") :bytecode (18 0 16 0 48 1 33 4 0 3 32 18 0 1 2 0 16 0 1 3 0 18 1 52 1 0 4 52 0 0 1 50)} {:upvalue-count 0 :arity 1 :constants ("len" ">=" 3 "=" "substring" "-" 2 "ms" "parse-number" 0 "nth" 1 "s" "*" 1000) :bytecode (16 0 52 0 0 1 17 1 16 1 1 2 0 52 1 0 2 6 33 25 0 5 16 0 16 1 1 6 0 52 5 0 2 16 1 52 4 0 3 1 7 0 52 3 0 2 33 25 0 16 0 1 9 0 16 1 1 6 0 52 5 0 2 52 4 0 3 52 8 0 1 32 77 0 16 1 1 6 0 52 1 0 2 6 33 23 0 5 16 0 16 1 1 11 0 52 5 0 2 52 10 0 2 1 12 0 52 3 0 2 33 32 0 1 14 0 16 0 1 9 0 16 1 1 11 0 52 5 0 2 52 4 0 3 52 8 0 1 52 13 0 2 32 6 0 16 0 52 8 0 1 50)} {:upvalue-count 4 :arity 1 :constants ("=" "ident" "keyword" "list" . "attr" attr "class" "get" "value") :bytecode (18 0 48 0 17 1 18 1 48 0 17 2 16 1 1 1 0 52 0 0 2 6 34 10 0 5 16 1 1 2 0 52 0 0 2 33 23 0 18 2 48 0 5 18 3 1 4 0 16 0 16 2 52 3 0 3 49 1 32 76 0 16 1 1 5 0 52 0 0 2 33 19 0 18 2 48 0 5 1 6 0 16 2 16 0 52 3 0 3 32 45 0 16 1 1 7 0 52 0 0 2 33 31 0 18 2 48 0 1 9 0 52 8 0 2 17 3 18 3 1 4 0 16 0 16 3 52 3 0 3 49 1 32 2 0 16 0 50)} {:upvalue-count 6 :arity 1 :constants ("=" "class" "not" "list" "make-symbol" "." "paren-open" method-call) :bytecode (18 0 48 0 1 1 0 52 0 0 2 6 33 9 0 5 18 1 48 0 52 2 0 1 33 33 0 18 2 48 0 17 1 18 3 48 0 5 18 4 1 5 0 52 4 0 1 16 0 16 1 52 3 0 3 49 1 32 40 0 18 0 48 0 1 6 0 52 0 0 2 33 24 0 18 5 48 0 17 1 18 4 1 7 0 16 0 16 1 52 3 0 3 49 1 32 2 0 16 0 50)} {:upvalue-count 3 :arity 1 :constants ("=" "selector" "list" me "class" "str" "." "id" "#" "*") :bytecode (18 0 48 0 17 1 18 1 48 0 17 2 16 1 1 1 0 52 0 0 2 33 23 0 18 2 48 0 5 16 0 16 2 1 3 0 52 2 0 1 52 2 0 3 32 100 0 16 1 1 4 0 52 0 0 2 33 30 0 18 2 48 0 5 16 0 1 6 0 16 2 52 5 0 2 1 3 0 52 2 0 1 52 2 0 3 32 58 0 16 1 1 7 0 52 0 0 2 33 30 0 18 2 48 0 5 16 0 1 8 0 16 2 52 5 0 2 1 3 0 52 2 0 1 52 2 0 3 32 16 0 16 0 1 9 0 1 3 0 52 2 0 1 52 2 0 3 50)} {:upvalue-count 5 :arity 1 :constants ("=" "selector" "class" "str" "." "id" "#" "*" "in" "list") :bytecode (18 0 48 0 17 1 18 1 48 0 17 2 16 1 1 1 0 52 0 0 2 33 10 0 18 2 48 0 5 16 2 32 61 0 16 1 1 2 0 52 0 0 2 33 17 0 18 2 48 0 5 1 4 0 16 2 52 3 0 2 32 32 0 16 1 1 5 0 52 0 0 2 33 17 0 18 2 48 0 5 1 6 0 16 2 52 3 0 2 32 3 0 1 7 0 17 3 18 3 1 8 0 48 1 33 15 0 16 0 16 3 18 4 48 0 52 9 0 3 32 8 0 16 0 16 3 52 9 0 2 50)} {:upvalue-count 16 :arity 0 :constants ("=" "number" "string" "template" "list" template "keyword" "true" "false" "null" "nil" null-literal "undefined" "beep" "op" "!" beep! "not" not "no" no "eval" "paren-open" sx-eval "the" "me" me "I" "it" "result" it "event" event "target" "make-symbol" "." "detail" "my" "its" "closest" closest "next" next "previous" previous "first" first "last" last "id" query "str" "#" "selector" "attr" attr "style" style "local" local "class" "ident" ref "paren-close" "brace-open" {:upvalue-count 6 :arity 1 :constants ("=" "brace-close" "string" "local" "true" "false" "null" "list" ref "colon" "comma" "cons") :bytecode (18 0 48 0 6 34 12 0 5 18 1 48 0 1 1 0 52 0 0 2 33 28 0 18 1 48 0 1 1 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 16 0 32 203 0 18 1 48 0 1 2 0 52 0 0 2 33 16 0 18 3 48 0 17 1 18 2 48 0 5 16 1 32 13 0 18 3 48 0 17 1 18 2 48 0 5 16 1 17 1 18 1 48 0 1 3 0 52 0 0 2 33 71 0 18 3 48 0 17 2 18 2 48 0 5 16 2 1 4 0 52 0 0 2 33 4 0 3 32 41 0 16 2 1 5 0 52 0 0 2 33 4 0 4 32 25 0 16 2 1 6 0 52 0 0 2 33 4 0 2 32 9 0 1 8 0 16 2 52 7 0 2 32 30 0 18 1 48 0 1 9 0 52 0 0 2 33 12 0 18 2 48 0 5 18 4 48 0 32 4 0 18 4 48 0 17 2 18 1 48 0 1 10 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 18 5 16 1 16 2 52 7 0 2 16 0 52 11 0 2 49 1 50)} object-literal "\\" {:upvalue-count 6 :arity 1 :constants ("=" "op" "-" "<" "+" 1 "len" "get" "nth" "value" ">" "ident" "comma" "append") :bytecode (18 0 48 0 1 1 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 2 0 52 0 0 2 33 76 0 18 2 1 5 0 52 4 0 2 18 3 52 6 0 1 52 3 0 2 6 33 30 0 5 18 3 18 2 1 5 0 52 4 0 2 52 8 0 2 1 9 0 52 7 0 2 1 10 0 52 0 0 2 33 15 0 18 4 48 0 5 18 4 48 0 5 16 0 32 2 0 16 0 32 65 0 18 0 48 0 1 11 0 52 0 0 2 33 49 0 18 1 48 0 17 1 18 4 48 0 5 18 0 48 0 1 12 0 52 0 0 2 33 7 0 18 4 48 0 32 1 0 2 5 18 5 16 0 16 1 52 13 0 2 49 1 32 2 0 16 0 50)} block-literal "bracket-open" "-" - 0 "component" component "some" ">" "len" "+" 1 "get" "nth" "value" "in" "with" some "every" every) :bytecode (18 0 48 0 17 0 18 1 48 0 17 1 16 0 1 1 0 52 0 0 2 33 14 0 18 2 48 0 5 18 3 16 1 49 1 32 66 7 16 0 1 2 0 52 0 0 2 33 10 0 18 2 48 0 5 16 1 32 44 7 16 0 1 3 0 52 0 0 2 33 17 0 18 2 48 0 5 1 5 0 16 1 52 4 0 2 32 15 7 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 7 0 52 0 0 2 33 9 0 18 2 48 0 5 3 32 236 6 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 8 0 52 0 0 2 33 9 0 18 2 48 0 5 4 32 201 6 16 0 1 6 0 52 0 0 2 6 33 24 0 5 16 1 1 9 0 52 0 0 2 6 34 10 0 5 16 1 1 10 0 52 0 0 2 33 15 0 18 2 48 0 5 1 11 0 52 4 0 1 32 146 6 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 12 0 52 0 0 2 33 15 0 18 2 48 0 5 1 11 0 52 4 0 1 32 105 6 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 13 0 52 0 0 2 33 58 0 18 2 48 0 5 18 0 48 0 1 14 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 15 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 1 16 0 18 4 48 0 52 4 0 2 32 21 6 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 17 0 52 0 0 2 33 19 0 18 2 48 0 5 1 18 0 18 4 48 0 52 4 0 2 32 232 5 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 19 0 52 0 0 2 33 19 0 18 2 48 0 5 1 20 0 18 4 48 0 52 4 0 2 32 187 5 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 21 0 52 0 0 2 33 47 0 18 2 48 0 5 18 0 48 0 1 22 0 52 0 0 2 33 14 0 1 23 0 18 5 48 0 52 4 0 2 32 11 0 1 23 0 18 4 48 0 52 4 0 2 32 114 5 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 24 0 52 0 0 2 33 12 0 18 2 48 0 5 18 6 49 0 32 76 5 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 25 0 52 0 0 2 33 15 0 18 2 48 0 5 1 26 0 52 4 0 1 32 35 5 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 27 0 52 0 0 2 33 15 0 18 2 48 0 5 1 26 0 52 4 0 1 32 250 4 16 0 1 6 0 52 0 0 2 6 33 24 0 5 16 1 1 28 0 52 0 0 2 6 34 10 0 5 16 1 1 29 0 52 0 0 2 33 15 0 18 2 48 0 5 1 30 0 52 4 0 1 32 195 4 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 31 0 52 0 0 2 33 15 0 18 2 48 0 5 1 32 0 52 4 0 1 32 154 4 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 33 0 52 0 0 2 33 29 0 18 2 48 0 5 1 35 0 52 34 0 1 1 32 0 52 4 0 1 1 33 0 52 4 0 3 32 99 4 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 36 0 52 0 0 2 33 29 0 18 2 48 0 5 1 35 0 52 34 0 1 1 32 0 52 4 0 1 1 36 0 52 4 0 3 32 44 4 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 37 0 52 0 0 2 33 19 0 18 2 48 0 5 18 7 1 26 0 52 4 0 1 49 1 32 255 3 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 38 0 52 0 0 2 33 19 0 18 2 48 0 5 18 7 1 30 0 52 4 0 1 49 1 32 210 3 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 39 0 52 0 0 2 33 15 0 18 2 48 0 5 18 8 1 40 0 49 1 32 169 3 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 41 0 52 0 0 2 33 15 0 18 2 48 0 5 18 8 1 42 0 49 1 32 128 3 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 43 0 52 0 0 2 33 15 0 18 2 48 0 5 18 8 1 44 0 49 1 32 87 3 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 45 0 52 0 0 2 33 15 0 18 2 48 0 5 18 9 1 46 0 49 1 32 46 3 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 47 0 52 0 0 2 33 15 0 18 2 48 0 5 18 9 1 48 0 49 1 32 5 3 16 0 1 49 0 52 0 0 2 33 24 0 18 2 48 0 5 1 50 0 1 52 0 16 1 52 51 0 2 52 4 0 2 32 225 2 16 0 1 53 0 52 0 0 2 33 17 0 18 2 48 0 5 1 50 0 16 1 52 4 0 2 32 196 2 16 0 1 54 0 52 0 0 2 33 24 0 18 2 48 0 5 1 55 0 16 1 1 26 0 52 4 0 1 52 4 0 3 32 160 2 16 0 1 56 0 52 0 0 2 33 24 0 18 2 48 0 5 1 57 0 16 1 1 26 0 52 4 0 1 52 4 0 3 32 124 2 16 0 1 58 0 52 0 0 2 33 17 0 18 2 48 0 5 1 59 0 16 1 52 4 0 2 32 95 2 16 0 1 60 0 52 0 0 2 33 24 0 18 2 48 0 5 1 50 0 1 35 0 16 1 52 51 0 2 52 4 0 2 32 59 2 16 0 1 61 0 52 0 0 2 33 17 0 18 2 48 0 5 1 62 0 16 1 52 4 0 2 32 30 2 16 0 1 22 0 52 0 0 2 33 39 0 18 2 48 0 5 18 4 48 0 17 2 18 0 48 0 1 63 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 16 2 32 235 1 16 0 1 64 0 52 0 0 2 33 41 0 18 2 48 0 5 51 65 0 0 10 0 0 0 2 0 1 0 4 1 2 17 2 5 1 66 0 16 2 52 4 0 0 48 1 52 4 0 2 32 182 1 16 0 1 14 0 52 0 0 2 6 33 10 0 5 16 1 1 67 0 52 0 0 2 33 49 0 18 2 48 0 5 51 68 0 0 0 0 1 0 11 0 12 0 2 1 3 17 3 5 16 3 52 4 0 0 48 1 17 4 1 69 0 16 4 18 4 48 0 52 4 0 3 32 107 1 16 0 1 70 0 52 0 0 2 33 12 0 18 2 48 0 5 18 13 49 0 32 83 1 16 0 1 14 0 52 0 0 2 6 33 10 0 5 16 1 1 71 0 52 0 0 2 33 26 0 18 2 48 0 5 18 14 48 0 17 4 1 72 0 1 73 0 16 4 52 4 0 3 32 31 1 16 0 1 74 0 52 0 0 2 33 17 0 18 2 48 0 5 1 75 0 16 1 52 4 0 2 32 2 1 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 76 0 52 0 0 2 33 149 0 18 2 48 0 5 18 0 48 0 1 61 0 52 0 0 2 6 33 54 0 5 18 12 52 78 0 1 18 11 1 80 0 52 79 0 2 52 77 0 2 6 33 30 0 5 18 12 18 11 1 80 0 52 79 0 2 52 82 0 2 1 83 0 52 81 0 2 1 84 0 52 0 0 2 33 51 0 18 1 48 0 17 4 18 2 48 0 5 18 15 1 84 0 48 1 5 18 4 48 0 17 5 18 15 1 85 0 48 1 5 1 86 0 16 4 16 5 18 4 48 0 52 4 0 4 32 18 0 1 18 0 1 20 0 18 4 48 0 52 4 0 2 52 4 0 2 32 83 0 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 87 0 52 0 0 2 33 56 0 18 2 48 0 5 18 1 48 0 17 4 18 2 48 0 5 18 15 1 84 0 48 1 5 18 4 48 0 17 5 18 15 1 85 0 48 1 5 1 88 0 16 4 16 5 18 4 48 0 52 4 0 4 32 1 0 2 50)} {:upvalue-count 8 :arity 1 :constants ("=" "op" "'s" "class" "paren-open" "list" call "bracket-open" ".." "bracket-close" array-slice array-index) :bytecode (18 0 48 0 1 1 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 2 0 52 0 0 2 33 14 0 18 2 48 0 5 18 3 16 0 49 1 32 74 1 18 0 48 0 1 3 0 52 0 0 2 33 9 0 18 4 16 0 49 1 32 51 1 18 0 48 0 1 4 0 52 0 0 2 33 20 0 18 5 48 0 17 1 1 6 0 16 0 16 1 52 5 0 3 32 17 1 18 0 48 0 1 7 0 52 0 0 2 33 1 1 18 2 48 0 5 18 0 48 0 1 1 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 8 0 52 0 0 2 33 53 0 18 2 48 0 5 18 6 48 0 17 1 18 0 48 0 1 9 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 18 7 1 10 0 16 0 2 16 1 52 5 0 4 49 1 32 166 0 18 6 48 0 17 1 18 0 48 0 1 1 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 8 0 52 0 0 2 33 92 0 18 2 48 0 5 18 0 48 0 1 9 0 52 0 0 2 33 24 0 18 2 48 0 5 18 7 1 10 0 16 0 16 1 2 52 5 0 4 49 1 32 46 0 18 6 48 0 17 2 18 0 48 0 1 9 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 18 7 1 10 0 16 0 16 1 16 2 52 5 0 4 49 1 32 38 0 18 0 48 0 1 9 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 18 7 1 11 0 16 0 16 1 52 5 0 3 49 1 32 2 0 16 0 50)} {:upvalue-count 7 :arity 1 :constants ("=" "op" "==" "!=" "<" ">" "<=" ">=" "===" "!==" "list" = strict-eq not "keyword" "is" "not" "empty" empty? "in" not-in? "between" "and" and >= <= "really" "equal" "to" "a" "an" "!" type-check-strict type-check "less" "than" "or" < "greater" > in? "ident" "hs-keyword?" prop-is "am" "exists" exists? "starts" "with" starts-with? "ends" ends-with? "matches" matches? "contains" contains? "as" "colon" as "str" ":" "of" "list?" "first" ref "make-symbol" "." "nth" 1 of "does" "exist" "match" "contain" "include" "includes" "equals" "precedes" precedes? "follows" follows?) :bytecode (18 0 48 0 17 1 18 1 48 0 17 2 16 1 1 1 0 52 0 0 2 6 33 108 0 5 16 2 1 2 0 52 0 0 2 6 34 94 0 5 16 2 1 3 0 52 0 0 2 6 34 80 0 5 16 2 1 4 0 52 0 0 2 6 34 66 0 5 16 2 1 5 0 52 0 0 2 6 34 52 0 5 16 2 1 6 0 52 0 0 2 6 34 38 0 5 16 2 1 7 0 52 0 0 2 6 34 24 0 5 16 2 1 8 0 52 0 0 2 6 34 10 0 5 16 2 1 9 0 52 0 0 2 33 109 0 18 2 48 0 5 18 3 48 0 17 3 16 2 1 2 0 52 0 0 2 33 14 0 1 11 0 16 0 16 3 52 10 0 3 32 69 0 16 2 1 8 0 52 0 0 2 33 14 0 1 12 0 16 0 16 3 52 10 0 3 32 43 0 16 2 1 9 0 52 0 0 2 33 21 0 1 13 0 1 12 0 16 0 16 3 52 10 0 3 52 10 0 2 32 10 0 16 2 16 0 16 3 52 10 0 3 32 13 9 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 15 0 52 0 0 2 33 173 3 18 2 48 0 5 18 4 1 16 0 48 1 33 127 1 18 4 1 17 0 48 1 33 19 0 1 13 0 1 18 0 16 0 52 10 0 2 52 10 0 2 32 95 1 18 4 1 19 0 48 1 33 16 0 1 20 0 16 0 18 3 48 0 52 10 0 3 32 69 1 18 4 1 21 0 48 1 33 59 0 18 5 48 0 17 3 18 4 1 22 0 48 1 5 18 5 48 0 17 4 1 13 0 1 23 0 1 24 0 16 0 16 3 52 10 0 3 1 25 0 16 0 16 4 52 10 0 3 52 10 0 3 52 10 0 2 32 0 1 18 4 1 26 0 48 1 33 39 0 18 4 1 27 0 48 1 5 18 4 1 28 0 48 1 5 1 13 0 1 12 0 16 0 18 3 48 0 52 10 0 3 52 10 0 2 32 207 0 18 4 1 27 0 48 1 33 31 0 18 4 1 28 0 48 1 5 1 13 0 1 11 0 16 0 18 3 48 0 52 10 0 3 52 10 0 2 32 166 0 18 1 48 0 1 29 0 52 0 0 2 6 34 12 0 5 18 1 48 0 1 30 0 52 0 0 2 6 33 7 0 5 18 2 48 0 5 3 33 101 0 18 1 48 0 17 3 18 2 48 0 5 18 0 48 0 1 1 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 31 0 52 0 0 2 17 4 16 4 33 7 0 18 2 48 0 32 1 0 2 5 16 4 33 21 0 1 13 0 1 32 0 16 0 16 3 52 10 0 3 52 10 0 2 32 18 0 1 13 0 1 33 0 16 0 16 3 52 10 0 3 52 10 0 2 32 24 0 18 3 48 0 17 3 1 13 0 1 11 0 16 0 16 3 52 10 0 3 52 10 0 2 32 28 2 18 4 1 17 0 48 1 33 12 0 1 18 0 16 0 52 10 0 2 32 6 2 18 4 1 34 0 48 1 33 66 0 18 4 1 35 0 48 1 5 18 4 1 36 0 48 1 33 32 0 18 4 1 27 0 48 1 5 18 4 1 28 0 48 1 5 1 25 0 16 0 18 3 48 0 52 10 0 3 32 13 0 1 37 0 16 0 18 3 48 0 52 10 0 3 32 186 1 18 4 1 38 0 48 1 33 66 0 18 4 1 35 0 48 1 5 18 4 1 36 0 48 1 33 32 0 18 4 1 27 0 48 1 5 18 4 1 28 0 48 1 5 1 24 0 16 0 18 3 48 0 52 10 0 3 32 13 0 1 39 0 16 0 18 3 48 0 52 10 0 3 32 110 1 18 4 1 21 0 48 1 33 52 0 18 5 48 0 17 3 18 4 1 22 0 48 1 5 18 5 48 0 17 4 1 23 0 1 24 0 16 0 16 3 52 10 0 3 1 25 0 16 0 16 4 52 10 0 3 52 10 0 3 32 48 1 18 4 1 19 0 48 1 33 16 0 1 40 0 16 0 18 3 48 0 52 10 0 3 32 22 1 18 4 1 26 0 48 1 33 32 0 18 4 1 27 0 48 1 5 18 4 1 28 0 48 1 5 1 12 0 16 0 18 3 48 0 52 10 0 3 32 236 0 18 4 1 27 0 48 1 33 24 0 18 4 1 28 0 48 1 5 1 11 0 16 0 18 3 48 0 52 10 0 3 32 202 0 18 1 48 0 1 29 0 52 0 0 2 6 34 12 0 5 18 1 48 0 1 30 0 52 0 0 2 6 33 7 0 5 18 2 48 0 5 3 33 87 0 18 1 48 0 17 3 18 2 48 0 5 18 0 48 0 1 1 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 31 0 52 0 0 2 17 4 16 4 33 7 0 18 2 48 0 32 1 0 2 5 16 4 33 14 0 1 32 0 16 0 16 3 52 10 0 3 32 11 0 1 33 0 16 0 16 3 52 10 0 3 32 74 0 18 0 48 0 1 41 0 52 0 0 2 6 33 14 0 5 20 42 0 18 1 48 0 48 1 52 16 0 1 33 25 0 18 1 48 0 17 3 18 2 48 0 5 1 43 0 16 0 16 3 52 10 0 3 32 17 0 18 3 48 0 17 3 1 11 0 16 0 16 3 52 10 0 3 32 70 5 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 44 0 52 0 0 2 33 165 0 18 2 48 0 5 18 4 1 16 0 48 1 33 82 0 18 4 1 19 0 48 1 33 16 0 1 20 0 16 0 18 3 48 0 52 10 0 3 32 53 0 18 4 1 17 0 48 1 33 19 0 1 13 0 1 18 0 16 0 52 10 0 2 52 10 0 2 32 24 0 18 3 48 0 17 3 1 13 0 1 11 0 16 0 16 3 52 10 0 3 52 10 0 2 32 65 0 18 4 1 19 0 48 1 33 16 0 1 40 0 16 0 18 3 48 0 52 10 0 3 32 39 0 18 4 1 17 0 48 1 33 12 0 1 18 0 16 0 52 10 0 2 32 17 0 18 3 48 0 17 3 1 11 0 16 0 16 3 52 10 0 3 32 135 4 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 45 0 52 0 0 2 33 17 0 18 2 48 0 5 1 46 0 16 0 52 10 0 2 32 92 4 16 1 1 14 0 52 0 0 2 6 34 10 0 5 16 1 1 41 0 52 0 0 2 6 33 10 0 5 16 2 1 47 0 52 0 0 2 33 29 0 18 2 48 0 5 18 4 1 48 0 48 1 5 1 49 0 16 0 18 3 48 0 52 10 0 3 32 23 4 16 1 1 14 0 52 0 0 2 6 34 10 0 5 16 1 1 41 0 52 0 0 2 6 33 10 0 5 16 2 1 50 0 52 0 0 2 33 29 0 18 2 48 0 5 18 4 1 48 0 48 1 5 1 51 0 16 0 18 3 48 0 52 10 0 3 32 210 3 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 52 0 52 0 0 2 33 21 0 18 2 48 0 5 1 53 0 16 0 18 3 48 0 52 10 0 3 32 163 3 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 54 0 52 0 0 2 33 21 0 18 2 48 0 5 1 55 0 16 0 18 3 48 0 52 10 0 3 32 116 3 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 56 0 52 0 0 2 33 135 0 18 2 48 0 5 18 1 48 0 1 29 0 52 0 0 2 6 34 12 0 5 18 1 48 0 1 30 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 18 1 48 0 17 3 18 2 48 0 5 18 0 48 0 1 57 0 52 0 0 2 6 33 9 0 5 18 6 48 0 52 16 0 1 33 39 0 18 2 48 0 5 18 1 48 0 17 4 18 2 48 0 5 1 58 0 16 0 16 3 1 60 0 16 4 52 59 0 3 52 10 0 3 32 11 0 1 58 0 16 0 16 3 52 10 0 3 32 211 2 16 1 1 57 0 52 0 0 2 33 92 0 18 2 48 0 5 18 1 48 0 17 3 18 2 48 0 5 18 0 48 0 1 1 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 31 0 52 0 0 2 17 4 16 4 33 7 0 18 2 48 0 32 1 0 2 5 16 4 33 14 0 1 32 0 16 0 16 3 52 10 0 3 32 11 0 1 33 0 16 0 16 3 52 10 0 3 32 107 2 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 61 0 52 0 0 2 33 77 0 18 2 48 0 5 18 3 48 0 17 3 16 0 52 62 0 1 6 33 14 0 5 16 0 52 63 0 1 1 64 0 52 0 0 2 33 25 0 1 66 0 52 65 0 1 16 3 16 0 1 68 0 52 67 0 2 52 10 0 3 32 11 0 1 69 0 16 0 16 3 52 10 0 3 32 4 2 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 19 0 52 0 0 2 33 21 0 18 2 48 0 5 1 40 0 16 0 18 3 48 0 52 10 0 3 32 213 1 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 70 0 52 0 0 2 33 170 0 18 2 48 0 5 18 4 1 16 0 48 1 5 18 4 1 71 0 48 1 33 19 0 1 13 0 1 46 0 16 0 52 10 0 2 52 10 0 2 32 125 0 18 4 1 72 0 48 1 33 23 0 1 13 0 1 53 0 16 0 18 3 48 0 52 10 0 3 52 10 0 2 32 92 0 18 4 1 73 0 48 1 6 34 8 0 5 18 4 1 54 0 48 1 33 23 0 1 13 0 1 55 0 16 0 18 3 48 0 52 10 0 3 52 10 0 2 32 47 0 18 4 1 74 0 48 1 6 34 8 0 5 18 4 1 75 0 48 1 33 23 0 1 13 0 1 55 0 16 0 18 3 48 0 52 10 0 3 52 10 0 2 32 2 0 16 0 32 17 1 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 76 0 52 0 0 2 33 21 0 18 2 48 0 5 1 11 0 16 0 18 3 48 0 52 10 0 3 32 226 0 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 26 0 52 0 0 2 33 29 0 18 2 48 0 5 18 4 1 76 0 48 1 5 1 12 0 16 0 18 3 48 0 52 10 0 3 32 171 0 16 1 1 14 0 52 0 0 2 6 33 38 0 5 16 2 1 73 0 52 0 0 2 6 34 24 0 5 16 2 1 74 0 52 0 0 2 6 34 10 0 5 16 2 1 75 0 52 0 0 2 33 21 0 18 2 48 0 5 1 55 0 16 0 18 3 48 0 52 10 0 3 32 96 0 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 77 0 52 0 0 2 33 21 0 18 2 48 0 5 1 78 0 16 0 18 5 48 0 52 10 0 3 32 49 0 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 79 0 52 0 0 2 33 21 0 18 2 48 0 5 1 80 0 16 0 18 5 48 0 52 10 0 3 32 2 0 16 0 50)} {:upvalue-count 6 :arity 1 :constants ("where" "list" coll-where "sorted" "by" "descending" "not" "ascending" coll-sorted-desc coll-sorted "mapped" "to" coll-mapped "split" coll-split "joined" coll-joined) :bytecode (18 0 1 0 0 48 1 33 36 0 18 1 18 2 18 3 18 4 48 0 48 1 48 1 48 1 17 1 18 5 1 2 0 16 0 16 1 52 1 0 3 49 1 32 11 1 18 0 1 3 0 48 1 33 93 0 18 0 1 4 0 48 1 5 18 1 18 2 18 3 18 4 48 0 48 1 48 1 48 1 17 1 18 0 1 5 0 48 1 17 2 16 2 52 6 0 1 33 10 0 18 0 1 7 0 48 1 32 1 0 2 5 18 5 16 2 33 14 0 1 8 0 16 0 16 1 52 1 0 3 32 11 0 1 9 0 16 0 16 1 52 1 0 3 49 1 32 164 0 18 0 1 10 0 48 1 33 44 0 18 0 1 11 0 48 1 5 18 1 18 2 18 3 18 4 48 0 48 1 48 1 48 1 17 1 18 5 1 12 0 16 0 16 1 52 1 0 3 49 1 32 110 0 18 0 1 13 0 48 1 33 44 0 18 0 1 4 0 48 1 5 18 1 18 2 18 3 18 4 48 0 48 1 48 1 48 1 17 1 18 5 1 14 0 16 0 16 1 52 1 0 3 49 1 32 56 0 18 0 1 15 0 48 1 33 44 0 18 0 1 4 0 48 1 5 18 1 18 2 18 3 18 4 48 0 48 1 48 1 48 1 17 1 18 5 1 16 0 16 0 16 1 52 1 0 3 49 1 32 2 0 16 0 50)} {:upvalue-count 7 :arity 1 :constants ("and" "list" and "or" or) :bytecode (18 0 1 0 0 48 1 33 40 0 18 1 18 2 18 3 18 4 18 5 48 0 48 1 48 1 48 1 48 1 17 1 18 6 1 2 0 16 0 16 1 52 1 0 3 49 1 32 52 0 18 0 1 3 0 48 1 33 40 0 18 1 18 2 18 3 18 4 18 5 48 0 48 1 48 1 48 1 48 1 17 1 18 6 1 4 0 16 0 16 1 52 1 0 3 49 1 32 2 0 16 0 50)} {:upvalue-count 9 :arity 0 :constants ("nil?" "number?" "=" "ident" "list" string-postfix "not" "then" "end" "else" "otherwise" "op" "%") :bytecode (18 0 48 0 17 0 16 0 52 0 0 1 33 4 0 2 32 242 0 16 0 52 1 0 1 6 33 12 0 5 18 1 48 0 1 3 0 52 2 0 2 33 27 0 18 2 48 0 17 1 18 3 48 0 5 1 5 0 16 0 16 1 52 4 0 3 17 0 32 1 0 2 5 18 4 16 0 48 1 17 1 18 5 16 1 48 1 17 2 18 6 16 2 48 1 17 3 18 7 16 3 48 1 17 4 18 8 16 4 48 1 17 5 16 5 6 33 112 0 5 18 1 48 0 1 3 0 52 2 0 2 6 33 64 0 5 18 2 48 0 1 7 0 52 2 0 2 6 34 44 0 5 18 2 48 0 1 8 0 52 2 0 2 6 34 28 0 5 18 2 48 0 1 9 0 52 2 0 2 6 34 12 0 5 18 2 48 0 1 10 0 52 2 0 2 52 6 0 1 6 34 28 0 5 18 1 48 0 1 11 0 52 2 0 2 6 33 12 0 5 18 2 48 0 1 12 0 52 2 0 2 33 25 0 18 2 48 0 17 6 18 3 48 0 5 1 5 0 16 5 16 6 52 4 0 3 32 2 0 16 5 50)} {:upvalue-count 2 :arity 2 :constants () :bytecode (18 0 16 0 48 1 33 7 0 18 1 49 0 32 2 0 16 1 50)} {:upvalue-count 3 :arity 0 :constants ("=" "class" "get" "value" "list" {:upvalue-count 4 :arity 0 :constants ("=" "class" "append" "list" "get" "value") :bytecode (18 0 48 0 1 1 0 52 0 0 2 33 31 0 18 1 18 2 48 0 1 5 0 52 4 0 2 52 3 0 1 52 2 0 2 19 1 5 18 3 49 0 32 1 0 2 50)} "to" me "empty?" add-class "cons" multi-add-class) :bytecode (18 0 48 0 1 1 0 52 0 0 2 33 101 0 18 1 48 0 1 3 0 52 2 0 2 17 0 52 4 0 0 17 1 51 5 0 0 0 1 1 0 1 1 2 17 2 5 16 2 48 0 5 18 2 1 6 0 1 7 0 52 4 0 1 48 2 17 3 16 1 52 8 0 1 33 14 0 1 9 0 16 0 16 3 52 4 0 3 32 21 0 1 11 0 16 3 16 0 16 1 52 10 0 2 52 10 0 2 52 10 0 2 32 1 0 2 50)} {:upvalue-count 5 :arity 0 :constants ("=" "class" "get" "value" "list" {:upvalue-count 4 :arity 0 :constants ("=" "class" "append" "list" "get" "value") :bytecode (18 0 48 0 1 1 0 52 0 0 2 33 31 0 18 1 18 2 48 0 1 5 0 52 4 0 2 52 3 0 1 52 2 0 2 19 1 5 18 3 49 0 32 1 0 2 50)} "from" "empty?" remove-class "cons" multi-remove-class "bracket-open" "[" "attr" "]" remove-attr "{" {:upvalue-count 4 :arity 0 :constants ("not" "=" "}" ";" "append" "list" "get" "value") :bytecode (18 0 48 0 1 2 0 52 1 0 2 52 0 0 1 33 76 0 18 0 48 0 1 3 0 52 1 0 2 33 7 0 18 1 48 0 32 1 0 2 5 18 0 48 0 1 2 0 52 1 0 2 52 0 0 1 33 31 0 18 2 18 1 48 0 1 7 0 52 6 0 2 52 5 0 1 52 4 0 2 19 2 5 18 3 49 0 32 1 0 2 32 1 0 2 50)} "}" remove-css remove-element) :bytecode (18 0 48 0 1 1 0 52 0 0 2 33 105 0 18 1 48 0 1 3 0 52 2 0 2 17 0 52 4 0 0 17 1 51 5 0 0 0 1 1 0 1 1 2 17 2 5 16 2 48 0 5 18 2 1 6 0 48 1 33 7 0 18 3 48 0 32 1 0 2 17 3 16 1 52 7 0 1 33 14 0 1 8 0 16 0 16 3 52 4 0 3 32 21 0 1 10 0 16 3 16 0 16 1 52 9 0 2 52 9 0 2 52 9 0 2 32 209 0 18 0 48 0 1 11 0 52 0 0 2 6 33 12 0 5 18 4 48 0 1 12 0 52 0 0 2 33 78 0 18 1 48 0 5 18 0 48 0 1 13 0 52 0 0 2 33 55 0 18 1 48 0 1 3 0 52 2 0 2 17 0 18 2 1 14 0 48 1 5 18 2 1 6 0 48 1 33 7 0 18 3 48 0 32 1 0 2 17 1 1 15 0 16 0 16 1 52 4 0 3 32 1 0 2 32 101 0 18 4 48 0 1 16 0 52 0 0 2 33 72 0 18 1 48 0 5 52 4 0 0 17 0 51 17 0 0 4 0 1 1 0 1 1 17 1 5 16 1 48 0 5 18 2 1 18 0 48 1 5 18 2 1 6 0 48 1 33 7 0 18 3 48 0 32 1 0 2 17 2 1 19 0 16 0 16 2 52 4 0 3 32 15 0 18 3 48 0 17 0 1 20 0 16 0 52 4 0 2 50)} {:upvalue-count 7 :arity 0 :constants ("between" "=" "class" "and" "on" "list" me toggle-between toggle-class "style" toggle-style-between toggle-style "attr" toggle-attr-between toggle-attr) :bytecode (18 0 1 0 0 48 1 33 106 0 18 1 48 0 1 2 0 52 1 0 2 33 88 0 18 2 48 0 17 0 18 3 48 0 5 16 0 17 0 18 4 1 3 0 48 1 5 18 1 48 0 1 2 0 52 1 0 2 33 47 0 18 2 48 0 17 1 18 3 48 0 5 16 1 17 1 18 5 1 4 0 1 6 0 52 5 0 1 48 2 17 2 1 7 0 16 0 16 1 16 2 52 5 0 4 32 1 0 2 32 1 0 2 32 50 1 18 1 48 0 1 2 0 52 1 0 2 33 45 0 18 2 48 0 17 0 18 3 48 0 5 16 0 17 0 18 5 1 4 0 1 6 0 52 5 0 1 48 2 17 1 1 8 0 16 0 16 1 52 5 0 3 32 247 0 18 1 48 0 1 9 0 52 1 0 2 33 109 0 18 2 48 0 17 0 18 3 48 0 5 16 0 17 0 18 0 1 0 0 48 1 33 54 0 18 6 48 0 17 1 18 4 1 3 0 48 1 5 18 6 48 0 17 2 18 5 1 4 0 1 6 0 52 5 0 1 48 2 17 3 1 10 0 16 0 16 1 16 2 16 3 52 5 0 5 32 27 0 18 5 1 4 0 1 6 0 52 5 0 1 48 2 17 1 1 11 0 16 0 16 1 52 5 0 3 32 124 0 18 1 48 0 1 12 0 52 1 0 2 33 109 0 18 2 48 0 17 0 18 3 48 0 5 16 0 17 0 18 0 1 0 0 48 1 33 54 0 18 6 48 0 17 1 18 4 1 3 0 48 1 5 18 6 48 0 17 2 18 5 1 4 0 1 6 0 52 5 0 1 48 2 17 3 1 13 0 16 0 16 1 16 2 16 3 52 5 0 5 32 27 0 18 5 1 4 0 1 6 0 52 5 0 1 48 2 17 1 1 14 0 16 0 16 1 52 5 0 3 32 1 0 2 50)} {:upvalue-count 2 :arity 0 :constants ("to" "list" set!) :bytecode (18 0 48 0 17 0 18 1 1 0 0 48 1 5 18 0 48 0 17 1 1 2 0 16 0 16 1 52 1 0 3 50)} {:upvalue-count 4 :arity 0 :constants ("into" "list" set! "before" put! "after" "at" "start" "of" "end" "error" "str" "Expected start/end after at, position " "Expected into/before/after/at at position ") :bytecode (18 0 48 0 17 0 18 1 1 0 0 48 1 33 16 0 1 2 0 18 0 48 0 16 0 52 1 0 3 32 171 0 18 1 1 3 0 48 1 33 19 0 1 4 0 16 0 1 3 0 18 0 48 0 52 1 0 4 32 142 0 18 1 1 5 0 48 1 33 19 0 1 4 0 16 0 1 5 0 18 0 48 0 52 1 0 4 32 113 0 18 1 1 6 0 48 1 33 90 0 18 1 1 7 0 48 1 33 27 0 18 2 1 8 0 48 1 5 1 4 0 16 0 1 7 0 18 0 48 0 52 1 0 4 32 50 0 18 1 1 9 0 48 1 33 27 0 18 2 1 8 0 48 1 5 1 4 0 16 0 1 9 0 18 0 48 0 52 1 0 4 32 13 0 1 12 0 18 3 52 11 0 2 52 10 0 1 32 13 0 1 13 0 18 3 52 11 0 2 52 10 0 1 50)} {:upvalue-count 3 :arity 0 :constants ("else" "otherwise" "end" "list" if) :bytecode (18 0 48 0 17 0 18 1 48 0 17 1 18 2 1 0 0 48 1 6 34 8 0 5 18 2 1 1 0 48 1 33 7 0 18 1 48 0 32 1 0 2 17 2 18 2 1 2 0 48 1 5 16 2 33 16 0 1 4 0 16 0 16 1 16 2 52 3 0 4 32 11 0 1 4 0 16 0 16 1 52 3 0 3 50)} {:upvalue-count 6 :arity 0 :constants ("for" "from" "list" wait-for "=" "number" wait "get" "value" 0) :bytecode (18 0 1 0 0 48 1 33 65 0 18 1 48 0 17 0 18 2 48 0 5 18 0 1 1 0 48 1 33 7 0 18 3 48 0 32 1 0 2 17 1 16 1 33 17 0 1 3 0 16 0 1 1 0 16 1 52 2 0 4 32 9 0 1 3 0 16 0 52 2 0 2 32 53 0 18 4 48 0 1 5 0 52 4 0 2 33 29 0 18 2 48 0 17 0 1 6 0 18 5 16 0 1 8 0 52 7 0 2 48 1 52 2 0 2 32 10 0 1 6 0 1 9 0 52 2 0 2 50)} {:upvalue-count 4 :arity 1 :constants ({:upvalue-count 5 :arity 1 :constants ("=" "paren-close" "get" "value" "colon" "comma" "append" "list") :bytecode (18 0 48 0 1 1 0 52 0 0 2 6 34 5 0 5 18 1 48 0 33 28 0 18 0 48 0 1 1 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 16 0 32 83 0 18 2 48 0 1 3 0 52 2 0 2 17 1 18 0 48 0 1 4 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 18 3 48 0 17 2 18 0 48 0 1 5 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 18 4 16 0 16 1 16 2 52 7 0 2 52 6 0 2 49 1 50)} "cons" dict "list") :bytecode (18 0 48 0 5 51 0 0 0 1 0 2 0 0 0 3 1 0 17 0 5 1 2 0 16 0 52 3 0 0 48 1 52 1 0 2 50)} {:upvalue-count 4 :arity 0 :constants ("get" "value" "=" "paren-open" "to" "list" me send) :bytecode (18 0 48 0 1 1 0 52 0 0 2 17 0 18 1 48 0 1 3 0 52 2 0 2 33 7 0 18 2 48 0 32 1 0 2 17 1 18 3 1 4 0 1 6 0 52 5 0 1 48 2 17 2 16 1 33 16 0 1 7 0 16 0 16 1 16 2 52 5 0 4 32 11 0 1 7 0 16 0 16 2 52 5 0 3 50)} {:upvalue-count 2 :arity 0 :constants ("get" "value" "on" "list" me trigger) :bytecode (18 0 48 0 1 1 0 52 0 0 2 17 0 18 1 1 2 0 1 4 0 52 3 0 1 48 2 17 1 1 5 0 16 0 16 1 52 3 0 3 50)} {:upvalue-count 1 :arity 0 :constants ("list" log) :bytecode (1 1 0 18 0 48 0 52 0 0 2 50)} {:upvalue-count 3 :arity 0 :constants ("by" 1 "on" "list" me increment!) :bytecode (18 0 48 0 17 0 18 1 1 0 0 48 1 33 7 0 18 0 48 0 32 3 0 1 1 0 17 1 18 2 1 2 0 1 4 0 52 3 0 1 48 2 17 2 1 5 0 16 0 16 1 16 2 52 3 0 4 50)} {:upvalue-count 3 :arity 0 :constants ("by" 1 "on" "list" me decrement!) :bytecode (18 0 48 0 17 0 18 1 1 0 0 48 1 33 7 0 18 0 48 0 32 3 0 1 1 0 17 1 18 2 1 2 0 1 4 0 52 3 0 1 48 2 17 2 1 5 0 16 0 16 1 16 2 52 3 0 4 50)} {:upvalue-count 6 :arity 0 :constants ("list" me "=" "keyword" "then" "end" "with" "add" "remove" "set" "put" "toggle" "hide" "show" "display" hide) :bytecode (18 0 48 0 33 10 0 1 1 0 52 0 0 1 32 188 0 18 1 48 0 1 3 0 52 2 0 2 6 33 156 0 5 18 2 48 0 1 4 0 52 2 0 2 6 34 140 0 5 18 2 48 0 1 5 0 52 2 0 2 6 34 124 0 5 18 2 48 0 1 6 0 52 2 0 2 6 34 108 0 5 18 2 48 0 1 7 0 52 2 0 2 6 34 92 0 5 18 2 48 0 1 8 0 52 2 0 2 6 34 76 0 5 18 2 48 0 1 9 0 52 2 0 2 6 34 60 0 5 18 2 48 0 1 10 0 52 2 0 2 6 34 44 0 5 18 2 48 0 1 11 0 52 2 0 2 6 34 28 0 5 18 2 48 0 1 12 0 52 2 0 2 6 34 12 0 5 18 2 48 0 1 13 0 52 2 0 2 33 10 0 1 1 0 52 0 0 1 32 4 0 18 3 48 0 17 0 18 4 1 6 0 48 1 33 29 0 18 0 48 0 33 6 0 1 14 0 32 13 0 18 2 48 0 17 1 18 5 48 0 5 16 1 32 3 0 1 14 0 17 1 1 15 0 16 0 16 1 52 0 0 3 50)} {:upvalue-count 6 :arity 0 :constants ("list" me "=" "keyword" "then" "end" "with" "add" "remove" "set" "put" "toggle" "hide" "show" "display" show) :bytecode (18 0 48 0 33 10 0 1 1 0 52 0 0 1 32 188 0 18 1 48 0 1 3 0 52 2 0 2 6 33 156 0 5 18 2 48 0 1 4 0 52 2 0 2 6 34 140 0 5 18 2 48 0 1 5 0 52 2 0 2 6 34 124 0 5 18 2 48 0 1 6 0 52 2 0 2 6 34 108 0 5 18 2 48 0 1 7 0 52 2 0 2 6 34 92 0 5 18 2 48 0 1 8 0 52 2 0 2 6 34 76 0 5 18 2 48 0 1 9 0 52 2 0 2 6 34 60 0 5 18 2 48 0 1 10 0 52 2 0 2 6 34 44 0 5 18 2 48 0 1 11 0 52 2 0 2 6 34 28 0 5 18 2 48 0 1 12 0 52 2 0 2 6 34 12 0 5 18 2 48 0 1 13 0 52 2 0 2 33 10 0 1 1 0 52 0 0 1 32 4 0 18 3 48 0 17 0 18 4 1 6 0 48 1 33 29 0 18 0 48 0 33 6 0 1 14 0 32 13 0 18 2 48 0 17 1 18 5 48 0 5 16 1 32 3 0 1 14 0 17 1 1 15 0 16 0 16 1 52 0 0 3 50)} {:upvalue-count 6 :arity 0 :constants ("=" "style" "get" "value" "my" "from" "to" "over" "list" transition-from transition) :bytecode (18 0 48 0 1 1 0 52 0 0 2 33 14 0 18 1 48 0 1 3 0 52 2 0 2 32 72 0 18 2 48 0 1 4 0 52 0 0 2 33 47 0 18 1 48 0 5 18 0 48 0 1 1 0 52 0 0 2 33 14 0 18 1 48 0 1 3 0 52 2 0 2 32 11 0 18 1 48 0 1 3 0 52 2 0 2 32 11 0 18 1 48 0 1 3 0 52 2 0 2 17 0 18 3 1 5 0 48 1 33 7 0 18 4 48 0 32 1 0 2 17 1 18 5 1 6 0 48 1 5 18 4 48 0 17 2 18 3 1 7 0 48 1 33 7 0 18 4 48 0 32 1 0 2 17 3 16 1 33 18 0 1 9 0 16 0 16 1 16 2 16 3 52 8 0 5 32 34 0 16 3 33 17 0 1 10 0 16 0 16 2 16 3 2 52 8 0 5 32 12 0 1 10 0 16 0 16 2 2 52 8 0 4 50)} {:upvalue-count 7 :arity 0 :constants ("=" "keyword" "for" "in" "end" "list" for "it" "forever" forever "while" while "until" until "times" times repeat) :bytecode (18 0 48 0 1 1 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 2 0 52 0 0 2 33 12 0 18 2 48 0 5 18 3 49 0 32 203 0 18 0 48 0 1 1 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 3 0 52 0 0 2 33 43 0 18 2 48 0 5 18 4 48 0 17 0 18 5 48 0 17 1 18 6 1 4 0 48 1 5 1 6 0 1 7 0 16 0 2 16 1 52 5 0 5 32 130 0 18 6 1 8 0 48 1 33 10 0 1 9 0 52 5 0 1 32 83 0 18 6 1 10 0 48 1 33 14 0 1 11 0 18 4 48 0 52 5 0 2 32 59 0 18 6 1 12 0 48 1 33 14 0 1 13 0 18 4 48 0 52 5 0 2 32 35 0 18 4 48 0 17 0 18 6 1 14 0 48 1 33 12 0 1 15 0 16 0 52 5 0 2 32 7 0 1 9 0 52 5 0 1 17 0 18 5 48 0 17 1 18 6 1 4 0 48 1 5 1 16 0 16 0 16 1 52 5 0 3 50)} {:upvalue-count 6 :arity 0 :constants ("nil?" "as" "json" "list" fetch) :bytecode (18 0 48 0 17 0 16 0 52 0 0 1 33 5 0 16 0 32 10 0 18 1 18 2 16 0 48 1 48 1 17 1 18 3 1 1 0 48 1 33 16 0 18 4 48 0 17 2 18 5 48 0 5 16 2 32 3 0 1 2 0 17 2 1 4 0 16 1 16 2 52 3 0 3 50)} {:upvalue-count 4 :arity 1 :constants ({:upvalue-count 5 :arity 1 :constants ("=" "paren-close" "comma" "append" "list") :bytecode (18 0 48 0 1 1 0 52 0 0 2 6 34 5 0 5 18 1 48 0 33 28 0 18 0 48 0 1 1 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 16 0 32 45 0 18 3 48 0 17 1 18 0 48 0 1 2 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 18 4 16 0 16 1 52 4 0 1 52 3 0 2 49 1 50)} "list") :bytecode (18 0 48 0 5 51 0 0 0 1 0 2 0 0 0 3 1 0 17 0 5 16 0 52 1 0 0 49 1 50)} {:upvalue-count 3 :arity 0 :constants ("get" "value" "=" "paren-open" "cons" call "list") :bytecode (18 0 48 0 1 1 0 52 0 0 2 17 0 18 1 48 0 1 3 0 52 2 0 2 33 24 0 18 2 48 0 17 1 1 5 0 16 0 16 1 52 4 0 2 52 4 0 2 32 9 0 1 5 0 16 0 52 6 0 2 50)} {:upvalue-count 5 :arity 0 :constants ("=" "class" "from" "for" "list" take! "attr") :bytecode (18 0 48 0 1 1 0 52 0 0 2 33 74 0 18 1 48 0 17 0 18 2 48 0 5 16 0 17 0 18 3 1 2 0 48 1 33 7 0 18 4 48 0 32 1 0 2 17 1 18 3 1 3 0 48 1 33 7 0 18 4 48 0 32 1 0 2 17 2 1 5 0 1 1 0 16 0 16 1 16 2 52 4 0 5 32 89 0 18 0 48 0 1 6 0 52 0 0 2 33 74 0 18 1 48 0 17 0 18 2 48 0 5 16 0 17 0 18 3 1 2 0 48 1 33 7 0 18 4 48 0 32 1 0 2 17 1 18 3 1 3 0 48 1 33 7 0 18 4 48 0 32 1 0 2 17 2 1 5 0 1 6 0 16 0 16 1 16 2 52 4 0 5 32 1 0 2 50)} {:upvalue-count 2 :arity 0 :constants ("to" "list" go) :bytecode (18 0 1 0 0 48 1 5 1 2 0 18 1 48 0 52 1 0 2 50)} {:upvalue-count 6 :arity 1 :constants ("=" "op" "+" "-" "*" "/" "%" "keyword" "mod" + - * / "make-symbol" "nil?" "list") :bytecode (18 0 48 0 17 1 18 1 48 0 17 2 16 1 1 1 0 52 0 0 2 6 33 66 0 5 16 2 1 2 0 52 0 0 2 6 34 52 0 5 16 2 1 3 0 52 0 0 2 6 34 38 0 5 16 2 1 4 0 52 0 0 2 6 34 24 0 5 16 2 1 5 0 52 0 0 2 6 34 10 0 5 16 2 1 6 0 52 0 0 2 6 34 24 0 5 16 1 1 7 0 52 0 0 2 6 33 10 0 5 16 2 1 8 0 52 0 0 2 33 161 0 18 2 48 0 5 16 2 1 2 0 52 0 0 2 33 6 0 1 9 0 32 91 0 16 2 1 3 0 52 0 0 2 33 6 0 1 10 0 32 73 0 16 2 1 4 0 52 0 0 2 33 6 0 1 11 0 32 55 0 16 2 1 5 0 52 0 0 2 33 6 0 1 12 0 32 37 0 16 2 1 6 0 52 0 0 2 6 34 10 0 5 16 2 1 8 0 52 0 0 2 33 10 0 1 6 0 52 13 0 1 32 1 0 2 17 3 18 3 48 0 17 4 16 4 52 14 0 1 33 5 0 16 4 32 6 0 18 4 16 4 48 1 17 4 18 5 16 3 16 0 16 4 52 15 0 3 49 1 32 2 0 16 0 50)} {:upvalue-count 8 :arity 0 :constants ("=" "ident" "keyword" "of" "list" "make-symbol" "." "result" it "first" first "last" last "closest" closest "next" next "previous" previous ref) :bytecode (18 0 48 0 17 0 18 1 48 0 17 1 16 0 1 1 0 52 0 0 2 6 34 10 0 5 16 0 1 2 0 52 0 0 2 33 179 0 18 2 48 0 5 18 3 1 3 0 48 1 33 20 0 1 6 0 52 5 0 1 18 4 48 0 16 1 52 4 0 3 32 141 0 16 1 1 7 0 52 0 0 2 33 10 0 1 8 0 52 4 0 1 32 119 0 16 1 1 9 0 52 0 0 2 33 10 0 18 5 1 10 0 49 1 32 97 0 16 1 1 11 0 52 0 0 2 33 10 0 18 5 1 12 0 49 1 32 75 0 16 1 1 13 0 52 0 0 2 33 10 0 18 6 1 14 0 49 1 32 53 0 16 1 1 15 0 52 0 0 2 33 10 0 18 6 1 16 0 49 1 32 31 0 16 1 1 17 0 52 0 0 2 33 10 0 18 6 1 18 0 49 1 32 9 0 1 19 0 16 1 52 4 0 2 32 4 0 18 7 49 0 50)} {:upvalue-count 4 :arity 1 :constants ({:upvalue-count 5 :arity 1 :constants ("=" "bracket-close" "comma" "append" "list") :bytecode (18 0 48 0 1 1 0 52 0 0 2 6 34 5 0 5 18 1 48 0 33 28 0 18 0 48 0 1 1 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 16 0 32 45 0 18 3 48 0 17 1 18 0 48 0 1 2 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 18 4 16 0 16 1 52 4 0 1 52 3 0 2 49 1 50)} "cons" array "list") :bytecode (51 0 0 0 0 0 1 0 2 0 3 1 0 17 0 5 1 2 0 16 0 52 3 0 0 48 1 52 1 0 2 50)} {:upvalue-count 4 :arity 0 :constants ("=" "keyword" "end" "then" "else" "list" return) :bytecode (18 0 48 0 6 34 60 0 5 18 1 48 0 1 1 0 52 0 0 2 6 33 44 0 5 18 2 48 0 1 2 0 52 0 0 2 6 34 28 0 5 18 2 48 0 1 3 0 52 0 0 2 6 34 12 0 5 18 2 48 0 1 4 0 52 0 0 2 33 11 0 1 6 0 2 52 5 0 2 32 11 0 1 6 0 18 3 48 0 52 5 0 2 50)} {:upvalue-count 1 :arity 0 :constants ("list" throw) :bytecode (1 1 0 18 0 48 0 52 0 0 2 50)} {:upvalue-count 2 :arity 0 :constants ("to" "list" append!) :bytecode (18 0 48 0 17 0 18 1 1 0 0 48 1 5 18 0 48 0 17 1 1 2 0 16 0 16 1 52 1 0 3 50)} {:upvalue-count 3 :arity 0 :constants ("then" "end" "list" tell) :bytecode (18 0 48 0 17 0 18 1 1 0 0 48 1 5 18 2 48 0 17 1 18 1 1 1 0 48 1 5 1 3 0 16 0 16 1 52 2 0 3 50)} {:upvalue-count 6 :arity 0 :constants ("in" "index" "end" "list" for) :bytecode (18 0 48 0 17 0 18 1 48 0 5 18 2 1 0 0 48 1 5 18 3 48 0 17 1 18 4 1 1 0 48 1 33 16 0 18 0 48 0 17 2 18 1 48 0 5 16 2 32 1 0 2 17 2 18 5 48 0 17 3 18 4 1 2 0 48 1 5 16 2 33 21 0 1 4 0 16 0 16 1 16 3 1 1 0 16 2 52 3 0 6 32 13 0 1 4 0 16 0 16 1 16 3 52 3 0 4 50)} {:upvalue-count 3 :arity 0 :constants ("=" "a" "called" "list" make) :bytecode (18 0 48 0 1 1 0 52 0 0 2 33 7 0 18 1 48 0 32 1 0 2 5 18 0 48 0 17 0 18 1 48 0 5 18 2 1 2 0 48 1 33 16 0 18 0 48 0 17 1 18 1 48 0 5 16 1 32 1 0 2 17 1 16 1 33 14 0 1 4 0 16 0 16 1 52 3 0 3 32 9 0 1 4 0 16 0 52 3 0 2 50)} {:upvalue-count 4 :arity 0 :constants ("=" "paren-open" "cons" install "list") :bytecode (18 0 48 0 17 0 18 1 48 0 5 18 2 48 0 1 1 0 52 0 0 2 33 24 0 18 3 48 0 17 1 1 3 0 16 0 16 1 52 2 0 2 52 2 0 2 32 9 0 1 3 0 16 0 52 4 0 2 50)} {:upvalue-count 1 :arity 0 :constants ("list" measure "nil?" me) :bytecode (18 0 48 0 17 0 1 1 0 16 0 52 2 0 1 33 10 0 1 3 0 52 0 0 1 32 2 0 16 0 52 0 0 2 50)} {:upvalue-count 5 :arity 0 :constants ("=" "keyword" "then" "end" "list" me "top" "bottom" "left" "right" scroll!) :bytecode (18 0 48 0 6 34 44 0 5 18 1 48 0 1 1 0 52 0 0 2 6 33 28 0 5 18 2 48 0 1 2 0 52 0 0 2 6 34 12 0 5 18 2 48 0 1 3 0 52 0 0 2 33 10 0 1 5 0 52 4 0 1 32 4 0 18 3 48 0 17 0 18 4 1 6 0 48 1 33 6 0 1 6 0 32 51 0 18 4 1 7 0 48 1 33 6 0 1 7 0 32 35 0 18 4 1 8 0 48 1 33 6 0 1 8 0 32 19 0 18 4 1 9 0 48 1 33 6 0 1 9 0 32 3 0 1 6 0 17 1 1 10 0 16 0 16 1 52 4 0 3 50)} {:upvalue-count 4 :arity 0 :constants ("=" "keyword" "then" "end" "list" me select!) :bytecode (18 0 48 0 6 34 44 0 5 18 1 48 0 1 1 0 52 0 0 2 6 33 28 0 5 18 2 48 0 1 2 0 52 0 0 2 6 34 12 0 5 18 2 48 0 1 3 0 52 0 0 2 33 10 0 1 5 0 52 4 0 1 32 4 0 18 3 48 0 17 0 1 6 0 16 0 52 4 0 2 50)} {:upvalue-count 4 :arity 0 :constants ("=" "keyword" "then" "end" "list" me reset!) :bytecode (18 0 48 0 6 34 44 0 5 18 1 48 0 1 1 0 52 0 0 2 6 33 28 0 5 18 2 48 0 1 2 0 52 0 0 2 6 34 12 0 5 18 2 48 0 1 3 0 52 0 0 2 33 10 0 1 5 0 52 4 0 1 32 4 0 18 3 48 0 17 0 1 6 0 16 0 52 4 0 2 50)} {:upvalue-count 2 :arity 0 :constants ("to" "list" default!) :bytecode (18 0 48 0 17 0 18 1 1 0 0 48 1 5 18 0 48 0 17 1 1 2 0 16 0 16 1 52 1 0 3 50)} {:upvalue-count 1 :arity 0 :constants ("the" "event" "default" "list" halt!) :bytecode (18 0 1 0 0 48 1 6 33 20 0 5 18 0 1 1 0 48 1 6 34 8 0 5 18 0 1 2 0 48 1 17 0 1 4 0 16 0 33 6 0 1 1 0 32 3 0 1 2 0 52 3 0 2 50)} {:upvalue-count 2 :arity 0 :constants ("=" "paren-open" "list") :bytecode (18 0 48 0 1 1 0 52 0 0 2 33 7 0 18 1 49 0 32 4 0 52 2 0 0 50)} {:upvalue-count 4 :arity 0 :constants ("list" me "=" "keyword" "then" "end" focus!) :bytecode (18 0 48 0 33 10 0 1 1 0 52 0 0 1 32 60 0 18 1 48 0 1 3 0 52 2 0 2 6 33 28 0 5 18 2 48 0 1 4 0 52 2 0 2 6 34 12 0 5 18 2 48 0 1 5 0 52 2 0 2 33 10 0 1 1 0 52 0 0 1 32 4 0 18 3 48 0 17 0 1 6 0 16 0 52 0 0 2 50)} {:upvalue-count 4 :arity 1 :constants ({:upvalue-count 5 :arity 1 :constants ("=" "keyword" "end" "nil?" "append" "list") :bytecode (18 0 48 0 6 34 28 0 5 18 1 48 0 1 1 0 52 0 0 2 6 33 12 0 5 18 2 48 0 1 2 0 52 0 0 2 33 5 0 16 0 32 36 0 18 3 48 0 17 1 16 1 52 3 0 1 33 5 0 16 0 32 16 0 18 4 16 0 16 1 52 5 0 1 52 4 0 2 49 1 50)} "list") :bytecode (51 0 0 0 0 0 1 0 2 0 3 1 0 17 0 5 16 0 52 1 0 0 49 1 50)} {:upvalue-count 5 :arity 0 :constants ("end" "list" def) :bytecode (18 0 48 0 17 0 18 1 48 0 5 18 2 48 0 17 1 18 3 48 0 17 2 18 4 1 0 0 48 1 5 1 2 0 16 0 16 1 16 2 52 1 0 4 50)} {:upvalue-count 5 :arity 0 :constants ("end" "list" behavior) :bytecode (18 0 48 0 17 0 18 1 48 0 5 18 2 48 0 17 1 18 3 48 0 17 2 18 4 1 0 0 48 1 5 1 2 0 16 0 16 1 16 2 52 1 0 4 50)} {:upvalue-count 4 :arity 1 :constants ({:upvalue-count 5 :arity 1 :constants ("=" "local" "append" "list") :bytecode (18 0 48 0 1 1 0 52 0 0 2 33 38 0 18 1 48 0 17 1 18 2 48 0 5 18 3 48 0 17 2 18 4 16 0 16 1 16 2 52 3 0 2 52 2 0 2 49 1 32 2 0 16 0 50)} "list") :bytecode (51 0 0 0 0 0 1 0 2 0 3 1 0 17 0 5 16 0 52 1 0 0 49 1 50)} {:upvalue-count 6 :arity 0 :constants ("=" "component" "paren-open" "paren-close" "into" "before" "after" "list" render) :bytecode (18 0 48 0 1 1 0 52 0 0 2 33 16 0 18 1 48 0 17 0 18 2 48 0 5 16 0 32 66 0 18 0 48 0 1 2 0 52 0 0 2 33 39 0 18 2 48 0 5 18 3 48 0 17 0 18 0 48 0 1 3 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 16 0 32 13 0 18 1 48 0 17 0 18 2 48 0 5 16 0 17 0 18 4 48 0 17 1 18 5 1 4 0 48 1 33 6 0 1 4 0 32 33 0 18 5 1 5 0 48 1 33 6 0 1 5 0 32 17 0 18 5 1 6 0 48 1 33 6 0 1 6 0 32 1 0 2 17 2 16 2 33 7 0 18 3 48 0 32 1 0 2 17 3 16 2 33 18 0 1 8 0 16 0 16 1 16 2 16 3 52 7 0 5 32 11 0 1 8 0 16 0 16 1 52 7 0 3 50)} {:upvalue-count 5 :arity 0 :constants ("get" "pos" {:upvalue-count 6 :arity 1 :constants ("=" "paren-open" "+" 1 "paren-close" 0 "get" "pos" "-") :bytecode (18 0 48 0 33 5 0 18 1 32 123 0 18 2 48 0 1 1 0 52 0 0 2 33 21 0 18 3 48 0 5 18 4 16 0 1 3 0 52 2 0 2 49 1 32 88 0 18 2 48 0 1 4 0 52 0 0 2 33 63 0 16 0 1 5 0 52 0 0 2 33 30 0 18 5 48 0 1 7 0 52 6 0 2 1 3 0 52 2 0 2 17 1 18 3 48 0 5 16 1 32 18 0 18 3 48 0 5 18 4 16 0 1 3 0 52 8 0 2 49 1 32 11 0 18 3 48 0 5 18 4 16 0 49 1 50)} 0 "substring") :bytecode (18 0 48 0 1 1 0 52 0 0 2 17 0 18 1 48 0 5 51 2 0 0 2 1 0 0 3 0 1 1 1 0 0 17 1 5 16 1 1 3 0 48 1 17 2 18 4 16 0 16 2 52 4 0 3 50)} {:upvalue-count 39 :arity 0 :constants ("=" "keyword" "catch" "finally" "end" "else" "otherwise" "add" "remove" "toggle" "set" "put" "if" "wait" "send" "trigger" "log" "increment" "decrement" "hide" "show" "transition" "repeat" "fetch" "call" "take" "settle" "list" settle "go" "return" "throw" "append" "tell" "for" "make" "install" "measure" "render" "scroll" "select" "reset" "default" "halt" "focus") :bytecode (18 0 48 0 17 0 18 1 48 0 17 1 16 0 1 1 0 52 0 0 2 6 33 66 0 5 16 1 1 2 0 52 0 0 2 6 34 52 0 5 16 1 1 3 0 52 0 0 2 6 34 38 0 5 16 1 1 4 0 52 0 0 2 6 34 24 0 5 16 1 1 5 0 52 0 0 2 6 34 10 0 5 16 1 1 6 0 52 0 0 2 33 4 0 2 32 95 5 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 7 0 52 0 0 2 33 12 0 18 2 48 0 5 18 3 49 0 32 57 5 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 8 0 52 0 0 2 33 12 0 18 2 48 0 5 18 4 49 0 32 19 5 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 9 0 52 0 0 2 33 12 0 18 2 48 0 5 18 5 49 0 32 237 4 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 10 0 52 0 0 2 33 12 0 18 2 48 0 5 18 6 49 0 32 199 4 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 11 0 52 0 0 2 33 12 0 18 2 48 0 5 18 7 49 0 32 161 4 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 12 0 52 0 0 2 33 12 0 18 2 48 0 5 18 8 49 0 32 123 4 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 13 0 52 0 0 2 33 12 0 18 2 48 0 5 18 9 49 0 32 85 4 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 14 0 52 0 0 2 33 12 0 18 2 48 0 5 18 10 49 0 32 47 4 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 15 0 52 0 0 2 33 12 0 18 2 48 0 5 18 11 49 0 32 9 4 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 16 0 52 0 0 2 33 12 0 18 2 48 0 5 18 12 49 0 32 227 3 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 17 0 52 0 0 2 33 12 0 18 2 48 0 5 18 13 49 0 32 189 3 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 18 0 52 0 0 2 33 12 0 18 2 48 0 5 18 14 49 0 32 151 3 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 19 0 52 0 0 2 33 12 0 18 2 48 0 5 18 15 49 0 32 113 3 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 20 0 52 0 0 2 33 12 0 18 2 48 0 5 18 16 49 0 32 75 3 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 21 0 52 0 0 2 33 12 0 18 2 48 0 5 18 17 49 0 32 37 3 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 22 0 52 0 0 2 33 12 0 18 2 48 0 5 18 18 49 0 32 255 2 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 23 0 52 0 0 2 33 12 0 18 2 48 0 5 18 19 49 0 32 217 2 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 24 0 52 0 0 2 33 12 0 18 2 48 0 5 18 20 49 0 32 179 2 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 25 0 52 0 0 2 33 12 0 18 2 48 0 5 18 21 49 0 32 141 2 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 26 0 52 0 0 2 33 15 0 18 2 48 0 5 1 28 0 52 27 0 1 32 100 2 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 29 0 52 0 0 2 33 12 0 18 2 48 0 5 18 22 49 0 32 62 2 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 30 0 52 0 0 2 33 12 0 18 2 48 0 5 18 23 49 0 32 24 2 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 31 0 52 0 0 2 33 12 0 18 2 48 0 5 18 24 49 0 32 242 1 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 32 0 52 0 0 2 33 12 0 18 2 48 0 5 18 25 49 0 32 204 1 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 33 0 52 0 0 2 33 12 0 18 2 48 0 5 18 26 49 0 32 166 1 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 34 0 52 0 0 2 33 12 0 18 2 48 0 5 18 27 49 0 32 128 1 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 35 0 52 0 0 2 33 12 0 18 2 48 0 5 18 28 49 0 32 90 1 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 36 0 52 0 0 2 33 12 0 18 2 48 0 5 18 29 49 0 32 52 1 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 37 0 52 0 0 2 33 12 0 18 2 48 0 5 18 30 49 0 32 14 1 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 38 0 52 0 0 2 33 12 0 18 2 48 0 5 18 31 49 0 32 232 0 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 39 0 52 0 0 2 33 12 0 18 2 48 0 5 18 32 49 0 32 194 0 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 40 0 52 0 0 2 33 12 0 18 2 48 0 5 18 33 49 0 32 156 0 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 41 0 52 0 0 2 33 12 0 18 2 48 0 5 18 34 49 0 32 118 0 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 42 0 52 0 0 2 33 12 0 18 2 48 0 5 18 35 49 0 32 80 0 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 43 0 52 0 0 2 33 12 0 18 2 48 0 5 18 36 49 0 32 42 0 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 44 0 52 0 0 2 33 12 0 18 2 48 0 5 18 37 49 0 32 4 0 18 38 49 0 50)} {:upvalue-count 5 :arity 2 :constants ({:upvalue-count 0 :arity 1 :constants ("=" "add" "remove" "toggle" "set" "put" "if" "wait" "send" "trigger" "log" "increment" "decrement" "hide" "show" "transition" "repeat" "fetch" "call" "take" "settle" "go" "return" "throw" "append" "tell" "for" "make" "install" "measure" "render" "halt" "default" "scroll" "select" "reset" "focus") :bytecode (16 0 1 1 0 52 0 0 2 6 34 230 1 5 16 0 1 2 0 52 0 0 2 6 34 216 1 5 16 0 1 3 0 52 0 0 2 6 34 202 1 5 16 0 1 4 0 52 0 0 2 6 34 188 1 5 16 0 1 5 0 52 0 0 2 6 34 174 1 5 16 0 1 6 0 52 0 0 2 6 34 160 1 5 16 0 1 7 0 52 0 0 2 6 34 146 1 5 16 0 1 8 0 52 0 0 2 6 34 132 1 5 16 0 1 9 0 52 0 0 2 6 34 118 1 5 16 0 1 10 0 52 0 0 2 6 34 104 1 5 16 0 1 11 0 52 0 0 2 6 34 90 1 5 16 0 1 12 0 52 0 0 2 6 34 76 1 5 16 0 1 13 0 52 0 0 2 6 34 62 1 5 16 0 1 14 0 52 0 0 2 6 34 48 1 5 16 0 1 15 0 52 0 0 2 6 34 34 1 5 16 0 1 16 0 52 0 0 2 6 34 20 1 5 16 0 1 17 0 52 0 0 2 6 34 6 1 5 16 0 1 18 0 52 0 0 2 6 34 248 0 5 16 0 1 19 0 52 0 0 2 6 34 234 0 5 16 0 1 20 0 52 0 0 2 6 34 220 0 5 16 0 1 21 0 52 0 0 2 6 34 206 0 5 16 0 1 22 0 52 0 0 2 6 34 192 0 5 16 0 1 23 0 52 0 0 2 6 34 178 0 5 16 0 1 24 0 52 0 0 2 6 34 164 0 5 16 0 1 25 0 52 0 0 2 6 34 150 0 5 16 0 1 26 0 52 0 0 2 6 34 136 0 5 16 0 1 27 0 52 0 0 2 6 34 122 0 5 16 0 1 28 0 52 0 0 2 6 34 108 0 5 16 0 1 29 0 52 0 0 2 6 34 94 0 5 16 0 1 30 0 52 0 0 2 6 34 80 0 5 16 0 1 31 0 52 0 0 2 6 34 66 0 5 16 0 1 32 0 52 0 0 2 6 34 52 0 5 16 0 1 33 0 52 0 0 2 6 34 38 0 5 16 0 1 34 0 52 0 0 2 6 34 24 0 5 16 0 1 35 0 52 0 0 2 6 34 10 0 5 16 0 1 36 0 52 0 0 2 50)} {:upvalue-count 7 :arity 1 :constants ("then" "nil?" "append" "list" "not" "=" "keyword") :bytecode (18 0 1 0 0 48 1 5 18 1 48 0 17 1 16 1 52 1 0 1 33 5 0 16 0 32 84 0 16 0 16 1 52 3 0 1 52 2 0 2 17 2 18 0 1 0 0 48 1 33 9 0 18 2 16 2 49 1 32 51 0 18 3 48 0 52 4 0 1 6 33 25 0 5 18 4 48 0 1 6 0 52 5 0 2 6 33 9 0 5 18 5 18 6 48 0 48 1 33 9 0 18 2 16 2 49 1 32 2 0 16 2 50)} "list" "=" "len" 0 1 "first" "cons" do) :bytecode (51 0 0 17 0 5 51 1 0 0 0 0 1 1 1 0 2 0 3 1 0 0 4 17 1 5 16 1 52 2 0 0 48 1 17 2 16 2 52 4 0 1 1 5 0 52 3 0 2 33 4 0 2 32 34 0 16 2 52 4 0 1 1 6 0 52 3 0 2 33 9 0 16 2 52 7 0 1 32 9 0 1 9 0 16 2 52 8 0 2 50)} {:upvalue-count 6 :arity 0 :constants ("every" "=" "bracket-open" "bracket-close" "from" "catch" "list" "finally" "end" on "append" "filter") :bytecode (18 0 1 0 0 48 1 17 0 18 1 48 0 17 1 18 2 48 0 5 16 1 17 1 18 3 48 0 1 2 0 52 1 0 2 33 39 0 18 2 48 0 5 18 4 48 0 17 2 18 3 48 0 1 3 0 52 1 0 2 33 7 0 18 2 48 0 32 1 0 2 5 16 2 32 1 0 2 17 2 18 0 1 4 0 48 1 33 7 0 18 4 48 0 32 1 0 2 17 3 18 5 48 0 17 4 18 0 1 5 0 48 1 33 32 0 18 1 48 0 17 5 18 2 48 0 5 16 5 17 5 18 5 48 0 17 6 16 5 16 6 52 6 0 2 32 1 0 2 17 5 18 0 1 7 0 48 1 33 7 0 18 5 48 0 32 1 0 2 17 6 18 0 1 8 0 48 1 5 1 9 0 16 1 52 6 0 2 17 7 16 0 33 17 0 16 7 1 0 0 3 52 6 0 2 52 10 0 2 32 2 0 16 7 17 8 16 2 33 18 0 16 8 1 11 0 16 2 52 6 0 2 52 10 0 2 32 2 0 16 8 17 9 16 3 33 18 0 16 9 1 4 0 16 3 52 6 0 2 52 10 0 2 32 2 0 16 9 17 10 16 5 33 18 0 16 10 1 5 0 16 5 52 6 0 2 52 10 0 2 32 2 0 16 10 17 11 16 6 33 18 0 16 11 1 7 0 16 6 52 6 0 2 52 10 0 2 32 2 0 16 11 17 12 16 12 16 4 52 6 0 1 52 10 0 2 17 13 16 13 50)} {:upvalue-count 2 :arity 0 :constants ("end" "list" init) :bytecode (18 0 48 0 17 0 18 1 1 0 0 48 1 5 1 2 0 16 0 52 1 0 2 50)} {:upvalue-count 7 :arity 0 :constants ("=" "on" "init" "def" "behavior") :bytecode (18 0 48 0 17 0 16 0 1 1 0 52 0 0 2 33 12 0 18 1 48 0 5 18 2 49 0 32 76 0 16 0 1 2 0 52 0 0 2 33 12 0 18 1 48 0 5 18 3 49 0 32 52 0 16 0 1 3 0 52 0 0 2 33 12 0 18 1 48 0 5 18 4 49 0 32 28 0 16 0 1 4 0 52 0 0 2 33 12 0 18 1 48 0 5 18 5 49 0 32 4 0 18 6 49 0 50)} {:upvalue-count 3 :arity 1 :constants ("nil?" "append" "list") :bytecode (18 0 48 0 33 5 0 16 0 32 36 0 18 1 48 0 17 1 16 1 52 0 0 1 33 5 0 16 0 32 16 0 18 2 16 0 16 1 52 2 0 1 52 1 0 2 49 1 50)} "list" "=" 1 "first" "cons" do) :bytecode (1 0 0 17 2 16 0 52 1 0 1 17 3 51 2 0 1 2 1 3 1 0 17 4 5 51 3 0 1 4 17 5 5 51 4 0 1 4 17 6 5 51 5 0 1 0 1 2 17 7 5 51 6 0 1 2 1 3 1 5 17 8 5 51 7 0 1 5 1 6 1 7 17 9 5 51 8 0 1 9 1 2 17 10 5 51 9 0 17 11 5 51 10 0 1 5 1 6 1 7 1 13 17 12 5 51 11 0 1 5 1 8 1 6 1 7 1 13 1 41 17 13 5 51 12 0 1 5 1 6 1 7 17 14 5 51 13 0 1 5 1 6 1 7 1 9 1 21 17 15 5 51 14 0 1 5 1 6 1 7 1 11 1 21 1 68 1 46 1 12 1 14 1 15 1 8 1 2 1 0 1 47 1 16 1 9 17 16 5 51 15 0 1 5 1 6 1 7 1 12 1 13 1 41 1 21 1 17 17 17 5 51 16 0 1 5 1 6 1 7 1 21 1 9 1 16 1 8 17 18 5 51 17 0 1 9 1 18 1 45 1 17 1 16 1 19 17 19 5 51 18 0 1 9 1 19 1 18 1 45 1 17 1 16 1 20 17 20 5 51 19 0 1 16 1 5 1 6 1 7 1 17 1 45 1 18 1 19 1 20 17 21 5 51 20 0 1 9 1 21 17 22 5 51 21 0 1 5 1 7 1 22 17 23 5 51 22 0 1 5 1 7 1 9 1 21 1 6 17 24 5 51 23 0 1 9 1 5 1 6 1 7 1 10 1 22 1 16 17 25 5 51 24 0 1 21 1 10 17 26 5 51 25 0 1 21 1 9 1 10 1 2 17 27 5 51 26 0 1 21 1 70 1 9 17 28 5 51 27 0 1 9 1 6 1 7 1 21 1 5 1 11 17 29 5 51 28 0 1 7 1 5 1 8 1 21 17 30 5 51 29 0 1 7 1 5 1 30 1 22 17 31 5 51 30 0 1 7 1 22 17 32 5 51 31 0 1 21 17 33 5 51 32 0 1 21 1 9 1 22 17 34 5 51 33 0 1 21 1 9 1 22 17 35 5 51 34 0 1 8 1 5 1 6 1 21 1 9 1 7 17 36 5 51 35 0 1 8 1 5 1 6 1 21 1 9 1 7 17 37 5 51 36 0 1 5 1 7 1 6 1 9 1 21 1 10 17 38 5 51 37 0 1 5 1 6 1 7 1 52 1 21 1 70 1 9 17 39 5 51 38 0 1 16 1 45 1 17 1 9 1 6 1 7 17 40 5 51 39 0 1 7 1 5 1 8 1 21 17 41 5 51 40 0 1 7 1 5 1 41 17 42 5 51 41 0 1 5 1 6 1 7 1 9 1 21 17 43 5 51 42 0 1 9 1 21 17 44 5 51 43 0 1 5 1 6 1 7 1 16 1 17 1 45 17 45 5 51 44 0 1 5 1 6 1 7 1 9 1 21 1 15 1 14 1 16 17 46 5 51 45 0 1 5 1 8 1 7 1 21 17 47 5 51 46 0 1 8 1 5 1 6 1 21 17 48 5 51 47 0 1 21 17 49 5 51 48 0 1 21 1 10 17 50 5 51 49 0 1 21 1 9 1 70 17 51 5 51 50 0 1 6 1 7 1 10 1 21 1 9 1 70 17 52 5 51 51 0 1 6 1 7 1 9 17 53 5 51 52 0 1 6 1 7 1 5 1 41 17 54 5 51 53 0 1 21 17 55 5 51 54 0 1 8 1 5 1 6 1 21 1 9 17 56 5 51 55 0 1 8 1 5 1 6 1 21 17 57 5 51 56 0 1 8 1 5 1 6 1 21 17 58 5 51 57 0 1 21 1 10 17 59 5 51 58 0 1 9 17 60 5 51 59 0 1 5 1 41 17 61 5 51 60 0 1 8 1 5 1 6 1 21 17 62 5 51 61 0 1 8 1 5 1 6 1 73 17 63 5 51 62 0 1 6 1 7 1 61 1 70 1 9 17 64 5 51 63 0 1 6 1 7 1 61 1 63 1 9 17 65 5 51 64 0 1 5 1 6 1 7 1 21 17 66 5 51 65 0 1 5 1 6 1 7 1 21 1 66 1 9 17 67 5 51 66 0 1 4 1 7 1 8 1 5 1 1 17 68 5 51 67 0 1 5 1 6 1 7 1 23 1 24 1 25 1 26 1 27 1 28 1 29 1 31 1 32 1 33 1 34 1 35 1 36 1 37 1 38 1 39 1 40 1 42 1 43 1 44 1 48 1 49 1 50 1 51 1 52 1 53 1 54 1 55 1 67 1 56 1 57 1 58 1 59 1 60 1 62 1 21 17 69 5 51 68 0 1 9 1 69 1 8 1 5 1 6 17 70 5 51 69 0 1 9 1 6 1 7 1 5 1 21 1 70 17 71 5 51 70 0 1 70 1 9 17 72 5 51 71 0 1 6 1 7 1 71 1 72 1 64 1 65 1 70 17 73 5 51 72 0 1 8 1 73 1 74 17 74 5 16 74 52 73 0 0 48 1 17 75 16 75 52 1 0 1 1 75 0 52 74 0 2 33 9 0 16 75 52 76 0 1 32 9 0 1 78 0 16 75 52 77 0 2 50)} "hs-compile" {:upvalue-count 0 :arity 1 :constants ("hs-parse" "hs-tokenize") :bytecode (20 0 0 20 1 0 16 0 48 1 16 0 49 2 50)}) :bytecode (51 1 0 128 0 0 5 51 3 0 128 2 0 50)))
+ :constants ("hs-parse" {:upvalue-count 0 :arity 2 :constants (0 "len" {:upvalue-count 3 :arity 0 :constants ("<" "nth") :bytecode (18 0 18 1 52 0 0 2 33 11 0 18 2 18 0 52 1 0 2 32 1 0 2 50)} {:upvalue-count 1 :arity 0 :constants ("get" "type" "eof") :bytecode (18 0 48 0 17 0 16 0 33 12 0 16 0 1 1 0 52 0 0 2 32 3 0 1 2 0 50)} {:upvalue-count 1 :arity 0 :constants ("get" "value") :bytecode (18 0 48 0 17 0 16 0 33 12 0 16 0 1 1 0 52 0 0 2 32 1 0 2 50)} {:upvalue-count 2 :arity 0 :constants ("nth" "+" 1) :bytecode (18 0 18 1 52 0 0 2 17 0 18 1 1 2 0 52 1 0 2 19 1 5 16 0 50)} {:upvalue-count 3 :arity 0 :constants (">=" "=" "eof") :bytecode (18 0 18 1 52 0 0 2 6 34 12 0 5 18 2 48 0 1 2 0 52 1 0 2 50)} {:upvalue-count 3 :arity 1 :constants ("=" "keyword") :bytecode (18 0 48 0 1 1 0 52 0 0 2 6 33 11 0 5 18 1 48 0 16 0 52 0 0 2 33 9 0 18 2 48 0 5 3 32 1 0 2 50)} {:upvalue-count 2 :arity 1 :constants ("error" "str" "Expected '" "' at position ") :bytecode (18 0 16 0 48 1 33 4 0 3 32 18 0 1 2 0 16 0 1 3 0 18 1 52 1 0 4 52 0 0 1 50)} {:upvalue-count 0 :arity 1 :constants ("len" ">=" 3 "=" "substring" "-" 2 "ms" "parse-number" 0 "nth" 1 "s" "*" 1000) :bytecode (16 0 52 0 0 1 17 1 16 1 1 2 0 52 1 0 2 6 33 25 0 5 16 0 16 1 1 6 0 52 5 0 2 16 1 52 4 0 3 1 7 0 52 3 0 2 33 25 0 16 0 1 9 0 16 1 1 6 0 52 5 0 2 52 4 0 3 52 8 0 1 32 77 0 16 1 1 6 0 52 1 0 2 6 33 23 0 5 16 0 16 1 1 11 0 52 5 0 2 52 10 0 2 1 12 0 52 3 0 2 33 32 0 1 14 0 16 0 1 9 0 16 1 1 11 0 52 5 0 2 52 4 0 3 52 8 0 1 52 13 0 2 32 6 0 16 0 52 8 0 1 50)} {:upvalue-count 4 :arity 1 :constants ("=" "ident" "keyword" "list" . "attr" attr "class" "get" "value") :bytecode (18 0 48 0 17 1 18 1 48 0 17 2 16 1 1 1 0 52 0 0 2 6 34 10 0 5 16 1 1 2 0 52 0 0 2 33 23 0 18 2 48 0 5 18 3 1 4 0 16 0 16 2 52 3 0 3 49 1 32 76 0 16 1 1 5 0 52 0 0 2 33 19 0 18 2 48 0 5 1 6 0 16 2 16 0 52 3 0 3 32 45 0 16 1 1 7 0 52 0 0 2 33 31 0 18 2 48 0 1 9 0 52 8 0 2 17 3 18 3 1 4 0 16 0 16 3 52 3 0 3 49 1 32 2 0 16 0 50)} {:upvalue-count 6 :arity 1 :constants ("=" "class" "not" "list" "make-symbol" "." "paren-open" method-call) :bytecode (18 0 48 0 1 1 0 52 0 0 2 6 33 9 0 5 18 1 48 0 52 2 0 1 33 33 0 18 2 48 0 17 1 18 3 48 0 5 18 4 1 5 0 52 4 0 1 16 0 16 1 52 3 0 3 49 1 32 40 0 18 0 48 0 1 6 0 52 0 0 2 33 24 0 18 5 48 0 17 1 18 4 1 7 0 16 0 16 1 52 3 0 3 49 1 32 2 0 16 0 50)} {:upvalue-count 3 :arity 1 :constants ("=" "selector" "list" me "class" "str" "." "id" "#" "*") :bytecode (18 0 48 0 17 1 18 1 48 0 17 2 16 1 1 1 0 52 0 0 2 33 23 0 18 2 48 0 5 16 0 16 2 1 3 0 52 2 0 1 52 2 0 3 32 100 0 16 1 1 4 0 52 0 0 2 33 30 0 18 2 48 0 5 16 0 1 6 0 16 2 52 5 0 2 1 3 0 52 2 0 1 52 2 0 3 32 58 0 16 1 1 7 0 52 0 0 2 33 30 0 18 2 48 0 5 16 0 1 8 0 16 2 52 5 0 2 1 3 0 52 2 0 1 52 2 0 3 32 16 0 16 0 1 9 0 1 3 0 52 2 0 1 52 2 0 3 50)} {:upvalue-count 5 :arity 1 :constants ("=" "selector" "class" "str" "." "id" "#" "*" "in" "list") :bytecode (18 0 48 0 17 1 18 1 48 0 17 2 16 1 1 1 0 52 0 0 2 33 10 0 18 2 48 0 5 16 2 32 61 0 16 1 1 2 0 52 0 0 2 33 17 0 18 2 48 0 5 1 4 0 16 2 52 3 0 2 32 32 0 16 1 1 5 0 52 0 0 2 33 17 0 18 2 48 0 5 1 6 0 16 2 52 3 0 2 32 3 0 1 7 0 17 3 18 3 1 8 0 48 1 33 15 0 16 0 16 3 18 4 48 0 52 9 0 3 32 8 0 16 0 16 3 52 9 0 2 50)} {:upvalue-count 16 :arity 0 :constants ("=" "number" "string" "template" "list" template "keyword" "true" "false" "null" "nil" null-literal "undefined" "beep" "op" "!" beep! "not" not "no" no "eval" "paren-open" sx-eval "the" "me" me "I" "it" "result" it "event" event "target" "make-symbol" "." "detail" "my" "its" "closest" closest "next" next "previous" previous "first" first "last" last "id" query "str" "#" "selector" "attr" attr "style" style "local" local "class" "ident" ref "paren-close" "brace-open" {:upvalue-count 6 :arity 1 :constants ("=" "brace-close" "string" "local" "true" "false" "null" "list" ref "colon" "comma" "cons") :bytecode (18 0 48 0 6 34 12 0 5 18 1 48 0 1 1 0 52 0 0 2 33 28 0 18 1 48 0 1 1 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 16 0 32 203 0 18 1 48 0 1 2 0 52 0 0 2 33 16 0 18 3 48 0 17 1 18 2 48 0 5 16 1 32 13 0 18 3 48 0 17 1 18 2 48 0 5 16 1 17 1 18 1 48 0 1 3 0 52 0 0 2 33 71 0 18 3 48 0 17 2 18 2 48 0 5 16 2 1 4 0 52 0 0 2 33 4 0 3 32 41 0 16 2 1 5 0 52 0 0 2 33 4 0 4 32 25 0 16 2 1 6 0 52 0 0 2 33 4 0 2 32 9 0 1 8 0 16 2 52 7 0 2 32 30 0 18 1 48 0 1 9 0 52 0 0 2 33 12 0 18 2 48 0 5 18 4 48 0 32 4 0 18 4 48 0 17 2 18 1 48 0 1 10 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 18 5 16 1 16 2 52 7 0 2 16 0 52 11 0 2 49 1 50)} object-literal "\\" {:upvalue-count 6 :arity 1 :constants ("=" "op" "-" "<" "+" 1 "len" "get" "nth" "value" ">" "ident" "comma" "append") :bytecode (18 0 48 0 1 1 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 2 0 52 0 0 2 33 76 0 18 2 1 5 0 52 4 0 2 18 3 52 6 0 1 52 3 0 2 6 33 30 0 5 18 3 18 2 1 5 0 52 4 0 2 52 8 0 2 1 9 0 52 7 0 2 1 10 0 52 0 0 2 33 15 0 18 4 48 0 5 18 4 48 0 5 16 0 32 2 0 16 0 32 65 0 18 0 48 0 1 11 0 52 0 0 2 33 49 0 18 1 48 0 17 1 18 4 48 0 5 18 0 48 0 1 12 0 52 0 0 2 33 7 0 18 4 48 0 32 1 0 2 5 18 5 16 0 16 1 52 13 0 2 49 1 32 2 0 16 0 50)} block-literal "bracket-open" "-" - 0 "component" component "some" ">" "len" "+" 1 "get" "nth" "value" "in" "with" some "every" every) :bytecode (18 0 48 0 17 0 18 1 48 0 17 1 16 0 1 1 0 52 0 0 2 33 14 0 18 2 48 0 5 18 3 16 1 49 1 32 66 7 16 0 1 2 0 52 0 0 2 33 10 0 18 2 48 0 5 16 1 32 44 7 16 0 1 3 0 52 0 0 2 33 17 0 18 2 48 0 5 1 5 0 16 1 52 4 0 2 32 15 7 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 7 0 52 0 0 2 33 9 0 18 2 48 0 5 3 32 236 6 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 8 0 52 0 0 2 33 9 0 18 2 48 0 5 4 32 201 6 16 0 1 6 0 52 0 0 2 6 33 24 0 5 16 1 1 9 0 52 0 0 2 6 34 10 0 5 16 1 1 10 0 52 0 0 2 33 15 0 18 2 48 0 5 1 11 0 52 4 0 1 32 146 6 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 12 0 52 0 0 2 33 15 0 18 2 48 0 5 1 11 0 52 4 0 1 32 105 6 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 13 0 52 0 0 2 33 58 0 18 2 48 0 5 18 0 48 0 1 14 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 15 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 1 16 0 18 4 48 0 52 4 0 2 32 21 6 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 17 0 52 0 0 2 33 19 0 18 2 48 0 5 1 18 0 18 4 48 0 52 4 0 2 32 232 5 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 19 0 52 0 0 2 33 19 0 18 2 48 0 5 1 20 0 18 4 48 0 52 4 0 2 32 187 5 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 21 0 52 0 0 2 33 47 0 18 2 48 0 5 18 0 48 0 1 22 0 52 0 0 2 33 14 0 1 23 0 18 5 48 0 52 4 0 2 32 11 0 1 23 0 18 4 48 0 52 4 0 2 32 114 5 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 24 0 52 0 0 2 33 12 0 18 2 48 0 5 18 6 49 0 32 76 5 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 25 0 52 0 0 2 33 15 0 18 2 48 0 5 1 26 0 52 4 0 1 32 35 5 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 27 0 52 0 0 2 33 15 0 18 2 48 0 5 1 26 0 52 4 0 1 32 250 4 16 0 1 6 0 52 0 0 2 6 33 24 0 5 16 1 1 28 0 52 0 0 2 6 34 10 0 5 16 1 1 29 0 52 0 0 2 33 15 0 18 2 48 0 5 1 30 0 52 4 0 1 32 195 4 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 31 0 52 0 0 2 33 15 0 18 2 48 0 5 1 32 0 52 4 0 1 32 154 4 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 33 0 52 0 0 2 33 29 0 18 2 48 0 5 1 35 0 52 34 0 1 1 32 0 52 4 0 1 1 33 0 52 4 0 3 32 99 4 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 36 0 52 0 0 2 33 29 0 18 2 48 0 5 1 35 0 52 34 0 1 1 32 0 52 4 0 1 1 36 0 52 4 0 3 32 44 4 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 37 0 52 0 0 2 33 19 0 18 2 48 0 5 18 7 1 26 0 52 4 0 1 49 1 32 255 3 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 38 0 52 0 0 2 33 19 0 18 2 48 0 5 18 7 1 30 0 52 4 0 1 49 1 32 210 3 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 39 0 52 0 0 2 33 15 0 18 2 48 0 5 18 8 1 40 0 49 1 32 169 3 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 41 0 52 0 0 2 33 15 0 18 2 48 0 5 18 8 1 42 0 49 1 32 128 3 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 43 0 52 0 0 2 33 15 0 18 2 48 0 5 18 8 1 44 0 49 1 32 87 3 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 45 0 52 0 0 2 33 15 0 18 2 48 0 5 18 9 1 46 0 49 1 32 46 3 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 47 0 52 0 0 2 33 15 0 18 2 48 0 5 18 9 1 48 0 49 1 32 5 3 16 0 1 49 0 52 0 0 2 33 24 0 18 2 48 0 5 1 50 0 1 52 0 16 1 52 51 0 2 52 4 0 2 32 225 2 16 0 1 53 0 52 0 0 2 33 17 0 18 2 48 0 5 1 50 0 16 1 52 4 0 2 32 196 2 16 0 1 54 0 52 0 0 2 33 24 0 18 2 48 0 5 1 55 0 16 1 1 26 0 52 4 0 1 52 4 0 3 32 160 2 16 0 1 56 0 52 0 0 2 33 24 0 18 2 48 0 5 1 57 0 16 1 1 26 0 52 4 0 1 52 4 0 3 32 124 2 16 0 1 58 0 52 0 0 2 33 17 0 18 2 48 0 5 1 59 0 16 1 52 4 0 2 32 95 2 16 0 1 60 0 52 0 0 2 33 24 0 18 2 48 0 5 1 50 0 1 35 0 16 1 52 51 0 2 52 4 0 2 32 59 2 16 0 1 61 0 52 0 0 2 33 17 0 18 2 48 0 5 1 62 0 16 1 52 4 0 2 32 30 2 16 0 1 22 0 52 0 0 2 33 39 0 18 2 48 0 5 18 4 48 0 17 2 18 0 48 0 1 63 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 16 2 32 235 1 16 0 1 64 0 52 0 0 2 33 41 0 18 2 48 0 5 51 65 0 0 10 0 0 0 2 0 1 0 4 1 2 17 2 5 1 66 0 16 2 52 4 0 0 48 1 52 4 0 2 32 182 1 16 0 1 14 0 52 0 0 2 6 33 10 0 5 16 1 1 67 0 52 0 0 2 33 49 0 18 2 48 0 5 51 68 0 0 0 0 1 0 11 0 12 0 2 1 3 17 3 5 16 3 52 4 0 0 48 1 17 4 1 69 0 16 4 18 4 48 0 52 4 0 3 32 107 1 16 0 1 70 0 52 0 0 2 33 12 0 18 2 48 0 5 18 13 49 0 32 83 1 16 0 1 14 0 52 0 0 2 6 33 10 0 5 16 1 1 71 0 52 0 0 2 33 26 0 18 2 48 0 5 18 14 48 0 17 4 1 72 0 1 73 0 16 4 52 4 0 3 32 31 1 16 0 1 74 0 52 0 0 2 33 17 0 18 2 48 0 5 1 75 0 16 1 52 4 0 2 32 2 1 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 76 0 52 0 0 2 33 149 0 18 2 48 0 5 18 0 48 0 1 61 0 52 0 0 2 6 33 54 0 5 18 12 52 78 0 1 18 11 1 80 0 52 79 0 2 52 77 0 2 6 33 30 0 5 18 12 18 11 1 80 0 52 79 0 2 52 82 0 2 1 83 0 52 81 0 2 1 84 0 52 0 0 2 33 51 0 18 1 48 0 17 4 18 2 48 0 5 18 15 1 84 0 48 1 5 18 4 48 0 17 5 18 15 1 85 0 48 1 5 1 86 0 16 4 16 5 18 4 48 0 52 4 0 4 32 18 0 1 18 0 1 20 0 18 4 48 0 52 4 0 2 52 4 0 2 32 83 0 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 87 0 52 0 0 2 33 56 0 18 2 48 0 5 18 1 48 0 17 4 18 2 48 0 5 18 15 1 84 0 48 1 5 18 4 48 0 17 5 18 15 1 85 0 48 1 5 1 88 0 16 4 16 5 18 4 48 0 52 4 0 4 32 1 0 2 50)} {:upvalue-count 8 :arity 1 :constants ("=" "op" "'s" "class" "paren-open" "list" call "bracket-open" ".." "bracket-close" array-slice array-index) :bytecode (18 0 48 0 1 1 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 2 0 52 0 0 2 33 14 0 18 2 48 0 5 18 3 16 0 49 1 32 74 1 18 0 48 0 1 3 0 52 0 0 2 33 9 0 18 4 16 0 49 1 32 51 1 18 0 48 0 1 4 0 52 0 0 2 33 20 0 18 5 48 0 17 1 1 6 0 16 0 16 1 52 5 0 3 32 17 1 18 0 48 0 1 7 0 52 0 0 2 33 1 1 18 2 48 0 5 18 0 48 0 1 1 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 8 0 52 0 0 2 33 53 0 18 2 48 0 5 18 6 48 0 17 1 18 0 48 0 1 9 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 18 7 1 10 0 16 0 2 16 1 52 5 0 4 49 1 32 166 0 18 6 48 0 17 1 18 0 48 0 1 1 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 8 0 52 0 0 2 33 92 0 18 2 48 0 5 18 0 48 0 1 9 0 52 0 0 2 33 24 0 18 2 48 0 5 18 7 1 10 0 16 0 16 1 2 52 5 0 4 49 1 32 46 0 18 6 48 0 17 2 18 0 48 0 1 9 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 18 7 1 10 0 16 0 16 1 16 2 52 5 0 4 49 1 32 38 0 18 0 48 0 1 9 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 18 7 1 11 0 16 0 16 1 52 5 0 3 49 1 32 2 0 16 0 50)} {:upvalue-count 7 :arity 1 :constants ("=" "op" "==" "!=" "<" ">" "<=" ">=" "===" "!==" "list" = strict-eq not "keyword" "is" "not" "empty" empty? "in" not-in? "between" "and" and >= <= "really" "equal" "to" "a" "an" "!" type-check-strict type-check "less" "than" "or" < "greater" > in? "ident" "hs-keyword?" prop-is "am" "exists" exists? "starts" "with" starts-with? "ends" ends-with? "matches" matches? "contains" contains? "as" "colon" as "str" ":" "of" "list?" "first" ref "make-symbol" "." "nth" 1 of "does" "exist" "match" "contain" "include" "includes" "equals" "precedes" precedes? "follows" follows?) :bytecode (18 0 48 0 17 1 18 1 48 0 17 2 16 1 1 1 0 52 0 0 2 6 33 108 0 5 16 2 1 2 0 52 0 0 2 6 34 94 0 5 16 2 1 3 0 52 0 0 2 6 34 80 0 5 16 2 1 4 0 52 0 0 2 6 34 66 0 5 16 2 1 5 0 52 0 0 2 6 34 52 0 5 16 2 1 6 0 52 0 0 2 6 34 38 0 5 16 2 1 7 0 52 0 0 2 6 34 24 0 5 16 2 1 8 0 52 0 0 2 6 34 10 0 5 16 2 1 9 0 52 0 0 2 33 109 0 18 2 48 0 5 18 3 48 0 17 3 16 2 1 2 0 52 0 0 2 33 14 0 1 11 0 16 0 16 3 52 10 0 3 32 69 0 16 2 1 8 0 52 0 0 2 33 14 0 1 12 0 16 0 16 3 52 10 0 3 32 43 0 16 2 1 9 0 52 0 0 2 33 21 0 1 13 0 1 12 0 16 0 16 3 52 10 0 3 52 10 0 2 32 10 0 16 2 16 0 16 3 52 10 0 3 32 13 9 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 15 0 52 0 0 2 33 173 3 18 2 48 0 5 18 4 1 16 0 48 1 33 127 1 18 4 1 17 0 48 1 33 19 0 1 13 0 1 18 0 16 0 52 10 0 2 52 10 0 2 32 95 1 18 4 1 19 0 48 1 33 16 0 1 20 0 16 0 18 3 48 0 52 10 0 3 32 69 1 18 4 1 21 0 48 1 33 59 0 18 5 48 0 17 3 18 4 1 22 0 48 1 5 18 5 48 0 17 4 1 13 0 1 23 0 1 24 0 16 0 16 3 52 10 0 3 1 25 0 16 0 16 4 52 10 0 3 52 10 0 3 52 10 0 2 32 0 1 18 4 1 26 0 48 1 33 39 0 18 4 1 27 0 48 1 5 18 4 1 28 0 48 1 5 1 13 0 1 12 0 16 0 18 3 48 0 52 10 0 3 52 10 0 2 32 207 0 18 4 1 27 0 48 1 33 31 0 18 4 1 28 0 48 1 5 1 13 0 1 11 0 16 0 18 3 48 0 52 10 0 3 52 10 0 2 32 166 0 18 1 48 0 1 29 0 52 0 0 2 6 34 12 0 5 18 1 48 0 1 30 0 52 0 0 2 6 33 7 0 5 18 2 48 0 5 3 33 101 0 18 1 48 0 17 3 18 2 48 0 5 18 0 48 0 1 1 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 31 0 52 0 0 2 17 4 16 4 33 7 0 18 2 48 0 32 1 0 2 5 16 4 33 21 0 1 13 0 1 32 0 16 0 16 3 52 10 0 3 52 10 0 2 32 18 0 1 13 0 1 33 0 16 0 16 3 52 10 0 3 52 10 0 2 32 24 0 18 3 48 0 17 3 1 13 0 1 11 0 16 0 16 3 52 10 0 3 52 10 0 2 32 28 2 18 4 1 17 0 48 1 33 12 0 1 18 0 16 0 52 10 0 2 32 6 2 18 4 1 34 0 48 1 33 66 0 18 4 1 35 0 48 1 5 18 4 1 36 0 48 1 33 32 0 18 4 1 27 0 48 1 5 18 4 1 28 0 48 1 5 1 25 0 16 0 18 3 48 0 52 10 0 3 32 13 0 1 37 0 16 0 18 3 48 0 52 10 0 3 32 186 1 18 4 1 38 0 48 1 33 66 0 18 4 1 35 0 48 1 5 18 4 1 36 0 48 1 33 32 0 18 4 1 27 0 48 1 5 18 4 1 28 0 48 1 5 1 24 0 16 0 18 3 48 0 52 10 0 3 32 13 0 1 39 0 16 0 18 3 48 0 52 10 0 3 32 110 1 18 4 1 21 0 48 1 33 52 0 18 5 48 0 17 3 18 4 1 22 0 48 1 5 18 5 48 0 17 4 1 23 0 1 24 0 16 0 16 3 52 10 0 3 1 25 0 16 0 16 4 52 10 0 3 52 10 0 3 32 48 1 18 4 1 19 0 48 1 33 16 0 1 40 0 16 0 18 3 48 0 52 10 0 3 32 22 1 18 4 1 26 0 48 1 33 32 0 18 4 1 27 0 48 1 5 18 4 1 28 0 48 1 5 1 12 0 16 0 18 3 48 0 52 10 0 3 32 236 0 18 4 1 27 0 48 1 33 24 0 18 4 1 28 0 48 1 5 1 11 0 16 0 18 3 48 0 52 10 0 3 32 202 0 18 1 48 0 1 29 0 52 0 0 2 6 34 12 0 5 18 1 48 0 1 30 0 52 0 0 2 6 33 7 0 5 18 2 48 0 5 3 33 87 0 18 1 48 0 17 3 18 2 48 0 5 18 0 48 0 1 1 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 31 0 52 0 0 2 17 4 16 4 33 7 0 18 2 48 0 32 1 0 2 5 16 4 33 14 0 1 32 0 16 0 16 3 52 10 0 3 32 11 0 1 33 0 16 0 16 3 52 10 0 3 32 74 0 18 0 48 0 1 41 0 52 0 0 2 6 33 14 0 5 20 42 0 18 1 48 0 48 1 52 16 0 1 33 25 0 18 1 48 0 17 3 18 2 48 0 5 1 43 0 16 0 16 3 52 10 0 3 32 17 0 18 3 48 0 17 3 1 11 0 16 0 16 3 52 10 0 3 32 70 5 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 44 0 52 0 0 2 33 165 0 18 2 48 0 5 18 4 1 16 0 48 1 33 82 0 18 4 1 19 0 48 1 33 16 0 1 20 0 16 0 18 3 48 0 52 10 0 3 32 53 0 18 4 1 17 0 48 1 33 19 0 1 13 0 1 18 0 16 0 52 10 0 2 52 10 0 2 32 24 0 18 3 48 0 17 3 1 13 0 1 11 0 16 0 16 3 52 10 0 3 52 10 0 2 32 65 0 18 4 1 19 0 48 1 33 16 0 1 40 0 16 0 18 3 48 0 52 10 0 3 32 39 0 18 4 1 17 0 48 1 33 12 0 1 18 0 16 0 52 10 0 2 32 17 0 18 3 48 0 17 3 1 11 0 16 0 16 3 52 10 0 3 32 135 4 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 45 0 52 0 0 2 33 17 0 18 2 48 0 5 1 46 0 16 0 52 10 0 2 32 92 4 16 1 1 14 0 52 0 0 2 6 34 10 0 5 16 1 1 41 0 52 0 0 2 6 33 10 0 5 16 2 1 47 0 52 0 0 2 33 29 0 18 2 48 0 5 18 4 1 48 0 48 1 5 1 49 0 16 0 18 3 48 0 52 10 0 3 32 23 4 16 1 1 14 0 52 0 0 2 6 34 10 0 5 16 1 1 41 0 52 0 0 2 6 33 10 0 5 16 2 1 50 0 52 0 0 2 33 29 0 18 2 48 0 5 18 4 1 48 0 48 1 5 1 51 0 16 0 18 3 48 0 52 10 0 3 32 210 3 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 52 0 52 0 0 2 33 21 0 18 2 48 0 5 1 53 0 16 0 18 3 48 0 52 10 0 3 32 163 3 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 54 0 52 0 0 2 33 21 0 18 2 48 0 5 1 55 0 16 0 18 3 48 0 52 10 0 3 32 116 3 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 56 0 52 0 0 2 33 135 0 18 2 48 0 5 18 1 48 0 1 29 0 52 0 0 2 6 34 12 0 5 18 1 48 0 1 30 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 18 1 48 0 17 3 18 2 48 0 5 18 0 48 0 1 57 0 52 0 0 2 6 33 9 0 5 18 6 48 0 52 16 0 1 33 39 0 18 2 48 0 5 18 1 48 0 17 4 18 2 48 0 5 1 58 0 16 0 16 3 1 60 0 16 4 52 59 0 3 52 10 0 3 32 11 0 1 58 0 16 0 16 3 52 10 0 3 32 211 2 16 1 1 57 0 52 0 0 2 33 92 0 18 2 48 0 5 18 1 48 0 17 3 18 2 48 0 5 18 0 48 0 1 1 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 31 0 52 0 0 2 17 4 16 4 33 7 0 18 2 48 0 32 1 0 2 5 16 4 33 14 0 1 32 0 16 0 16 3 52 10 0 3 32 11 0 1 33 0 16 0 16 3 52 10 0 3 32 107 2 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 61 0 52 0 0 2 33 77 0 18 2 48 0 5 18 3 48 0 17 3 16 0 52 62 0 1 6 33 14 0 5 16 0 52 63 0 1 1 64 0 52 0 0 2 33 25 0 1 66 0 52 65 0 1 16 3 16 0 1 68 0 52 67 0 2 52 10 0 3 32 11 0 1 69 0 16 0 16 3 52 10 0 3 32 4 2 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 19 0 52 0 0 2 33 21 0 18 2 48 0 5 1 40 0 16 0 18 3 48 0 52 10 0 3 32 213 1 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 70 0 52 0 0 2 33 170 0 18 2 48 0 5 18 4 1 16 0 48 1 5 18 4 1 71 0 48 1 33 19 0 1 13 0 1 46 0 16 0 52 10 0 2 52 10 0 2 32 125 0 18 4 1 72 0 48 1 33 23 0 1 13 0 1 53 0 16 0 18 3 48 0 52 10 0 3 52 10 0 2 32 92 0 18 4 1 73 0 48 1 6 34 8 0 5 18 4 1 54 0 48 1 33 23 0 1 13 0 1 55 0 16 0 18 3 48 0 52 10 0 3 52 10 0 2 32 47 0 18 4 1 74 0 48 1 6 34 8 0 5 18 4 1 75 0 48 1 33 23 0 1 13 0 1 55 0 16 0 18 3 48 0 52 10 0 3 52 10 0 2 32 2 0 16 0 32 17 1 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 76 0 52 0 0 2 33 21 0 18 2 48 0 5 1 11 0 16 0 18 3 48 0 52 10 0 3 32 226 0 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 26 0 52 0 0 2 33 29 0 18 2 48 0 5 18 4 1 76 0 48 1 5 1 12 0 16 0 18 3 48 0 52 10 0 3 32 171 0 16 1 1 14 0 52 0 0 2 6 33 38 0 5 16 2 1 73 0 52 0 0 2 6 34 24 0 5 16 2 1 74 0 52 0 0 2 6 34 10 0 5 16 2 1 75 0 52 0 0 2 33 21 0 18 2 48 0 5 1 55 0 16 0 18 3 48 0 52 10 0 3 32 96 0 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 77 0 52 0 0 2 33 21 0 18 2 48 0 5 1 78 0 16 0 18 5 48 0 52 10 0 3 32 49 0 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 79 0 52 0 0 2 33 21 0 18 2 48 0 5 1 80 0 16 0 18 5 48 0 52 10 0 3 32 2 0 16 0 50)} {:upvalue-count 6 :arity 1 :constants ("where" "list" coll-where "sorted" "by" "descending" "not" "ascending" coll-sorted-desc coll-sorted "mapped" "to" coll-mapped "split" coll-split "joined" coll-joined) :bytecode (18 0 1 0 0 48 1 33 36 0 18 1 18 2 18 3 18 4 48 0 48 1 48 1 48 1 17 1 18 5 1 2 0 16 0 16 1 52 1 0 3 49 1 32 11 1 18 0 1 3 0 48 1 33 93 0 18 0 1 4 0 48 1 5 18 1 18 2 18 3 18 4 48 0 48 1 48 1 48 1 17 1 18 0 1 5 0 48 1 17 2 16 2 52 6 0 1 33 10 0 18 0 1 7 0 48 1 32 1 0 2 5 18 5 16 2 33 14 0 1 8 0 16 0 16 1 52 1 0 3 32 11 0 1 9 0 16 0 16 1 52 1 0 3 49 1 32 164 0 18 0 1 10 0 48 1 33 44 0 18 0 1 11 0 48 1 5 18 1 18 2 18 3 18 4 48 0 48 1 48 1 48 1 17 1 18 5 1 12 0 16 0 16 1 52 1 0 3 49 1 32 110 0 18 0 1 13 0 48 1 33 44 0 18 0 1 4 0 48 1 5 18 1 18 2 18 3 18 4 48 0 48 1 48 1 48 1 17 1 18 5 1 14 0 16 0 16 1 52 1 0 3 49 1 32 56 0 18 0 1 15 0 48 1 33 44 0 18 0 1 4 0 48 1 5 18 1 18 2 18 3 18 4 48 0 48 1 48 1 48 1 17 1 18 5 1 16 0 16 0 16 1 52 1 0 3 49 1 32 2 0 16 0 50)} {:upvalue-count 7 :arity 1 :constants ("and" "list" and "or" or) :bytecode (18 0 1 0 0 48 1 33 40 0 18 1 18 2 18 3 18 4 18 5 48 0 48 1 48 1 48 1 48 1 17 1 18 6 1 2 0 16 0 16 1 52 1 0 3 49 1 32 52 0 18 0 1 3 0 48 1 33 40 0 18 1 18 2 18 3 18 4 18 5 48 0 48 1 48 1 48 1 48 1 17 1 18 6 1 4 0 16 0 16 1 52 1 0 3 49 1 32 2 0 16 0 50)} {:upvalue-count 9 :arity 0 :constants ("nil?" "number?" "=" "ident" "list" string-postfix "not" "then" "end" "else" "otherwise" "op" "%") :bytecode (18 0 48 0 17 0 16 0 52 0 0 1 33 4 0 2 32 242 0 16 0 52 1 0 1 6 33 12 0 5 18 1 48 0 1 3 0 52 2 0 2 33 27 0 18 2 48 0 17 1 18 3 48 0 5 1 5 0 16 0 16 1 52 4 0 3 17 0 32 1 0 2 5 18 4 16 0 48 1 17 1 18 5 16 1 48 1 17 2 18 6 16 2 48 1 17 3 18 7 16 3 48 1 17 4 18 8 16 4 48 1 17 5 16 5 6 33 112 0 5 18 1 48 0 1 3 0 52 2 0 2 6 33 64 0 5 18 2 48 0 1 7 0 52 2 0 2 6 34 44 0 5 18 2 48 0 1 8 0 52 2 0 2 6 34 28 0 5 18 2 48 0 1 9 0 52 2 0 2 6 34 12 0 5 18 2 48 0 1 10 0 52 2 0 2 52 6 0 1 6 34 28 0 5 18 1 48 0 1 11 0 52 2 0 2 6 33 12 0 5 18 2 48 0 1 12 0 52 2 0 2 33 25 0 18 2 48 0 17 6 18 3 48 0 5 1 5 0 16 5 16 6 52 4 0 3 32 2 0 16 5 50)} {:upvalue-count 2 :arity 2 :constants () :bytecode (18 0 16 0 48 1 33 7 0 18 1 49 0 32 2 0 16 1 50)} {:upvalue-count 3 :arity 0 :constants ("=" "class" "get" "value" "list" {:upvalue-count 4 :arity 0 :constants ("=" "class" "append" "list" "get" "value") :bytecode (18 0 48 0 1 1 0 52 0 0 2 33 31 0 18 1 18 2 48 0 1 5 0 52 4 0 2 52 3 0 1 52 2 0 2 19 1 5 18 3 49 0 32 1 0 2 50)} "to" me "empty?" add-class "cons" multi-add-class) :bytecode (18 0 48 0 1 1 0 52 0 0 2 33 101 0 18 1 48 0 1 3 0 52 2 0 2 17 0 52 4 0 0 17 1 51 5 0 0 0 1 1 0 1 1 2 17 2 5 16 2 48 0 5 18 2 1 6 0 1 7 0 52 4 0 1 48 2 17 3 16 1 52 8 0 1 33 14 0 1 9 0 16 0 16 3 52 4 0 3 32 21 0 1 11 0 16 3 16 0 16 1 52 10 0 2 52 10 0 2 52 10 0 2 32 1 0 2 50)} {:upvalue-count 5 :arity 0 :constants ("=" "class" "get" "value" "list" {:upvalue-count 4 :arity 0 :constants ("=" "class" "append" "list" "get" "value") :bytecode (18 0 48 0 1 1 0 52 0 0 2 33 31 0 18 1 18 2 48 0 1 5 0 52 4 0 2 52 3 0 1 52 2 0 2 19 1 5 18 3 49 0 32 1 0 2 50)} "from" "empty?" remove-class "cons" multi-remove-class "bracket-open" "[" "attr" "]" remove-attr "{" {:upvalue-count 4 :arity 0 :constants ("not" "=" "}" ";" "append" "list" "get" "value") :bytecode (18 0 48 0 1 2 0 52 1 0 2 52 0 0 1 33 76 0 18 0 48 0 1 3 0 52 1 0 2 33 7 0 18 1 48 0 32 1 0 2 5 18 0 48 0 1 2 0 52 1 0 2 52 0 0 1 33 31 0 18 2 18 1 48 0 1 7 0 52 6 0 2 52 5 0 1 52 4 0 2 19 2 5 18 3 49 0 32 1 0 2 32 1 0 2 50)} "}" remove-css remove-element) :bytecode (18 0 48 0 1 1 0 52 0 0 2 33 105 0 18 1 48 0 1 3 0 52 2 0 2 17 0 52 4 0 0 17 1 51 5 0 0 0 1 1 0 1 1 2 17 2 5 16 2 48 0 5 18 2 1 6 0 48 1 33 7 0 18 3 48 0 32 1 0 2 17 3 16 1 52 7 0 1 33 14 0 1 8 0 16 0 16 3 52 4 0 3 32 21 0 1 10 0 16 3 16 0 16 1 52 9 0 2 52 9 0 2 52 9 0 2 32 209 0 18 0 48 0 1 11 0 52 0 0 2 6 33 12 0 5 18 4 48 0 1 12 0 52 0 0 2 33 78 0 18 1 48 0 5 18 0 48 0 1 13 0 52 0 0 2 33 55 0 18 1 48 0 1 3 0 52 2 0 2 17 0 18 2 1 14 0 48 1 5 18 2 1 6 0 48 1 33 7 0 18 3 48 0 32 1 0 2 17 1 1 15 0 16 0 16 1 52 4 0 3 32 1 0 2 32 101 0 18 4 48 0 1 16 0 52 0 0 2 33 72 0 18 1 48 0 5 52 4 0 0 17 0 51 17 0 0 4 0 1 1 0 1 1 17 1 5 16 1 48 0 5 18 2 1 18 0 48 1 5 18 2 1 6 0 48 1 33 7 0 18 3 48 0 32 1 0 2 17 2 1 19 0 16 0 16 2 52 4 0 3 32 15 0 18 3 48 0 17 0 1 20 0 16 0 52 4 0 2 50)} {:upvalue-count 7 :arity 0 :constants ("between" "=" "class" "and" "on" "list" me toggle-between toggle-class "style" toggle-style-between toggle-style "attr" toggle-attr-between toggle-attr) :bytecode (18 0 1 0 0 48 1 33 106 0 18 1 48 0 1 2 0 52 1 0 2 33 88 0 18 2 48 0 17 0 18 3 48 0 5 16 0 17 0 18 4 1 3 0 48 1 5 18 1 48 0 1 2 0 52 1 0 2 33 47 0 18 2 48 0 17 1 18 3 48 0 5 16 1 17 1 18 5 1 4 0 1 6 0 52 5 0 1 48 2 17 2 1 7 0 16 0 16 1 16 2 52 5 0 4 32 1 0 2 32 1 0 2 32 50 1 18 1 48 0 1 2 0 52 1 0 2 33 45 0 18 2 48 0 17 0 18 3 48 0 5 16 0 17 0 18 5 1 4 0 1 6 0 52 5 0 1 48 2 17 1 1 8 0 16 0 16 1 52 5 0 3 32 247 0 18 1 48 0 1 9 0 52 1 0 2 33 109 0 18 2 48 0 17 0 18 3 48 0 5 16 0 17 0 18 0 1 0 0 48 1 33 54 0 18 6 48 0 17 1 18 4 1 3 0 48 1 5 18 6 48 0 17 2 18 5 1 4 0 1 6 0 52 5 0 1 48 2 17 3 1 10 0 16 0 16 1 16 2 16 3 52 5 0 5 32 27 0 18 5 1 4 0 1 6 0 52 5 0 1 48 2 17 1 1 11 0 16 0 16 1 52 5 0 3 32 124 0 18 1 48 0 1 12 0 52 1 0 2 33 109 0 18 2 48 0 17 0 18 3 48 0 5 16 0 17 0 18 0 1 0 0 48 1 33 54 0 18 6 48 0 17 1 18 4 1 3 0 48 1 5 18 6 48 0 17 2 18 5 1 4 0 1 6 0 52 5 0 1 48 2 17 3 1 13 0 16 0 16 1 16 2 16 3 52 5 0 5 32 27 0 18 5 1 4 0 1 6 0 52 5 0 1 48 2 17 1 1 14 0 16 0 16 1 52 5 0 3 32 1 0 2 50)} {:upvalue-count 2 :arity 0 :constants ("to" "list" set!) :bytecode (18 0 48 0 17 0 18 1 1 0 0 48 1 5 18 0 48 0 17 1 1 2 0 16 0 16 1 52 1 0 3 50)} {:upvalue-count 4 :arity 0 :constants ("into" "list" set! "before" put! "after" "at" "start" "of" "end" "error" "str" "Expected start/end after at, position " "Expected into/before/after/at at position ") :bytecode (18 0 48 0 17 0 18 1 1 0 0 48 1 33 16 0 1 2 0 18 0 48 0 16 0 52 1 0 3 32 171 0 18 1 1 3 0 48 1 33 19 0 1 4 0 16 0 1 3 0 18 0 48 0 52 1 0 4 32 142 0 18 1 1 5 0 48 1 33 19 0 1 4 0 16 0 1 5 0 18 0 48 0 52 1 0 4 32 113 0 18 1 1 6 0 48 1 33 90 0 18 1 1 7 0 48 1 33 27 0 18 2 1 8 0 48 1 5 1 4 0 16 0 1 7 0 18 0 48 0 52 1 0 4 32 50 0 18 1 1 9 0 48 1 33 27 0 18 2 1 8 0 48 1 5 1 4 0 16 0 1 9 0 18 0 48 0 52 1 0 4 32 13 0 1 12 0 18 3 52 11 0 2 52 10 0 1 32 13 0 1 13 0 18 3 52 11 0 2 52 10 0 1 50)} {:upvalue-count 3 :arity 0 :constants ("else" "otherwise" "end" "list" if) :bytecode (18 0 48 0 17 0 18 1 48 0 17 1 18 2 1 0 0 48 1 6 34 8 0 5 18 2 1 1 0 48 1 33 7 0 18 1 48 0 32 1 0 2 17 2 18 2 1 2 0 48 1 5 16 2 33 16 0 1 4 0 16 0 16 1 16 2 52 3 0 4 32 11 0 1 4 0 16 0 16 1 52 3 0 3 50)} {:upvalue-count 6 :arity 0 :constants ("for" "from" "list" wait-for "=" "number" wait "get" "value" 0) :bytecode (18 0 1 0 0 48 1 33 65 0 18 1 48 0 17 0 18 2 48 0 5 18 0 1 1 0 48 1 33 7 0 18 3 48 0 32 1 0 2 17 1 16 1 33 17 0 1 3 0 16 0 1 1 0 16 1 52 2 0 4 32 9 0 1 3 0 16 0 52 2 0 2 32 53 0 18 4 48 0 1 5 0 52 4 0 2 33 29 0 18 2 48 0 17 0 1 6 0 18 5 16 0 1 8 0 52 7 0 2 48 1 52 2 0 2 32 10 0 1 6 0 1 9 0 52 2 0 2 50)} {:upvalue-count 4 :arity 1 :constants ({:upvalue-count 5 :arity 1 :constants ("=" "paren-close" "get" "value" "colon" "comma" "append" "list") :bytecode (18 0 48 0 1 1 0 52 0 0 2 6 34 5 0 5 18 1 48 0 33 28 0 18 0 48 0 1 1 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 16 0 32 83 0 18 2 48 0 1 3 0 52 2 0 2 17 1 18 0 48 0 1 4 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 18 3 48 0 17 2 18 0 48 0 1 5 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 18 4 16 0 16 1 16 2 52 7 0 2 52 6 0 2 49 1 50)} "cons" dict "list") :bytecode (18 0 48 0 5 51 0 0 0 1 0 2 0 0 0 3 1 0 17 0 5 1 2 0 16 0 52 3 0 0 48 1 52 1 0 2 50)} {:upvalue-count 4 :arity 0 :constants ("get" "value" "=" "paren-open" "to" "list" me send) :bytecode (18 0 48 0 1 1 0 52 0 0 2 17 0 18 1 48 0 1 3 0 52 2 0 2 33 7 0 18 2 48 0 32 1 0 2 17 1 18 3 1 4 0 1 6 0 52 5 0 1 48 2 17 2 16 1 33 16 0 1 7 0 16 0 16 1 16 2 52 5 0 4 32 11 0 1 7 0 16 0 16 2 52 5 0 3 50)} {:upvalue-count 2 :arity 0 :constants ("get" "value" "on" "list" me trigger) :bytecode (18 0 48 0 1 1 0 52 0 0 2 17 0 18 1 1 2 0 1 4 0 52 3 0 1 48 2 17 1 1 5 0 16 0 16 1 52 3 0 3 50)} {:upvalue-count 1 :arity 0 :constants ("list" log) :bytecode (1 1 0 18 0 48 0 52 0 0 2 50)} {:upvalue-count 3 :arity 0 :constants ("by" 1 "on" "list" me increment!) :bytecode (18 0 48 0 17 0 18 1 1 0 0 48 1 33 7 0 18 0 48 0 32 3 0 1 1 0 17 1 18 2 1 2 0 1 4 0 52 3 0 1 48 2 17 2 1 5 0 16 0 16 1 16 2 52 3 0 4 50)} {:upvalue-count 3 :arity 0 :constants ("by" 1 "on" "list" me decrement!) :bytecode (18 0 48 0 17 0 18 1 1 0 0 48 1 33 7 0 18 0 48 0 32 3 0 1 1 0 17 1 18 2 1 2 0 1 4 0 52 3 0 1 48 2 17 2 1 5 0 16 0 16 1 16 2 52 3 0 4 50)} {:upvalue-count 6 :arity 0 :constants ("list" me "=" "keyword" "then" "end" "with" "add" "remove" "set" "put" "toggle" "hide" "show" "display" hide) :bytecode (18 0 48 0 33 10 0 1 1 0 52 0 0 1 32 188 0 18 1 48 0 1 3 0 52 2 0 2 6 33 156 0 5 18 2 48 0 1 4 0 52 2 0 2 6 34 140 0 5 18 2 48 0 1 5 0 52 2 0 2 6 34 124 0 5 18 2 48 0 1 6 0 52 2 0 2 6 34 108 0 5 18 2 48 0 1 7 0 52 2 0 2 6 34 92 0 5 18 2 48 0 1 8 0 52 2 0 2 6 34 76 0 5 18 2 48 0 1 9 0 52 2 0 2 6 34 60 0 5 18 2 48 0 1 10 0 52 2 0 2 6 34 44 0 5 18 2 48 0 1 11 0 52 2 0 2 6 34 28 0 5 18 2 48 0 1 12 0 52 2 0 2 6 34 12 0 5 18 2 48 0 1 13 0 52 2 0 2 33 10 0 1 1 0 52 0 0 1 32 4 0 18 3 48 0 17 0 18 4 1 6 0 48 1 33 29 0 18 0 48 0 33 6 0 1 14 0 32 13 0 18 2 48 0 17 1 18 5 48 0 5 16 1 32 3 0 1 14 0 17 1 1 15 0 16 0 16 1 52 0 0 3 50)} {:upvalue-count 6 :arity 0 :constants ("list" me "=" "keyword" "then" "end" "with" "add" "remove" "set" "put" "toggle" "hide" "show" "display" show) :bytecode (18 0 48 0 33 10 0 1 1 0 52 0 0 1 32 188 0 18 1 48 0 1 3 0 52 2 0 2 6 33 156 0 5 18 2 48 0 1 4 0 52 2 0 2 6 34 140 0 5 18 2 48 0 1 5 0 52 2 0 2 6 34 124 0 5 18 2 48 0 1 6 0 52 2 0 2 6 34 108 0 5 18 2 48 0 1 7 0 52 2 0 2 6 34 92 0 5 18 2 48 0 1 8 0 52 2 0 2 6 34 76 0 5 18 2 48 0 1 9 0 52 2 0 2 6 34 60 0 5 18 2 48 0 1 10 0 52 2 0 2 6 34 44 0 5 18 2 48 0 1 11 0 52 2 0 2 6 34 28 0 5 18 2 48 0 1 12 0 52 2 0 2 6 34 12 0 5 18 2 48 0 1 13 0 52 2 0 2 33 10 0 1 1 0 52 0 0 1 32 4 0 18 3 48 0 17 0 18 4 1 6 0 48 1 33 29 0 18 0 48 0 33 6 0 1 14 0 32 13 0 18 2 48 0 17 1 18 5 48 0 5 16 1 32 3 0 1 14 0 17 1 1 15 0 16 0 16 1 52 0 0 3 50)} {:upvalue-count 6 :arity 0 :constants ("=" "style" "get" "value" "my" "from" "to" "over" "list" transition-from transition) :bytecode (18 0 48 0 1 1 0 52 0 0 2 33 14 0 18 1 48 0 1 3 0 52 2 0 2 32 72 0 18 2 48 0 1 4 0 52 0 0 2 33 47 0 18 1 48 0 5 18 0 48 0 1 1 0 52 0 0 2 33 14 0 18 1 48 0 1 3 0 52 2 0 2 32 11 0 18 1 48 0 1 3 0 52 2 0 2 32 11 0 18 1 48 0 1 3 0 52 2 0 2 17 0 18 3 1 5 0 48 1 33 7 0 18 4 48 0 32 1 0 2 17 1 18 5 1 6 0 48 1 5 18 4 48 0 17 2 18 3 1 7 0 48 1 33 7 0 18 4 48 0 32 1 0 2 17 3 16 1 33 18 0 1 9 0 16 0 16 1 16 2 16 3 52 8 0 5 32 34 0 16 3 33 17 0 1 10 0 16 0 16 2 16 3 2 52 8 0 5 32 12 0 1 10 0 16 0 16 2 2 52 8 0 4 50)} {:upvalue-count 7 :arity 0 :constants ("=" "keyword" "for" "in" "end" "list" for "it" "forever" forever "while" while "until" until "times" times repeat) :bytecode (18 0 48 0 1 1 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 2 0 52 0 0 2 33 12 0 18 2 48 0 5 18 3 49 0 32 203 0 18 0 48 0 1 1 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 3 0 52 0 0 2 33 43 0 18 2 48 0 5 18 4 48 0 17 0 18 5 48 0 17 1 18 6 1 4 0 48 1 5 1 6 0 1 7 0 16 0 2 16 1 52 5 0 5 32 130 0 18 6 1 8 0 48 1 33 10 0 1 9 0 52 5 0 1 32 83 0 18 6 1 10 0 48 1 33 14 0 1 11 0 18 4 48 0 52 5 0 2 32 59 0 18 6 1 12 0 48 1 33 14 0 1 13 0 18 4 48 0 52 5 0 2 32 35 0 18 4 48 0 17 0 18 6 1 14 0 48 1 33 12 0 1 15 0 16 0 52 5 0 2 32 7 0 1 9 0 52 5 0 1 17 0 18 5 48 0 17 1 18 6 1 4 0 48 1 5 1 16 0 16 0 16 1 52 5 0 3 50)} {:upvalue-count 6 :arity 0 :constants ("nil?" "as" "json" "list" fetch) :bytecode (18 0 48 0 17 0 16 0 52 0 0 1 33 5 0 16 0 32 10 0 18 1 18 2 16 0 48 1 48 1 17 1 18 3 1 1 0 48 1 33 16 0 18 4 48 0 17 2 18 5 48 0 5 16 2 32 3 0 1 2 0 17 2 1 4 0 16 1 16 2 52 3 0 3 50)} {:upvalue-count 4 :arity 1 :constants ({:upvalue-count 5 :arity 1 :constants ("=" "paren-close" "comma" "append" "list") :bytecode (18 0 48 0 1 1 0 52 0 0 2 6 34 5 0 5 18 1 48 0 33 28 0 18 0 48 0 1 1 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 16 0 32 45 0 18 3 48 0 17 1 18 0 48 0 1 2 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 18 4 16 0 16 1 52 4 0 1 52 3 0 2 49 1 50)} "list") :bytecode (18 0 48 0 5 51 0 0 0 1 0 2 0 0 0 3 1 0 17 0 5 16 0 52 1 0 0 49 1 50)} {:upvalue-count 3 :arity 0 :constants ("get" "value" "=" "paren-open" "cons" call "list") :bytecode (18 0 48 0 1 1 0 52 0 0 2 17 0 18 1 48 0 1 3 0 52 2 0 2 33 24 0 18 2 48 0 17 1 1 5 0 16 0 16 1 52 4 0 2 52 4 0 2 32 9 0 1 5 0 16 0 52 6 0 2 50)} {:upvalue-count 5 :arity 0 :constants ("=" "class" "from" "for" "list" take! "attr") :bytecode (18 0 48 0 1 1 0 52 0 0 2 33 74 0 18 1 48 0 17 0 18 2 48 0 5 16 0 17 0 18 3 1 2 0 48 1 33 7 0 18 4 48 0 32 1 0 2 17 1 18 3 1 3 0 48 1 33 7 0 18 4 48 0 32 1 0 2 17 2 1 5 0 1 1 0 16 0 16 1 16 2 52 4 0 5 32 89 0 18 0 48 0 1 6 0 52 0 0 2 33 74 0 18 1 48 0 17 0 18 2 48 0 5 16 0 17 0 18 3 1 2 0 48 1 33 7 0 18 4 48 0 32 1 0 2 17 1 18 3 1 3 0 48 1 33 7 0 18 4 48 0 32 1 0 2 17 2 1 5 0 1 6 0 16 0 16 1 16 2 52 4 0 5 32 1 0 2 50)} {:upvalue-count 2 :arity 0 :constants ("to" "list" go) :bytecode (18 0 1 0 0 48 1 5 1 2 0 18 1 48 0 52 1 0 2 50)} {:upvalue-count 6 :arity 1 :constants ("=" "op" "+" "-" "*" "/" "%" "keyword" "mod" + - * / "make-symbol" "nil?" "list") :bytecode (18 0 48 0 17 1 18 1 48 0 17 2 16 1 1 1 0 52 0 0 2 6 33 66 0 5 16 2 1 2 0 52 0 0 2 6 34 52 0 5 16 2 1 3 0 52 0 0 2 6 34 38 0 5 16 2 1 4 0 52 0 0 2 6 34 24 0 5 16 2 1 5 0 52 0 0 2 6 34 10 0 5 16 2 1 6 0 52 0 0 2 6 34 24 0 5 16 1 1 7 0 52 0 0 2 6 33 10 0 5 16 2 1 8 0 52 0 0 2 33 161 0 18 2 48 0 5 16 2 1 2 0 52 0 0 2 33 6 0 1 9 0 32 91 0 16 2 1 3 0 52 0 0 2 33 6 0 1 10 0 32 73 0 16 2 1 4 0 52 0 0 2 33 6 0 1 11 0 32 55 0 16 2 1 5 0 52 0 0 2 33 6 0 1 12 0 32 37 0 16 2 1 6 0 52 0 0 2 6 34 10 0 5 16 2 1 8 0 52 0 0 2 33 10 0 1 6 0 52 13 0 1 32 1 0 2 17 3 18 3 48 0 17 4 16 4 52 14 0 1 33 5 0 16 4 32 6 0 18 4 16 4 48 1 17 4 18 5 16 3 16 0 16 4 52 15 0 3 49 1 32 2 0 16 0 50)} {:upvalue-count 8 :arity 0 :constants ("=" "ident" "keyword" "of" "list" "make-symbol" "." "result" it "first" first "last" last "closest" closest "next" next "previous" previous ref) :bytecode (18 0 48 0 17 0 18 1 48 0 17 1 16 0 1 1 0 52 0 0 2 6 34 10 0 5 16 0 1 2 0 52 0 0 2 33 179 0 18 2 48 0 5 18 3 1 3 0 48 1 33 20 0 1 6 0 52 5 0 1 18 4 48 0 16 1 52 4 0 3 32 141 0 16 1 1 7 0 52 0 0 2 33 10 0 1 8 0 52 4 0 1 32 119 0 16 1 1 9 0 52 0 0 2 33 10 0 18 5 1 10 0 49 1 32 97 0 16 1 1 11 0 52 0 0 2 33 10 0 18 5 1 12 0 49 1 32 75 0 16 1 1 13 0 52 0 0 2 33 10 0 18 6 1 14 0 49 1 32 53 0 16 1 1 15 0 52 0 0 2 33 10 0 18 6 1 16 0 49 1 32 31 0 16 1 1 17 0 52 0 0 2 33 10 0 18 6 1 18 0 49 1 32 9 0 1 19 0 16 1 52 4 0 2 32 4 0 18 7 49 0 50)} {:upvalue-count 4 :arity 1 :constants ({:upvalue-count 5 :arity 1 :constants ("=" "bracket-close" "comma" "append" "list") :bytecode (18 0 48 0 1 1 0 52 0 0 2 6 34 5 0 5 18 1 48 0 33 28 0 18 0 48 0 1 1 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 16 0 32 45 0 18 3 48 0 17 1 18 0 48 0 1 2 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 18 4 16 0 16 1 52 4 0 1 52 3 0 2 49 1 50)} "cons" array "list") :bytecode (51 0 0 0 0 0 1 0 2 0 3 1 0 17 0 5 1 2 0 16 0 52 3 0 0 48 1 52 1 0 2 50)} {:upvalue-count 4 :arity 0 :constants ("=" "keyword" "end" "then" "else" "list" return) :bytecode (18 0 48 0 6 34 60 0 5 18 1 48 0 1 1 0 52 0 0 2 6 33 44 0 5 18 2 48 0 1 2 0 52 0 0 2 6 34 28 0 5 18 2 48 0 1 3 0 52 0 0 2 6 34 12 0 5 18 2 48 0 1 4 0 52 0 0 2 33 11 0 1 6 0 2 52 5 0 2 32 11 0 1 6 0 18 3 48 0 52 5 0 2 50)} {:upvalue-count 1 :arity 0 :constants ("list" throw) :bytecode (1 1 0 18 0 48 0 52 0 0 2 50)} {:upvalue-count 2 :arity 0 :constants ("to" "list" append!) :bytecode (18 0 48 0 17 0 18 1 1 0 0 48 1 5 18 0 48 0 17 1 1 2 0 16 0 16 1 52 1 0 3 50)} {:upvalue-count 3 :arity 0 :constants ("then" "end" "list" tell) :bytecode (18 0 48 0 17 0 18 1 1 0 0 48 1 5 18 2 48 0 17 1 18 1 1 1 0 48 1 5 1 3 0 16 0 16 1 52 2 0 3 50)} {:upvalue-count 6 :arity 0 :constants ("in" "index" "end" "list" for) :bytecode (18 0 48 0 17 0 18 1 48 0 5 18 2 1 0 0 48 1 5 18 3 48 0 17 1 18 4 1 1 0 48 1 33 16 0 18 0 48 0 17 2 18 1 48 0 5 16 2 32 1 0 2 17 2 18 5 48 0 17 3 18 4 1 2 0 48 1 5 16 2 33 21 0 1 4 0 16 0 16 1 16 3 1 1 0 16 2 52 3 0 6 32 13 0 1 4 0 16 0 16 1 16 3 52 3 0 4 50)} {:upvalue-count 3 :arity 0 :constants ("=" "a" "called" "list" make) :bytecode (18 0 48 0 1 1 0 52 0 0 2 33 7 0 18 1 48 0 32 1 0 2 5 18 0 48 0 17 0 18 1 48 0 5 18 2 1 2 0 48 1 33 16 0 18 0 48 0 17 1 18 1 48 0 5 16 1 32 1 0 2 17 1 16 1 33 14 0 1 4 0 16 0 16 1 52 3 0 3 32 9 0 1 4 0 16 0 52 3 0 2 50)} {:upvalue-count 4 :arity 0 :constants ("=" "paren-open" "cons" install "list") :bytecode (18 0 48 0 17 0 18 1 48 0 5 18 2 48 0 1 1 0 52 0 0 2 33 24 0 18 3 48 0 17 1 1 3 0 16 0 16 1 52 2 0 2 52 2 0 2 32 9 0 1 3 0 16 0 52 4 0 2 50)} {:upvalue-count 1 :arity 0 :constants ("list" measure "nil?" me) :bytecode (18 0 48 0 17 0 1 1 0 16 0 52 2 0 1 33 10 0 1 3 0 52 0 0 1 32 2 0 16 0 52 0 0 2 50)} {:upvalue-count 5 :arity 0 :constants ("=" "keyword" "then" "end" "list" me "top" "bottom" "left" "right" scroll!) :bytecode (18 0 48 0 6 34 44 0 5 18 1 48 0 1 1 0 52 0 0 2 6 33 28 0 5 18 2 48 0 1 2 0 52 0 0 2 6 34 12 0 5 18 2 48 0 1 3 0 52 0 0 2 33 10 0 1 5 0 52 4 0 1 32 4 0 18 3 48 0 17 0 18 4 1 6 0 48 1 33 6 0 1 6 0 32 51 0 18 4 1 7 0 48 1 33 6 0 1 7 0 32 35 0 18 4 1 8 0 48 1 33 6 0 1 8 0 32 19 0 18 4 1 9 0 48 1 33 6 0 1 9 0 32 3 0 1 6 0 17 1 1 10 0 16 0 16 1 52 4 0 3 50)} {:upvalue-count 4 :arity 0 :constants ("=" "keyword" "then" "end" "list" me select!) :bytecode (18 0 48 0 6 34 44 0 5 18 1 48 0 1 1 0 52 0 0 2 6 33 28 0 5 18 2 48 0 1 2 0 52 0 0 2 6 34 12 0 5 18 2 48 0 1 3 0 52 0 0 2 33 10 0 1 5 0 52 4 0 1 32 4 0 18 3 48 0 17 0 1 6 0 16 0 52 4 0 2 50)} {:upvalue-count 4 :arity 0 :constants ("=" "keyword" "then" "end" "list" me reset!) :bytecode (18 0 48 0 6 34 44 0 5 18 1 48 0 1 1 0 52 0 0 2 6 33 28 0 5 18 2 48 0 1 2 0 52 0 0 2 6 34 12 0 5 18 2 48 0 1 3 0 52 0 0 2 33 10 0 1 5 0 52 4 0 1 32 4 0 18 3 48 0 17 0 1 6 0 16 0 52 4 0 2 50)} {:upvalue-count 2 :arity 0 :constants ("to" "list" default!) :bytecode (18 0 48 0 17 0 18 1 1 0 0 48 1 5 18 0 48 0 17 1 1 2 0 16 0 16 1 52 1 0 3 50)} {:upvalue-count 1 :arity 0 :constants ("the" "event" "default" "list" halt!) :bytecode (18 0 1 0 0 48 1 6 33 20 0 5 18 0 1 1 0 48 1 6 34 8 0 5 18 0 1 2 0 48 1 17 0 1 4 0 16 0 33 6 0 1 1 0 32 3 0 1 2 0 52 3 0 2 50)} {:upvalue-count 2 :arity 0 :constants ("=" "paren-open" "list") :bytecode (18 0 48 0 1 1 0 52 0 0 2 33 7 0 18 1 49 0 32 4 0 52 2 0 0 50)} {:upvalue-count 4 :arity 0 :constants ("list" me "=" "keyword" "then" "end" focus!) :bytecode (18 0 48 0 33 10 0 1 1 0 52 0 0 1 32 60 0 18 1 48 0 1 3 0 52 2 0 2 6 33 28 0 5 18 2 48 0 1 4 0 52 2 0 2 6 34 12 0 5 18 2 48 0 1 5 0 52 2 0 2 33 10 0 1 1 0 52 0 0 1 32 4 0 18 3 48 0 17 0 1 6 0 16 0 52 0 0 2 50)} {:upvalue-count 4 :arity 1 :constants ({:upvalue-count 5 :arity 1 :constants ("=" "keyword" "end" "nil?" "append" "list") :bytecode (18 0 48 0 6 34 28 0 5 18 1 48 0 1 1 0 52 0 0 2 6 33 12 0 5 18 2 48 0 1 2 0 52 0 0 2 33 5 0 16 0 32 36 0 18 3 48 0 17 1 16 1 52 3 0 1 33 5 0 16 0 32 16 0 18 4 16 0 16 1 52 5 0 1 52 4 0 2 49 1 50)} "list") :bytecode (51 0 0 0 0 0 1 0 2 0 3 1 0 17 0 5 16 0 52 1 0 0 49 1 50)} {:upvalue-count 5 :arity 0 :constants ("end" "list" def) :bytecode (18 0 48 0 17 0 18 1 48 0 5 18 2 48 0 17 1 18 3 48 0 17 2 18 4 1 0 0 48 1 5 1 2 0 16 0 16 1 16 2 52 1 0 4 50)} {:upvalue-count 5 :arity 0 :constants ("end" "list" behavior) :bytecode (18 0 48 0 17 0 18 1 48 0 5 18 2 48 0 17 1 18 3 48 0 17 2 18 4 1 0 0 48 1 5 1 2 0 16 0 16 1 16 2 52 1 0 4 50)} {:upvalue-count 4 :arity 1 :constants ({:upvalue-count 5 :arity 1 :constants ("=" "local" "append" "list") :bytecode (18 0 48 0 1 1 0 52 0 0 2 33 38 0 18 1 48 0 17 1 18 2 48 0 5 18 3 48 0 17 2 18 4 16 0 16 1 16 2 52 3 0 2 52 2 0 2 49 1 32 2 0 16 0 50)} "list") :bytecode (51 0 0 0 0 0 1 0 2 0 3 1 0 17 0 5 16 0 52 1 0 0 49 1 50)} {:upvalue-count 6 :arity 0 :constants ("=" "component" "paren-open" "paren-close" "into" "before" "after" "list" render) :bytecode (18 0 48 0 1 1 0 52 0 0 2 33 16 0 18 1 48 0 17 0 18 2 48 0 5 16 0 32 66 0 18 0 48 0 1 2 0 52 0 0 2 33 39 0 18 2 48 0 5 18 3 48 0 17 0 18 0 48 0 1 3 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 16 0 32 13 0 18 1 48 0 17 0 18 2 48 0 5 16 0 17 0 18 4 48 0 17 1 18 5 1 4 0 48 1 33 6 0 1 4 0 32 33 0 18 5 1 5 0 48 1 33 6 0 1 5 0 32 17 0 18 5 1 6 0 48 1 33 6 0 1 6 0 32 1 0 2 17 2 16 2 33 7 0 18 3 48 0 32 1 0 2 17 3 16 2 33 18 0 1 8 0 16 0 16 1 16 2 16 3 52 7 0 5 32 11 0 1 8 0 16 0 16 1 52 7 0 3 50)} {:upvalue-count 5 :arity 0 :constants ("get" "pos" {:upvalue-count 6 :arity 1 :constants ("=" "paren-open" "+" 1 "paren-close" 0 "get" "pos" "-") :bytecode (18 0 48 0 33 5 0 18 1 32 123 0 18 2 48 0 1 1 0 52 0 0 2 33 21 0 18 3 48 0 5 18 4 16 0 1 3 0 52 2 0 2 49 1 32 88 0 18 2 48 0 1 4 0 52 0 0 2 33 63 0 16 0 1 5 0 52 0 0 2 33 30 0 18 5 48 0 1 7 0 52 6 0 2 1 3 0 52 2 0 2 17 1 18 3 48 0 5 16 1 32 18 0 18 3 48 0 5 18 4 16 0 1 3 0 52 8 0 2 49 1 32 11 0 18 3 48 0 5 18 4 16 0 49 1 50)} 0 "substring") :bytecode (18 0 48 0 1 1 0 52 0 0 2 17 0 18 1 48 0 5 51 2 0 0 2 1 0 0 3 0 1 1 1 0 0 17 1 5 16 1 1 3 0 48 1 17 2 18 4 16 0 16 2 52 4 0 3 50)} {:upvalue-count 39 :arity 0 :constants ("=" "keyword" "catch" "finally" "end" "else" "otherwise" "add" "remove" "toggle" "set" "put" "if" "wait" "send" "trigger" "log" "increment" "decrement" "hide" "show" "transition" "repeat" "fetch" "call" "take" "settle" "list" settle "go" "return" "throw" "append" "tell" "for" "make" "install" "measure" "render" "scroll" "select" "reset" "default" "halt" "focus") :bytecode (18 0 48 0 17 0 18 1 48 0 17 1 16 0 1 1 0 52 0 0 2 6 33 66 0 5 16 1 1 2 0 52 0 0 2 6 34 52 0 5 16 1 1 3 0 52 0 0 2 6 34 38 0 5 16 1 1 4 0 52 0 0 2 6 34 24 0 5 16 1 1 5 0 52 0 0 2 6 34 10 0 5 16 1 1 6 0 52 0 0 2 33 4 0 2 32 95 5 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 7 0 52 0 0 2 33 12 0 18 2 48 0 5 18 3 49 0 32 57 5 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 8 0 52 0 0 2 33 12 0 18 2 48 0 5 18 4 49 0 32 19 5 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 9 0 52 0 0 2 33 12 0 18 2 48 0 5 18 5 49 0 32 237 4 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 10 0 52 0 0 2 33 12 0 18 2 48 0 5 18 6 49 0 32 199 4 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 11 0 52 0 0 2 33 12 0 18 2 48 0 5 18 7 49 0 32 161 4 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 12 0 52 0 0 2 33 12 0 18 2 48 0 5 18 8 49 0 32 123 4 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 13 0 52 0 0 2 33 12 0 18 2 48 0 5 18 9 49 0 32 85 4 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 14 0 52 0 0 2 33 12 0 18 2 48 0 5 18 10 49 0 32 47 4 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 15 0 52 0 0 2 33 12 0 18 2 48 0 5 18 11 49 0 32 9 4 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 16 0 52 0 0 2 33 12 0 18 2 48 0 5 18 12 49 0 32 227 3 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 17 0 52 0 0 2 33 12 0 18 2 48 0 5 18 13 49 0 32 189 3 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 18 0 52 0 0 2 33 12 0 18 2 48 0 5 18 14 49 0 32 151 3 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 19 0 52 0 0 2 33 12 0 18 2 48 0 5 18 15 49 0 32 113 3 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 20 0 52 0 0 2 33 12 0 18 2 48 0 5 18 16 49 0 32 75 3 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 21 0 52 0 0 2 33 12 0 18 2 48 0 5 18 17 49 0 32 37 3 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 22 0 52 0 0 2 33 12 0 18 2 48 0 5 18 18 49 0 32 255 2 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 23 0 52 0 0 2 33 12 0 18 2 48 0 5 18 19 49 0 32 217 2 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 24 0 52 0 0 2 33 12 0 18 2 48 0 5 18 20 49 0 32 179 2 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 25 0 52 0 0 2 33 12 0 18 2 48 0 5 18 21 49 0 32 141 2 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 26 0 52 0 0 2 33 15 0 18 2 48 0 5 1 28 0 52 27 0 1 32 100 2 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 29 0 52 0 0 2 33 12 0 18 2 48 0 5 18 22 49 0 32 62 2 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 30 0 52 0 0 2 33 12 0 18 2 48 0 5 18 23 49 0 32 24 2 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 31 0 52 0 0 2 33 12 0 18 2 48 0 5 18 24 49 0 32 242 1 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 32 0 52 0 0 2 33 12 0 18 2 48 0 5 18 25 49 0 32 204 1 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 33 0 52 0 0 2 33 12 0 18 2 48 0 5 18 26 49 0 32 166 1 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 34 0 52 0 0 2 33 12 0 18 2 48 0 5 18 27 49 0 32 128 1 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 35 0 52 0 0 2 33 12 0 18 2 48 0 5 18 28 49 0 32 90 1 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 36 0 52 0 0 2 33 12 0 18 2 48 0 5 18 29 49 0 32 52 1 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 37 0 52 0 0 2 33 12 0 18 2 48 0 5 18 30 49 0 32 14 1 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 38 0 52 0 0 2 33 12 0 18 2 48 0 5 18 31 49 0 32 232 0 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 39 0 52 0 0 2 33 12 0 18 2 48 0 5 18 32 49 0 32 194 0 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 40 0 52 0 0 2 33 12 0 18 2 48 0 5 18 33 49 0 32 156 0 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 41 0 52 0 0 2 33 12 0 18 2 48 0 5 18 34 49 0 32 118 0 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 42 0 52 0 0 2 33 12 0 18 2 48 0 5 18 35 49 0 32 80 0 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 43 0 52 0 0 2 33 12 0 18 2 48 0 5 18 36 49 0 32 42 0 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 44 0 52 0 0 2 33 12 0 18 2 48 0 5 18 37 49 0 32 4 0 18 38 49 0 50)} {:upvalue-count 5 :arity 2 :constants ({:upvalue-count 0 :arity 1 :constants ("=" "add" "remove" "toggle" "set" "put" "if" "wait" "send" "trigger" "log" "increment" "decrement" "hide" "show" "transition" "repeat" "fetch" "call" "take" "settle" "go" "return" "throw" "append" "tell" "for" "make" "install" "measure" "render" "halt" "default" "scroll" "select" "reset" "focus") :bytecode (16 0 1 1 0 52 0 0 2 6 34 230 1 5 16 0 1 2 0 52 0 0 2 6 34 216 1 5 16 0 1 3 0 52 0 0 2 6 34 202 1 5 16 0 1 4 0 52 0 0 2 6 34 188 1 5 16 0 1 5 0 52 0 0 2 6 34 174 1 5 16 0 1 6 0 52 0 0 2 6 34 160 1 5 16 0 1 7 0 52 0 0 2 6 34 146 1 5 16 0 1 8 0 52 0 0 2 6 34 132 1 5 16 0 1 9 0 52 0 0 2 6 34 118 1 5 16 0 1 10 0 52 0 0 2 6 34 104 1 5 16 0 1 11 0 52 0 0 2 6 34 90 1 5 16 0 1 12 0 52 0 0 2 6 34 76 1 5 16 0 1 13 0 52 0 0 2 6 34 62 1 5 16 0 1 14 0 52 0 0 2 6 34 48 1 5 16 0 1 15 0 52 0 0 2 6 34 34 1 5 16 0 1 16 0 52 0 0 2 6 34 20 1 5 16 0 1 17 0 52 0 0 2 6 34 6 1 5 16 0 1 18 0 52 0 0 2 6 34 248 0 5 16 0 1 19 0 52 0 0 2 6 34 234 0 5 16 0 1 20 0 52 0 0 2 6 34 220 0 5 16 0 1 21 0 52 0 0 2 6 34 206 0 5 16 0 1 22 0 52 0 0 2 6 34 192 0 5 16 0 1 23 0 52 0 0 2 6 34 178 0 5 16 0 1 24 0 52 0 0 2 6 34 164 0 5 16 0 1 25 0 52 0 0 2 6 34 150 0 5 16 0 1 26 0 52 0 0 2 6 34 136 0 5 16 0 1 27 0 52 0 0 2 6 34 122 0 5 16 0 1 28 0 52 0 0 2 6 34 108 0 5 16 0 1 29 0 52 0 0 2 6 34 94 0 5 16 0 1 30 0 52 0 0 2 6 34 80 0 5 16 0 1 31 0 52 0 0 2 6 34 66 0 5 16 0 1 32 0 52 0 0 2 6 34 52 0 5 16 0 1 33 0 52 0 0 2 6 34 38 0 5 16 0 1 34 0 52 0 0 2 6 34 24 0 5 16 0 1 35 0 52 0 0 2 6 34 10 0 5 16 0 1 36 0 52 0 0 2 50)} {:upvalue-count 7 :arity 1 :constants ("nil?" "append" "list" "then" "not" "=" "keyword") :bytecode (18 0 48 0 17 1 16 1 52 0 0 1 33 5 0 16 0 32 84 0 16 0 16 1 52 2 0 1 52 1 0 2 17 2 18 1 1 3 0 48 1 33 9 0 18 2 16 2 49 1 32 51 0 18 3 48 0 52 4 0 1 6 33 25 0 5 18 4 48 0 1 6 0 52 5 0 2 6 33 9 0 5 18 5 18 6 48 0 48 1 33 9 0 18 2 16 2 49 1 32 2 0 16 2 50)} "list" "=" "len" 0 1 "first" "cons" do) :bytecode (51 0 0 17 0 5 51 1 0 0 0 0 1 1 1 0 2 0 3 1 0 0 4 17 1 5 16 1 52 2 0 0 48 1 17 2 16 2 52 4 0 1 1 5 0 52 3 0 2 33 4 0 2 32 34 0 16 2 52 4 0 1 1 6 0 52 3 0 2 33 9 0 16 2 52 7 0 1 32 9 0 1 9 0 16 2 52 8 0 2 50)} {:upvalue-count 6 :arity 0 :constants ("every" "=" "bracket-open" "bracket-close" "from" "catch" "list" "finally" "end" on "append" "filter") :bytecode (18 0 1 0 0 48 1 17 0 18 1 48 0 17 1 18 2 48 0 5 16 1 17 1 18 3 48 0 1 2 0 52 1 0 2 33 39 0 18 2 48 0 5 18 4 48 0 17 2 18 3 48 0 1 3 0 52 1 0 2 33 7 0 18 2 48 0 32 1 0 2 5 16 2 32 1 0 2 17 2 18 0 1 4 0 48 1 33 7 0 18 4 48 0 32 1 0 2 17 3 18 5 48 0 17 4 18 0 1 5 0 48 1 33 32 0 18 1 48 0 17 5 18 2 48 0 5 16 5 17 5 18 5 48 0 17 6 16 5 16 6 52 6 0 2 32 1 0 2 17 5 18 0 1 7 0 48 1 33 7 0 18 5 48 0 32 1 0 2 17 6 18 0 1 8 0 48 1 5 1 9 0 16 1 52 6 0 2 17 7 16 0 33 17 0 16 7 1 0 0 3 52 6 0 2 52 10 0 2 32 2 0 16 7 17 8 16 2 33 18 0 16 8 1 11 0 16 2 52 6 0 2 52 10 0 2 32 2 0 16 8 17 9 16 3 33 18 0 16 9 1 4 0 16 3 52 6 0 2 52 10 0 2 32 2 0 16 9 17 10 16 5 33 18 0 16 10 1 5 0 16 5 52 6 0 2 52 10 0 2 32 2 0 16 10 17 11 16 6 33 18 0 16 11 1 7 0 16 6 52 6 0 2 52 10 0 2 32 2 0 16 11 17 12 16 12 16 4 52 6 0 1 52 10 0 2 17 13 16 13 50)} {:upvalue-count 2 :arity 0 :constants ("end" "list" init) :bytecode (18 0 48 0 17 0 18 1 1 0 0 48 1 5 1 2 0 16 0 52 1 0 2 50)} {:upvalue-count 7 :arity 0 :constants ("=" "on" "init" "def" "behavior") :bytecode (18 0 48 0 17 0 16 0 1 1 0 52 0 0 2 33 12 0 18 1 48 0 5 18 2 49 0 32 76 0 16 0 1 2 0 52 0 0 2 33 12 0 18 1 48 0 5 18 3 49 0 32 52 0 16 0 1 3 0 52 0 0 2 33 12 0 18 1 48 0 5 18 4 49 0 32 28 0 16 0 1 4 0 52 0 0 2 33 12 0 18 1 48 0 5 18 5 49 0 32 4 0 18 6 49 0 50)} {:upvalue-count 3 :arity 1 :constants ("nil?" "append" "list") :bytecode (18 0 48 0 33 5 0 16 0 32 36 0 18 1 48 0 17 1 16 1 52 0 0 1 33 5 0 16 0 32 16 0 18 2 16 0 16 1 52 2 0 1 52 1 0 2 49 1 50)} "list" "=" 1 "first" "cons" do) :bytecode (1 0 0 17 2 16 0 52 1 0 1 17 3 51 2 0 1 2 1 3 1 0 17 4 5 51 3 0 1 4 17 5 5 51 4 0 1 4 17 6 5 51 5 0 1 0 1 2 17 7 5 51 6 0 1 2 1 3 1 5 17 8 5 51 7 0 1 5 1 6 1 7 17 9 5 51 8 0 1 9 1 2 17 10 5 51 9 0 17 11 5 51 10 0 1 5 1 6 1 7 1 13 17 12 5 51 11 0 1 5 1 8 1 6 1 7 1 13 1 41 17 13 5 51 12 0 1 5 1 6 1 7 17 14 5 51 13 0 1 5 1 6 1 7 1 9 1 21 17 15 5 51 14 0 1 5 1 6 1 7 1 11 1 21 1 68 1 46 1 12 1 14 1 15 1 8 1 2 1 0 1 47 1 16 1 9 17 16 5 51 15 0 1 5 1 6 1 7 1 12 1 13 1 41 1 21 1 17 17 17 5 51 16 0 1 5 1 6 1 7 1 21 1 9 1 16 1 8 17 18 5 51 17 0 1 9 1 18 1 45 1 17 1 16 1 19 17 19 5 51 18 0 1 9 1 19 1 18 1 45 1 17 1 16 1 20 17 20 5 51 19 0 1 16 1 5 1 6 1 7 1 17 1 45 1 18 1 19 1 20 17 21 5 51 20 0 1 9 1 21 17 22 5 51 21 0 1 5 1 7 1 22 17 23 5 51 22 0 1 5 1 7 1 9 1 21 1 6 17 24 5 51 23 0 1 9 1 5 1 6 1 7 1 10 1 22 1 16 17 25 5 51 24 0 1 21 1 10 17 26 5 51 25 0 1 21 1 9 1 10 1 2 17 27 5 51 26 0 1 21 1 70 1 9 17 28 5 51 27 0 1 9 1 6 1 7 1 21 1 5 1 11 17 29 5 51 28 0 1 7 1 5 1 8 1 21 17 30 5 51 29 0 1 7 1 5 1 30 1 22 17 31 5 51 30 0 1 7 1 22 17 32 5 51 31 0 1 21 17 33 5 51 32 0 1 21 1 9 1 22 17 34 5 51 33 0 1 21 1 9 1 22 17 35 5 51 34 0 1 8 1 5 1 6 1 21 1 9 1 7 17 36 5 51 35 0 1 8 1 5 1 6 1 21 1 9 1 7 17 37 5 51 36 0 1 5 1 7 1 6 1 9 1 21 1 10 17 38 5 51 37 0 1 5 1 6 1 7 1 52 1 21 1 70 1 9 17 39 5 51 38 0 1 16 1 45 1 17 1 9 1 6 1 7 17 40 5 51 39 0 1 7 1 5 1 8 1 21 17 41 5 51 40 0 1 7 1 5 1 41 17 42 5 51 41 0 1 5 1 6 1 7 1 9 1 21 17 43 5 51 42 0 1 9 1 21 17 44 5 51 43 0 1 5 1 6 1 7 1 16 1 17 1 45 17 45 5 51 44 0 1 5 1 6 1 7 1 9 1 21 1 15 1 14 1 16 17 46 5 51 45 0 1 5 1 8 1 7 1 21 17 47 5 51 46 0 1 8 1 5 1 6 1 21 17 48 5 51 47 0 1 21 17 49 5 51 48 0 1 21 1 10 17 50 5 51 49 0 1 21 1 9 1 70 17 51 5 51 50 0 1 6 1 7 1 10 1 21 1 9 1 70 17 52 5 51 51 0 1 6 1 7 1 9 17 53 5 51 52 0 1 6 1 7 1 5 1 41 17 54 5 51 53 0 1 21 17 55 5 51 54 0 1 8 1 5 1 6 1 21 1 9 17 56 5 51 55 0 1 8 1 5 1 6 1 21 17 57 5 51 56 0 1 8 1 5 1 6 1 21 17 58 5 51 57 0 1 21 1 10 17 59 5 51 58 0 1 9 17 60 5 51 59 0 1 5 1 41 17 61 5 51 60 0 1 8 1 5 1 6 1 21 17 62 5 51 61 0 1 8 1 5 1 6 1 73 17 63 5 51 62 0 1 6 1 7 1 61 1 70 1 9 17 64 5 51 63 0 1 6 1 7 1 61 1 63 1 9 17 65 5 51 64 0 1 5 1 6 1 7 1 21 17 66 5 51 65 0 1 5 1 6 1 7 1 21 1 66 1 9 17 67 5 51 66 0 1 4 1 7 1 8 1 5 1 1 17 68 5 51 67 0 1 5 1 6 1 7 1 23 1 24 1 25 1 26 1 27 1 28 1 29 1 31 1 32 1 33 1 34 1 35 1 36 1 37 1 38 1 39 1 40 1 42 1 43 1 44 1 48 1 49 1 50 1 51 1 52 1 53 1 54 1 55 1 67 1 56 1 57 1 58 1 59 1 60 1 62 1 21 17 69 5 51 68 0 1 69 1 9 1 8 1 5 1 6 17 70 5 51 69 0 1 9 1 6 1 7 1 5 1 21 1 70 17 71 5 51 70 0 1 70 1 9 17 72 5 51 71 0 1 6 1 7 1 71 1 72 1 64 1 65 1 70 17 73 5 51 72 0 1 8 1 73 1 74 17 74 5 16 74 52 73 0 0 48 1 17 75 16 75 52 1 0 1 1 75 0 52 74 0 2 33 9 0 16 75 52 76 0 1 32 9 0 1 78 0 16 75 52 77 0 2 50)} "hs-compile" {:upvalue-count 0 :arity 1 :constants ("hs-parse" "hs-tokenize") :bytecode (20 0 0 20 1 0 16 0 48 1 16 0 49 2 50)}) :bytecode (51 1 0 128 0 0 5 51 3 0 128 2 0 50)))
diff --git a/spec/tests/test-hyperscript-behavioral.sx b/spec/tests/test-hyperscript-behavioral.sx
index 8fb5d0c4..745c786e 100644
--- a/spec/tests/test-hyperscript-behavioral.sx
+++ b/spec/tests/test-hyperscript-behavioral.sx
@@ -84,7 +84,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "bar" (dom-get-attr _el-div "foo"))
+ (assert= (dom-get-attr _el-div "foo") "bar")
))
(deftest "can add css properties"
(hs-cleanup!)
@@ -94,8 +94,8 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "red" (dom-get-style _el-div "color"))
- (assert= "monospace" (dom-get-style _el-div "fontFamily"))
+ (assert= (dom-get-style _el-div "color") "red")
+ (assert= (dom-get-style _el-div "fontFamily") "monospace")
))
(deftest "can add templated css properties"
(hs-cleanup!)
@@ -105,7 +105,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "red" (dom-get-style _el-div "color"))
+ (assert= (dom-get-style _el-div "color") "red")
))
(deftest "can add multiple class refs"
(hs-cleanup!)
@@ -224,7 +224,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "1,2,3,4" (dom-text-content _el-div))
+ (assert= (dom-text-content _el-div) "1,2,3,4")
))
(deftest "can add a value to a set"
(hs-cleanup!)
@@ -233,7 +233,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "2" (dom-text-content _el-div))
+ (assert= (dom-text-content _el-div) "2")
))
)
@@ -379,7 +379,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "1,2,4" (dom-text-content _el-div))
+ (assert= (dom-text-content _el-div) "1,2,4")
))
(deftest "can remove a value from a set"
(hs-cleanup!)
@@ -388,7 +388,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "2" (dom-text-content _el-div))
+ (assert= (dom-text-content _el-div) "2")
))
)
@@ -601,22 +601,22 @@
(deftest "can toggle between two attribute values"
(hs-cleanup!)
(let ((_el-div (dom-create-element "div")))
- ;; HS source has bare quotes — HTML parse artifact
+ ;; HS source has bare quotes or embedded HTML
(dom-append (dom-body) _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "inactive" (dom-get-attr _el-div "data-state"))
+ (assert= (dom-get-attr _el-div "data-state") "inactive")
(dom-dispatch _el-div "click" nil)
- (assert= "active" (dom-get-attr _el-div "data-state"))
+ (assert= (dom-get-attr _el-div "data-state") "active")
))
(deftest "can toggle between different attributes"
(hs-cleanup!)
(let ((_el-div (dom-create-element "div")))
- ;; HS source has bare quotes — HTML parse artifact
+ ;; HS source has bare quotes or embedded HTML
(dom-append (dom-body) _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "true" (dom-get-attr _el-div "disabled"))
+ (assert= (dom-get-attr _el-div "disabled") "true")
(dom-dispatch _el-div "click" nil)
- (assert= "true" (dom-get-attr _el-div "enabled"))
+ (assert= (dom-get-attr _el-div "enabled") "true")
))
(deftest "can toggle visibility"
(hs-cleanup!)
@@ -625,9 +625,9 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "hidden" (dom-get-style _el-div "visibility"))
+ (assert= (dom-get-style _el-div "visibility") "hidden")
(dom-dispatch _el-div "click" nil)
- (assert= "visible" (dom-get-style _el-div "visibility"))
+ (assert= (dom-get-style _el-div "visibility") "visible")
))
(deftest "can toggle opacity w/ my"
(hs-cleanup!)
@@ -636,9 +636,9 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "0" (dom-get-style _el-div "opacity"))
+ (assert= (dom-get-style _el-div "opacity") "0")
(dom-dispatch _el-div "click" nil)
- (assert= "1" (dom-get-style _el-div "opacity"))
+ (assert= (dom-get-style _el-div "opacity") "1")
))
(deftest "can toggle visibility w/ my"
(hs-cleanup!)
@@ -647,9 +647,9 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "hidden" (dom-get-style _el-div "visibility"))
+ (assert= (dom-get-style _el-div "visibility") "hidden")
(dom-dispatch _el-div "click" nil)
- (assert= "visible" (dom-get-style _el-div "visibility"))
+ (assert= (dom-get-style _el-div "visibility") "visible")
))
(deftest "can toggle opacity on other elt"
(hs-cleanup!)
@@ -672,29 +672,29 @@
(deftest "can toggle *display between two values"
(hs-cleanup!)
(let ((_el-div (dom-create-element "div")))
- ;; HS source has bare quotes — HTML parse artifact
+ ;; HS source has bare quotes or embedded HTML
(dom-append (dom-body) _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "flex" (dom-get-style _el-div "display"))
+ (assert= (dom-get-style _el-div "display") "flex")
(dom-dispatch _el-div "click" nil)
- (assert= "none" (dom-get-style _el-div "display"))
+ (assert= (dom-get-style _el-div "display") "none")
))
(deftest "can toggle *opacity between three values"
(hs-cleanup!)
(let ((_el-div (dom-create-element "div")))
- ;; HS source has bare quotes — HTML parse artifact
+ ;; HS source has bare quotes or embedded HTML
(dom-append (dom-body) _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "0.5" (dom-get-style _el-div "opacity"))
+ (assert= (dom-get-style _el-div "opacity") "0.5")
(dom-dispatch _el-div "click" nil)
- (assert= "1" (dom-get-style _el-div "opacity"))
+ (assert= (dom-get-style _el-div "opacity") "1")
(dom-dispatch _el-div "click" nil)
- (assert= "0" (dom-get-style _el-div "opacity"))
+ (assert= (dom-get-style _el-div "opacity") "0")
))
(deftest "can toggle a global variable between two values"
(hs-cleanup!)
(let ((_el-div (dom-create-element "div")))
- ;; HS source has bare quotes — HTML parse artifact
+ ;; HS source has bare quotes or embedded HTML
(dom-append (dom-body) _el-div)
(dom-dispatch _el-div "click" nil)
(dom-dispatch _el-div "click" nil)
@@ -703,7 +703,7 @@
(deftest "can toggle a global variable between three values"
(hs-cleanup!)
(let ((_el-div (dom-create-element "div")))
- ;; HS source has bare quotes — HTML parse artifact
+ ;; HS source has bare quotes or embedded HTML
(dom-append (dom-body) _el-div)
(dom-dispatch _el-div "click" nil)
(dom-dispatch _el-div "click" nil)
@@ -718,57 +718,64 @@
(hs-cleanup!)
(let ((_el-d1 (dom-create-element "div")))
(dom-set-attr _el-d1 "id" "d1")
- ;; HS source has bare quotes — HTML parse artifact
+ (dom-set-attr _el-d1 "_" "on click set #d1.innerHTML to \"foo\"")
(dom-append (dom-body) _el-d1)
+ (hs-activate! _el-d1)
(dom-dispatch _el-d1 "click" nil)
- (assert= "foo" (dom-inner-html _el-d1))
+ (assert= (dom-inner-html _el-d1) "foo")
))
(deftest "can set indirect properties"
(hs-cleanup!)
(let ((_el-d1 (dom-create-element "div")))
(dom-set-attr _el-d1 "id" "d1")
- ;; HS source has bare quotes — HTML parse artifact
+ (dom-set-attr _el-d1 "_" "on click set innerHTML of #d1 to \"foo\"")
(dom-append (dom-body) _el-d1)
+ (hs-activate! _el-d1)
(dom-dispatch _el-d1 "click" nil)
- (assert= "foo" (dom-inner-html _el-d1))
+ (assert= (dom-inner-html _el-d1) "foo")
))
(deftest "can set complex indirect properties lhs"
(hs-cleanup!)
(let ((_el-div (dom-create-element "div")))
- ;; HS source has bare quotes — HTML parse artifact
+ (dom-set-attr _el-div "_" "on click set parentNode.innerHTML of #d1 to \"foo\"")
(dom-append (dom-body) _el-div)
+ (hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "foo" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "foo")
))
(deftest "can set complex indirect properties rhs"
(hs-cleanup!)
(let ((_el-div (dom-create-element "div")))
- ;; HS source has bare quotes — HTML parse artifact
+ (dom-set-attr _el-div "_" "on click set innerHTML of #d1.parentNode to \"foo\"")
(dom-append (dom-body) _el-div)
+ (hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "foo" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "foo")
))
(deftest "can set chained indirect properties"
(hs-cleanup!)
(let ((_el-div (dom-create-element "div")))
- ;; HS source has bare quotes — HTML parse artifact
+ (dom-set-attr _el-div "_" "on click set the innerHTML of the parentNode of #d1 to \"foo\"")
(dom-append (dom-body) _el-div)
+ (hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "foo" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "foo")
))
(deftest "can set styles"
(hs-cleanup!)
(let ((_el-div (dom-create-element "div")))
- ;; HS source has bare quotes — HTML parse artifact
+ (dom-set-attr _el-div "_" "on click set my.style.color to \"red\"")
(dom-append (dom-body) _el-div)
+ (hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "red" (dom-get-style _el-div "color"))
+ (assert= (dom-get-style _el-div "color") "red")
))
(deftest "can set javascript globals"
(hs-cleanup!)
(let ((_el-div (dom-create-element "div")))
- ;; HS source has bare quotes — HTML parse artifact
+ (dom-set-attr _el-div "_" "on click set window.temp to \"red\"")
(dom-append (dom-body) _el-div)
+ (hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
;; SKIP check: skip window["temp"].should.equal("red")
))
@@ -780,37 +787,40 @@
(dom-append (dom-body) _el-d1)
(hs-activate! _el-d1)
(dom-dispatch _el-d1 "click" nil)
- (assert= "foo" (dom-inner-html _el-d1))
+ (assert= (dom-inner-html _el-d1) "foo")
))
(deftest "can set into id ref"
(hs-cleanup!)
(let ((_el-d1 (dom-create-element "div")))
(dom-set-attr _el-d1 "id" "d1")
- ;; HS source has bare quotes — HTML parse artifact
+ (dom-set-attr _el-d1 "_" "on click set #d1.innerHTML to \"foo\"")
(dom-append (dom-body) _el-d1)
+ (hs-activate! _el-d1)
(dom-dispatch _el-d1 "click" nil)
- (assert= "foo" (dom-inner-html _el-d1))
+ (assert= (dom-inner-html _el-d1) "foo")
))
(deftest "can set into class ref"
(hs-cleanup!)
(let ((_el-div (dom-create-element "div")) (_el-div1 (dom-create-element "div")))
(dom-add-class _el-div "divs")
- ;; HS source has bare quotes — HTML parse artifact
+ (dom-set-attr _el-div "_" "on click set .divs.innerHTML to \"foo\"")
(dom-append (dom-body) _el-div)
+ (hs-activate! _el-div)
(dom-add-class _el-div1 "divs")
(dom-append (dom-body) _el-div1)
(dom-dispatch _el-div "click" nil)
- (assert= "foo" (dom-inner-html _el-div))
- (assert= "foo" (dom-inner-html _el-div1))
+ (assert= (dom-inner-html _el-div) "foo")
+ (assert= (dom-inner-html _el-div1) "foo")
))
(deftest "can set into attribute ref"
(hs-cleanup!)
(let ((_el-div (dom-create-element "div")))
(dom-add-class _el-div "divs")
- ;; HS source has bare quotes — HTML parse artifact
+ (dom-set-attr _el-div "_" "on click set @bar to \"foo\"")
(dom-append (dom-body) _el-div)
+ (hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "foo" (dom-get-attr _el-div "bar"))
+ (assert= (dom-get-attr _el-div "bar") "foo")
))
(deftest "can set into indirect attribute ref"
(hs-cleanup!)
@@ -822,7 +832,7 @@
(dom-set-attr _el-div2 "id" "div2")
(dom-append (dom-body) _el-div2)
(dom-dispatch _el-div "click" nil)
- (assert= "foo" (dom-get-attr _el-div2 "bar"))
+ (assert= (dom-get-attr _el-div2 "bar") "foo")
))
(deftest "can set into indirect attribute ref 2"
(hs-cleanup!)
@@ -834,7 +844,7 @@
(dom-set-attr _el-div2 "id" "div2")
(dom-append (dom-body) _el-div2)
(dom-dispatch _el-div "click" nil)
- (assert= "foo" (dom-get-attr _el-div2 "bar"))
+ (assert= (dom-get-attr _el-div2 "bar") "foo")
))
(deftest "can set into indirect attribute ref 3"
(hs-cleanup!)
@@ -846,14 +856,15 @@
(dom-set-attr _el-div2 "id" "div2")
(dom-append (dom-body) _el-div2)
(dom-dispatch _el-div "click" nil)
- (assert= "foo" (dom-get-attr _el-div2 "bar"))
+ (assert= (dom-get-attr _el-div2 "bar") "foo")
))
(deftest "can set into style ref"
(hs-cleanup!)
(let ((_el-div (dom-create-element "div")))
(dom-add-class _el-div "divs")
- ;; HS source has bare quotes — HTML parse artifact
+ (dom-set-attr _el-div "_" "on click set *color to \"red\"")
(dom-append (dom-body) _el-div)
+ (hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
;; SKIP check: skip d1.style["color"].should.equal("red")
))
@@ -901,7 +912,7 @@
(dom-append (dom-body) _el-d1)
(hs-activate! _el-d1)
(dom-dispatch _el-d1 "click" nil)
- (assert= "foo" (dom-inner-html _el-d1))
+ (assert= (dom-inner-html _el-d1) "foo")
))
(deftest "can set many properties at once with object literal"
(hs-cleanup!)
@@ -914,18 +925,20 @@
(deftest "can set props w/ array access syntax"
(hs-cleanup!)
(let ((_el-div (dom-create-element "div")))
- ;; HS source has bare quotes — HTML parse artifact
+ (dom-set-attr _el-div "_" "on click set my style[\"color\"] to \"red\"")
(dom-append (dom-body) _el-div)
+ (hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "red" (dom-get-style _el-div "color"))
+ (assert= (dom-get-style _el-div "color") "red")
))
(deftest "can set props w/ array access syntax and var"
(hs-cleanup!)
(let ((_el-div (dom-create-element "div")))
- ;; HS source has bare quotes — HTML parse artifact
+ (dom-set-attr _el-div "_" "on click set foo to \"color\" then set my style[foo] to \"red\"")
(dom-append (dom-body) _el-div)
+ (hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "red" (dom-get-style _el-div "color"))
+ (assert= (dom-get-style _el-div "color") "red")
))
(deftest "can set arrays w/ array access syntax"
(hs-cleanup!)
@@ -934,7 +947,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "red" (dom-get-style _el-div "color"))
+ (assert= (dom-get-style _el-div "color") "red")
))
(deftest "can set arrays w/ array access syntax and var"
(hs-cleanup!)
@@ -943,7 +956,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "red" (dom-get-style _el-div "color"))
+ (assert= (dom-get-style _el-div "color") "red")
))
(deftest "handles set url regression properly"
(hs-cleanup!)
@@ -966,7 +979,7 @@
(dom-append (dom-body) _el-d1)
(hs-activate! _el-d1)
(dom-dispatch _el-d1 "click" nil)
- (assert= "foo" (dom-inner-html _el-d1))
+ (assert= (dom-inner-html _el-d1) "foo")
))
(deftest "can put directly into nodes"
(hs-cleanup!)
@@ -976,7 +989,7 @@
(dom-append (dom-body) _el-d1)
(hs-activate! _el-d1)
(dom-dispatch _el-d1 "click" nil)
- (assert= "foo" (dom-text-content _el-d1))
+ (assert= (dom-text-content _el-d1) "foo")
))
(deftest "can put nodes into nodes"
(hs-cleanup!)
@@ -997,7 +1010,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "foo" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "foo")
))
(deftest "me symbol doesn't get stomped on direct write"
(hs-cleanup!)
@@ -1006,7 +1019,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "bar" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "bar")
))
(deftest "can set styles"
(hs-cleanup!)
@@ -1015,7 +1028,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "red" (dom-get-style _el-div "color"))
+ (assert= (dom-get-style _el-div "color") "red")
))
(deftest "can set javascript globals"
(hs-cleanup!)
@@ -1037,8 +1050,8 @@
(dom-set-attr _el-d2 "id" "d2")
(dom-append (dom-body) _el-d2)
(dom-dispatch _el-div "click" nil)
- (assert= "foo" (dom-text-content _el-d1))
- (assert= "foo" (dom-text-content _el-d2))
+ (assert= (dom-text-content _el-d1) "foo")
+ (assert= (dom-text-content _el-d2) "foo")
))
(deftest "can set into class ref w/ flatmapped property using of"
(hs-cleanup!)
@@ -1051,8 +1064,8 @@
(dom-set-attr _el-d2 "id" "d2")
(dom-append (dom-body) _el-d2)
(dom-dispatch _el-div "click" nil)
- (assert= "foo" (dom-text-content _el-d1))
- (assert= "foo" (dom-text-content _el-d2))
+ (assert= (dom-text-content _el-d1) "foo")
+ (assert= (dom-text-content _el-d2) "foo")
))
(deftest "can set local variables"
(hs-cleanup!)
@@ -1062,7 +1075,7 @@
(dom-append (dom-body) _el-d1)
(hs-activate! _el-d1)
(dom-dispatch _el-d1 "click" nil)
- (assert= "foo" (dom-inner-html _el-d1))
+ (assert= (dom-inner-html _el-d1) "foo")
))
(deftest "can set into id ref"
(hs-cleanup!)
@@ -1072,7 +1085,7 @@
(dom-append (dom-body) _el-d1)
(hs-activate! _el-d1)
(dom-dispatch _el-d1 "click" nil)
- (assert= "foo" (dom-inner-html _el-d1))
+ (assert= (dom-inner-html _el-d1) "foo")
))
(deftest "can insert before"
(hs-cleanup!)
@@ -1106,7 +1119,7 @@
(dom-append (dom-body) _el-d1)
(hs-activate! _el-d1)
(dom-dispatch _el-d1 "click" nil)
- (assert= "foo*" (dom-text-content _el-d1))
+ (assert= (dom-text-content _el-d1) "foo*")
))
(deftest "can insert before end"
(hs-cleanup!)
@@ -1116,7 +1129,7 @@
(dom-append (dom-body) _el-d1)
(hs-activate! _el-d1)
(dom-dispatch _el-d1 "click" nil)
- (assert= "*foo" (dom-text-content _el-d1))
+ (assert= (dom-text-content _el-d1) "*foo")
))
(deftest "can set into attribute ref"
(hs-cleanup!)
@@ -1126,7 +1139,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "foo" (dom-get-attr _el-div "bar"))
+ (assert= (dom-get-attr _el-div "bar") "foo")
))
(deftest "can set into indirect attribute ref"
(hs-cleanup!)
@@ -1136,7 +1149,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "foo" (dom-get-attr _el-div "bar"))
+ (assert= (dom-get-attr _el-div "bar") "foo")
))
(deftest "can set into indirect attribute ref 2"
(hs-cleanup!)
@@ -1148,7 +1161,7 @@
(dom-set-attr _el-div2 "id" "div2")
(dom-append (dom-body) _el-div2)
(dom-dispatch _el-div "click" nil)
- (assert= "foo" (dom-get-attr _el-div2 "bar"))
+ (assert= (dom-get-attr _el-div2 "bar") "foo")
))
(deftest "can set into indirect attribute ref 3"
(hs-cleanup!)
@@ -1160,7 +1173,7 @@
(dom-set-attr _el-div2 "id" "div2")
(dom-append (dom-body) _el-div2)
(dom-dispatch _el-div "click" nil)
- (assert= "foo" (dom-get-attr _el-div2 "bar"))
+ (assert= (dom-get-attr _el-div2 "bar") "foo")
))
(deftest "can set into style ref"
(hs-cleanup!)
@@ -1214,7 +1227,7 @@
(dom-append (dom-body) _el-d1)
(hs-activate! _el-d1)
(dom-dispatch _el-d1 "click" nil)
- (assert= "foo" (dom-inner-html _el-d1))
+ (assert= (dom-inner-html _el-d1) "foo")
))
(deftest "can put properties w/ array access syntax"
(hs-cleanup!)
@@ -1223,7 +1236,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "red" (dom-get-style _el-div "color"))
+ (assert= (dom-get-style _el-div "color") "red")
))
(deftest "can put properties w/ array access syntax and var"
(hs-cleanup!)
@@ -1232,7 +1245,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "red" (dom-get-style _el-div "color"))
+ (assert= (dom-get-style _el-div "color") "red")
))
(deftest "can put array vals w/ array access syntax"
(hs-cleanup!)
@@ -1241,7 +1254,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "red" (dom-get-style _el-div "color"))
+ (assert= (dom-get-style _el-div "color") "red")
))
(deftest "can put array vals w/ array access syntax and var"
(hs-cleanup!)
@@ -1250,7 +1263,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "red" (dom-get-style _el-div "color"))
+ (assert= (dom-get-style _el-div "color") "red")
))
(deftest "properly processes hyperscript in new content in a symbol write"
(hs-cleanup!)
@@ -1260,7 +1273,7 @@
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
(dom-dispatch _el-div "click" nil)
- (assert= "42" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "42")
))
(deftest "properly processes hyperscript in new content in a element target"
(hs-cleanup!)
@@ -1271,7 +1284,7 @@
(hs-activate! _el-d1)
(dom-dispatch _el-d1 "click" nil)
(dom-dispatch _el-d1 "click" nil)
- (assert= "42" (dom-inner-html _el-d1))
+ (assert= (dom-inner-html _el-d1) "42")
))
(deftest "properly processes hyperscript in before"
(hs-cleanup!)
@@ -1282,7 +1295,7 @@
(hs-activate! _el-d1)
(dom-dispatch _el-d1 "click" nil)
(dom-dispatch _el-d1 "click" nil)
- (assert= "42" (dom-inner-html _el-d1))
+ (assert= (dom-inner-html _el-d1) "42")
))
(deftest "properly processes hyperscript at start of"
(hs-cleanup!)
@@ -1293,7 +1306,7 @@
(hs-activate! _el-d1)
(dom-dispatch _el-d1 "click" nil)
(dom-dispatch _el-d1 "click" nil)
- (assert= "42" (dom-inner-html _el-d1))
+ (assert= (dom-inner-html _el-d1) "42")
))
(deftest "properly processes hyperscript at end of"
(hs-cleanup!)
@@ -1304,7 +1317,7 @@
(hs-activate! _el-d1)
(dom-dispatch _el-d1 "click" nil)
(dom-dispatch _el-d1 "click" nil)
- (assert= "42" (dom-inner-html _el-d1))
+ (assert= (dom-inner-html _el-d1) "42")
))
(deftest "properly processes hyperscript after"
(hs-cleanup!)
@@ -1315,7 +1328,7 @@
(hs-activate! _el-d1)
(dom-dispatch _el-d1 "click" nil)
(dom-dispatch _el-d1 "click" nil)
- (assert= "42" (dom-inner-html _el-d1))
+ (assert= (dom-inner-html _el-d1) "42")
))
(deftest "is null tolerant"
(hs-cleanup!)
@@ -1344,7 +1357,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "1,2,3" (dom-text-content _el-div))
+ (assert= (dom-text-content _el-div) "1,2,3")
))
(deftest "can put at end of an array"
(hs-cleanup!)
@@ -1353,7 +1366,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "1,2,3" (dom-text-content _el-div))
+ (assert= (dom-text-content _el-div) "1,2,3")
))
)
@@ -1492,8 +1505,8 @@
(dom-append (dom-body) _el-trigger)
(hs-activate! _el-trigger)
(dom-dispatch (dom-query-by-id "trigger") "click" nil)
- (assert= "none" (dom-get-style (dom-query-by-id "d1") "display"))
- (assert= "block" (dom-get-style (dom-query-by-id "d2") "display"))
+ (assert= (dom-get-style (dom-query-by-id "d1") "display") "none")
+ (assert= (dom-get-style (dom-query-by-id "d2") "display") "block")
))
)
@@ -1506,7 +1519,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "foo" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "foo")
))
(deftest "basic true branch works with multiple commands"
(hs-cleanup!)
@@ -1515,7 +1528,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "foo" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "foo")
))
(deftest "basic true branch works with end"
(hs-cleanup!)
@@ -1524,7 +1537,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "foo" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "foo")
))
(deftest "basic true branch works with naked else"
(hs-cleanup!)
@@ -1533,7 +1546,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "foo" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "foo")
))
(deftest "basic true branch works with naked else end"
(hs-cleanup!)
@@ -1542,7 +1555,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "foo" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "foo")
))
(deftest "basic else branch works"
(hs-cleanup!)
@@ -1551,7 +1564,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "foo" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "foo")
))
(deftest "basic else branch works with end"
(hs-cleanup!)
@@ -1560,7 +1573,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "foo" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "foo")
))
(deftest "basic else if branch works"
(hs-cleanup!)
@@ -1569,7 +1582,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "foo" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "foo")
))
(deftest "basic else if branch works with end"
(hs-cleanup!)
@@ -1578,7 +1591,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "foo" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "foo")
))
(deftest "otherwise alias works"
(hs-cleanup!)
@@ -1587,7 +1600,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "foo" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "foo")
))
(deftest "triple else if branch works"
(hs-cleanup!)
@@ -1596,7 +1609,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "foo" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "foo")
))
(deftest "triple else if branch works with end"
(hs-cleanup!)
@@ -1605,7 +1618,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "foo" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "foo")
))
(deftest "basic else branch works with multiple commands"
(hs-cleanup!)
@@ -1614,7 +1627,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "foo" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "foo")
))
(deftest "true branch with a wait works"
(hs-cleanup!)
@@ -1623,7 +1636,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "foo" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "foo")
))
(deftest "false branch with a wait works"
(hs-cleanup!)
@@ -1632,7 +1645,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "foo" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "foo")
))
(deftest "if properly passes execution along if child is not executed"
(hs-cleanup!)
@@ -1641,7 +1654,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "foo" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "foo")
))
(deftest "if properly supports nested if statements and end block"
(hs-cleanup!)
@@ -1651,7 +1664,7 @@
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
(dom-dispatch _el-div "click" nil)
- (assert= "foo" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "foo")
))
(deftest "if on new line does not join w/ else"
(hs-cleanup!)
@@ -1661,7 +1674,7 @@
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
(dom-dispatch _el-div "click" nil)
- (assert= "" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "")
))
(deftest "passes the sieve test"
(error "NOT IMPLEMENTED: test HTML could not be parsed into SX"))
@@ -1672,11 +1685,11 @@
(deftest "basic for loop works"
(hs-cleanup!)
(let ((_el-div (dom-create-element "div")))
- (dom-set-attr _el-div "_" "on click repeat for x in [1, 2, 3] then put x at end of me end")
+ (dom-set-attr _el-div "_" "on click repeat for x in [1, 2, 3] put x at end of me end")
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "123" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "123")
))
(deftest "basic for loop with null works"
(hs-cleanup!)
@@ -1685,7 +1698,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "")
))
(deftest "waiting in for loop works"
(hs-cleanup!)
@@ -1694,16 +1707,16 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "123" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "123")
))
(deftest "basic raw for loop works"
(hs-cleanup!)
(let ((_el-div (dom-create-element "div")))
- (dom-set-attr _el-div "_" "on click for x in [1, 2, 3] then put x at end of me end")
+ (dom-set-attr _el-div "_" "on click for x in [1, 2, 3] put x at end of me end")
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "123" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "123")
))
(deftest "basic raw for loop works"
(hs-cleanup!)
@@ -1712,7 +1725,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "")
))
(deftest "waiting in raw for loop works"
(hs-cleanup!)
@@ -1721,7 +1734,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "123" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "123")
))
(deftest "repeat forever works"
(hs-cleanup!)
@@ -1733,7 +1746,7 @@
(dom-append (dom-body) _el-d1)
(hs-activate! _el-d1)
(dom-dispatch _el-d1 "click" nil)
- (assert= "5" (dom-inner-html _el-d1))
+ (assert= (dom-inner-html _el-d1) "5")
))
(deftest "repeat forever works w/o keyword"
(hs-cleanup!)
@@ -1745,16 +1758,16 @@
(dom-append (dom-body) _el-d1)
(hs-activate! _el-d1)
(dom-dispatch _el-d1 "click" nil)
- (assert= "5" (dom-inner-html _el-d1))
+ (assert= (dom-inner-html _el-d1) "5")
))
(deftest "basic in loop works"
(hs-cleanup!)
(let ((_el-div (dom-create-element "div")))
- (dom-set-attr _el-div "_" "on click repeat in [1, 2, 3] then put it at end of me end")
+ (dom-set-attr _el-div "_" "on click repeat in [1, 2, 3] put it at end of me end")
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "123" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "123")
))
(deftest "index syntax works"
(hs-cleanup!)
@@ -1763,7 +1776,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "a0ab1abc2" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "a0ab1abc2")
))
(deftest "indexed by syntax works"
(hs-cleanup!)
@@ -1772,7 +1785,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "a0ab1abc2" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "a0ab1abc2")
))
(deftest "while keyword works"
(hs-cleanup!)
@@ -1784,7 +1797,7 @@
(dom-append (dom-body) _el-d1)
(hs-activate! _el-d1)
(dom-dispatch _el-d1 "click" nil)
- (assert= "5" (dom-inner-html _el-d1))
+ (assert= (dom-inner-html _el-d1) "5")
))
(deftest "until keyword works"
(hs-cleanup!)
@@ -1796,7 +1809,7 @@
(dom-append (dom-body) _el-d1)
(hs-activate! _el-d1)
(dom-dispatch _el-d1 "click" nil)
- (assert= "5" (dom-inner-html _el-d1))
+ (assert= (dom-inner-html _el-d1) "5")
))
(deftest "until event keyword works"
(hs-cleanup!)
@@ -1818,7 +1831,7 @@
(dom-append (dom-body) _el-d1)
(hs-activate! _el-d1)
(dom-dispatch _el-d1 "click" nil)
- (assert= "3" (dom-inner-html _el-d1))
+ (assert= (dom-inner-html _el-d1) "3")
;; SKIP check: skip window.called.should.equal(1)
))
(deftest "can nest loops"
@@ -1831,43 +1844,43 @@
(dom-append (dom-body) _el-d1)
(hs-activate! _el-d1)
(dom-dispatch _el-d1 "click" nil)
- (assert= "123246369" (dom-inner-html _el-d1))
+ (assert= (dom-inner-html _el-d1) "123246369")
))
(deftest "basic times loop works"
(hs-cleanup!)
(let ((_el-div (dom-create-element "div")))
- (dom-set-attr _el-div "_" "on click repeat 3 times then put \"a\" at end of me end")
+ (dom-set-attr _el-div "_" "on click repeat 3 times put \"a\" at end of me end")
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "aaa" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "aaa")
))
(deftest "times loop with expression works"
(hs-cleanup!)
(let ((_el-div (dom-create-element "div")))
- (dom-set-attr _el-div "_" "on click repeat 3 + 3 times then put \"a\" at end of me end")
+ (dom-set-attr _el-div "_" "on click repeat 3 + 3 times put \"a\" at end of me end")
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "aaaaaa" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "aaaaaa")
))
(deftest "loop continue works"
(hs-cleanup!)
(let ((_el-div (dom-create-element "div")))
- (dom-set-attr _el-div "_" "on click repeat 2 times then for x in ['A', 'B', 'C', 'D'] then if (x != 'D') then put 'success ' + x + '. ' at end of me then continue then put 'FAIL!!. ' at end of me then end then put 'expected D. ' at end of me then end then end then")
+ (dom-set-attr _el-div "_" "on click repeat 2 times for x in ['A', 'B', 'C', 'D'] if (x != 'D') then put 'success ' + x + '. ' at end of me then continue then put 'FAIL!!. ' at end of me then end then put 'expected D. ' at end of me then end then end then")
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "success A. success B. success C. expected D. success A. success B. success C. expected D. " (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "success A. success B. success C. expected D. success A. success B. success C. expected D. ")
))
(deftest "loop break works"
(hs-cleanup!)
(let ((_el-div (dom-create-element "div")))
- (dom-set-attr _el-div "_" "on click repeat 2 times then for x in ['A', 'B', 'C', 'D'] then if x is 'C' then break then end then put x at end of me then end then end then")
+ (dom-set-attr _el-div "_" "on click repeat 2 times for x in ['A', 'B', 'C', 'D'] if x is 'C' then break then end then put x at end of me then end then end then")
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "ABAB" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "ABAB")
))
(deftest "basic raw for loop with null works"
(hs-cleanup!)
@@ -1876,7 +1889,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "" (dom-text-content _el-div))
+ (assert= (dom-text-content _el-div) "")
))
(deftest "basic property for loop works"
(hs-cleanup!)
@@ -1885,7 +1898,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "123" (dom-text-content _el-div))
+ (assert= (dom-text-content _el-div) "123")
))
(deftest "bottom-tested repeat until"
(hs-cleanup!)
@@ -1894,7 +1907,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "3" (dom-text-content _el-div))
+ (assert= (dom-text-content _el-div) "3")
))
(deftest "bottom-tested repeat while"
(hs-cleanup!)
@@ -1903,7 +1916,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "3" (dom-text-content _el-div))
+ (assert= (dom-text-content _el-div) "3")
))
(deftest "bottom-tested loop always runs at least once"
(hs-cleanup!)
@@ -1912,34 +1925,34 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "1" (dom-text-content _el-div))
+ (assert= (dom-text-content _el-div) "1")
))
(deftest "break exits a simple repeat loop"
(hs-cleanup!)
(let ((_el-div (dom-create-element "div")))
- (dom-set-attr _el-div "_" "on click set x to 0 then repeat 10 times then set x to x + 1 then if x is 3 break end then end then put x into me then")
+ (dom-set-attr _el-div "_" "on click set x to 0 then repeat 10 times set x to x + 1 then if x is 3 break end then end then put x into me then")
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "3" (dom-text-content _el-div))
+ (assert= (dom-text-content _el-div) "3")
))
(deftest "continue skips rest of iteration in simple repeat loop"
(hs-cleanup!)
(let ((_el-div (dom-create-element "div")))
- (dom-set-attr _el-div "_" "on click repeat for x in [1, 2, 3, 4, 5] then if x is 3 continue end then put x at end of me then end then")
+ (dom-set-attr _el-div "_" "on click repeat for x in [1, 2, 3, 4, 5] if x is 3 continue end then put x at end of me then end then")
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "1245" (dom-text-content _el-div))
+ (assert= (dom-text-content _el-div) "1245")
))
(deftest "break exits a for-in loop"
(hs-cleanup!)
(let ((_el-div (dom-create-element "div")))
- (dom-set-attr _el-div "_" "on click repeat for x in [1, 2, 3, 4, 5] then if x is 4 break end then put x at end of me then end then")
+ (dom-set-attr _el-div "_" "on click repeat for x in [1, 2, 3, 4, 5] if x is 4 break end then put x at end of me then end then")
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "123" (dom-text-content _el-div))
+ (assert= (dom-text-content _el-div) "123")
))
(deftest "break exits a while loop"
(hs-cleanup!)
@@ -1948,7 +1961,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "5" (dom-text-content _el-div))
+ (assert= (dom-text-content _el-div) "5")
))
(deftest "for loop over undefined skips without error"
(hs-cleanup!)
@@ -1957,7 +1970,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "done" (dom-text-content _el-div))
+ (assert= (dom-text-content _el-div) "done")
))
)
@@ -1992,7 +2005,7 @@
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
(dom-dispatch _el-div "foo" nil)
- (assert= "hyperscript is hyper cool" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "hyperscript is hyper cool")
))
(deftest "can destructure properties in a wait"
(hs-cleanup!)
@@ -2002,7 +2015,7 @@
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
(dom-dispatch _el-div "foo" nil)
- (assert= "bar" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "bar")
))
(deftest "can wait on event on another element"
(hs-cleanup!)
@@ -2085,7 +2098,7 @@
(hs-activate! _el-bar)
(dom-dispatch _el-div "click" nil)
(assert (not (dom-has-class? _el-bar "foo-sent")))
- (assert= "42" (dom-inner-html _el-bar))
+ (assert= (dom-inner-html _el-bar) "42")
))
(deftest "can send events with dots"
(hs-cleanup!)
@@ -2112,7 +2125,7 @@
(hs-activate! _el-bar)
(dom-dispatch _el-div "click" nil)
(assert (not (dom-has-class? _el-bar "foo-sent")))
- (assert= "42" (dom-inner-html _el-bar))
+ (assert= (dom-inner-html _el-bar) "42")
))
(deftest "can send events with colons"
(hs-cleanup!)
@@ -2139,7 +2152,7 @@
(hs-activate! _el-bar)
(dom-dispatch _el-div "click" nil)
(assert (not (dom-has-class? _el-bar "foo-sent")))
- (assert= "42" (dom-inner-html _el-bar))
+ (assert= (dom-inner-html _el-bar) "42")
))
(deftest "can send events to any expression"
(hs-cleanup!)
@@ -2234,8 +2247,8 @@
(dom-add-class _el-div2 "div")
(dom-append (dom-body) _el-div2)
(dom-dispatch _el-div1 "click" nil)
- (assert= "bar" (dom-get-attr _el-div "data-foo"))
- (assert= "" (dom-get-attr _el-div1 "data-foo"))
+ (assert= (dom-get-attr _el-div "data-foo") "bar")
+ (assert= (dom-get-attr _el-div1 "data-foo") "")
;; SKIP check: skip assert.isNull(d2.getAttribute("data-foo")
;; SKIP check: skip assert.isNull(d3.getAttribute("data-foo")
;; SKIP check: skip assert.isNull(d1.getAttribute("data-foo")
@@ -2253,8 +2266,8 @@
(dom-add-class _el-div2 "div")
(dom-append (dom-body) _el-div2)
(dom-dispatch _el-div1 "click" nil)
- (assert= "bar" (dom-get-attr _el-div "data-foo"))
- (assert= "baz" (dom-get-attr _el-div1 "data-foo"))
+ (assert= (dom-get-attr _el-div "data-foo") "bar")
+ (assert= (dom-get-attr _el-div1 "data-foo") "baz")
;; SKIP check: skip assert.isNull(d2.getAttribute("data-foo")
;; SKIP check: skip assert.isNull(d3.getAttribute("data-foo")
;; SKIP check: skip assert.isNull(d1.getAttribute("data-foo")
@@ -2272,9 +2285,9 @@
(dom-add-class _el-div2 "div")
(dom-append (dom-body) _el-div2)
(dom-dispatch _el-div1 "click" nil)
- (assert= "qux" (dom-get-attr _el-div "data-foo"))
- (assert= "baz" (dom-get-attr _el-div1 "data-foo"))
- (assert= "qux" (dom-get-attr _el-div2 "data-foo"))
+ (assert= (dom-get-attr _el-div "data-foo") "qux")
+ (assert= (dom-get-attr _el-div1 "data-foo") "baz")
+ (assert= (dom-get-attr _el-div2 "data-foo") "qux")
;; SKIP check: skip assert.isNull(d2.getAttribute("data-foo")
;; SKIP check: skip assert.isNull(d3.getAttribute("data-foo")
))
@@ -2292,9 +2305,9 @@
(dom-add-class _el-div2 "div")
(dom-append (dom-body) _el-div2)
(dom-dispatch _el-div1 "click" nil)
- (assert= "qux" (dom-get-attr _el-div "data-foo"))
- (assert= "baz" (dom-get-attr _el-div1 "data-foo"))
- (assert= "qux" (dom-get-attr _el-div2 "data-foo"))
+ (assert= (dom-get-attr _el-div "data-foo") "qux")
+ (assert= (dom-get-attr _el-div1 "data-foo") "baz")
+ (assert= (dom-get-attr _el-div2 "data-foo") "qux")
;; SKIP check: skip assert.isNull(d3.getAttribute("data-foo")
))
(deftest "can take an attribute for other elements"
@@ -2311,8 +2324,8 @@
(dom-add-class _el-d3 "div")
(dom-append (dom-body) _el-d3)
(dom-dispatch _el-div1 "click" nil)
- (assert= "bar" (dom-get-attr _el-div "data-foo"))
- (assert= "" (dom-get-attr _el-d3 "data-foo"))
+ (assert= (dom-get-attr _el-div "data-foo") "bar")
+ (assert= (dom-get-attr _el-d3 "data-foo") "")
;; SKIP check: skip assert.isNull(d2.getAttribute("data-foo")
;; SKIP check: skip assert.isNull(d3.getAttribute("data-foo")
;; SKIP check: skip assert.isNull(d1.getAttribute("data-foo")
@@ -2324,8 +2337,8 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch (dom-query-by-id "d2") "click" nil)
- (assert= "bar" (dom-get-attr _el-div "data-foo"))
- (assert= "" (dom-get-attr (dom-query-by-id "d2") "data-foo"))
+ (assert= (dom-get-attr _el-div "data-foo") "bar")
+ (assert= (dom-get-attr (dom-query-by-id "d2") "data-foo") "")
;; SKIP check: skip assert.isNull(d2.getAttribute("data-foo")
;; SKIP check: skip assert.isNull(d3.getAttribute("data-foo")
;; SKIP check: skip assert.isNull(d1.getAttribute("data-foo")
@@ -2384,7 +2397,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "100px" (dom-get-style _el-div "width"))
+ (assert= (dom-get-style _el-div "width") "100px")
))
(deftest "can transition with parameterized values"
(hs-cleanup!)
@@ -2393,7 +2406,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "100px" (dom-get-style _el-div "width"))
+ (assert= (dom-get-style _el-div "width") "100px")
))
(deftest "can transition a single property on form"
(hs-cleanup!)
@@ -2402,7 +2415,7 @@
(dom-append (dom-body) _el-form)
(hs-activate! _el-form)
(dom-dispatch _el-form "click" nil)
- (assert= "100px" (dom-get-style _el-form "width"))
+ (assert= (dom-get-style _el-form "width") "100px")
))
(deftest "can transition a single property on current element with the my prefix"
(hs-cleanup!)
@@ -2411,7 +2424,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "100px" (dom-get-style _el-div "width"))
+ (assert= (dom-get-style _el-div "width") "100px")
))
(deftest "can transition two properties on current element"
(hs-cleanup!)
@@ -2420,8 +2433,8 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "100px" (dom-get-style _el-div "width"))
- (assert= "100px" (dom-get-style _el-div "height"))
+ (assert= (dom-get-style _el-div "width") "100px")
+ (assert= (dom-get-style _el-div "height") "100px")
))
(deftest "can transition on another element"
(hs-cleanup!)
@@ -2432,7 +2445,7 @@
(dom-set-attr _el-foo "id" "foo")
(dom-append (dom-body) _el-foo)
(dom-dispatch _el-div "click" nil)
- (assert= "100px" (dom-get-style _el-foo "width"))
+ (assert= (dom-get-style _el-foo "width") "100px")
))
(deftest "can transition on another element no element prefix"
(hs-cleanup!)
@@ -2443,7 +2456,7 @@
(dom-set-attr _el-foo "id" "foo")
(dom-append (dom-body) _el-foo)
(dom-dispatch _el-div "click" nil)
- (assert= "100px" (dom-get-style _el-foo "width"))
+ (assert= (dom-get-style _el-foo "width") "100px")
))
(deftest "can transition on another element no element prefix + possessive"
(hs-cleanup!)
@@ -2454,7 +2467,7 @@
(dom-set-attr _el-foo "id" "foo")
(dom-append (dom-body) _el-foo)
(dom-dispatch _el-div "click" nil)
- (assert= "100px" (dom-get-style _el-foo "width"))
+ (assert= (dom-get-style _el-foo "width") "100px")
))
(deftest "can transition on another element no element prefix with it"
(hs-cleanup!)
@@ -2465,17 +2478,18 @@
(dom-set-attr _el-foo "id" "foo")
(dom-append (dom-body) _el-foo)
(dom-dispatch _el-div "click" nil)
- (assert= "100px" (dom-get-style _el-foo "width"))
+ (assert= (dom-get-style _el-foo "width") "100px")
))
(deftest "can transition with a custom transition time"
(hs-cleanup!)
(let ((_el-div (dom-create-element "div")) (_el-foo (dom-create-element "div")))
- ;; HS source has bare quotes — HTML parse artifact
+ (dom-set-attr _el-div "_" "on click transition element #foo width from 0px to 100px using \"width 2s ease-in\"")
(dom-append (dom-body) _el-div)
+ (hs-activate! _el-div)
(dom-set-attr _el-foo "id" "foo")
(dom-append (dom-body) _el-foo)
(dom-dispatch _el-div "click" nil)
- (assert= "100px" (dom-get-style _el-foo "width"))
+ (assert= (dom-get-style _el-foo "width") "100px")
))
(deftest "can transition with a custom transition time via the over syntax"
(hs-cleanup!)
@@ -2486,7 +2500,7 @@
(dom-set-attr _el-foo "id" "foo")
(dom-append (dom-body) _el-foo)
(dom-dispatch _el-div "click" nil)
- (assert= "100px" (dom-get-style _el-foo "width"))
+ (assert= (dom-get-style _el-foo "width") "100px")
))
(deftest "can transition a single property on current element using style ref"
(hs-cleanup!)
@@ -2495,7 +2509,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "100px" (dom-get-style _el-div "width"))
+ (assert= (dom-get-style _el-div "width") "100px")
))
(deftest "can transition a single property on form using style ref"
(hs-cleanup!)
@@ -2504,7 +2518,7 @@
(dom-append (dom-body) _el-form)
(hs-activate! _el-form)
(dom-dispatch _el-form "click" nil)
- (assert= "100px" (dom-get-style _el-form "width"))
+ (assert= (dom-get-style _el-form "width") "100px")
))
(deftest "can transition a single property on current element with the my prefix using style ref"
(hs-cleanup!)
@@ -2513,7 +2527,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "100px" (dom-get-style _el-div "width"))
+ (assert= (dom-get-style _el-div "width") "100px")
))
(deftest "can use initial to transition to original value"
(hs-cleanup!)
@@ -2524,7 +2538,7 @@
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
(dom-dispatch _el-div "click" nil)
- (assert= "10px" (dom-get-style _el-div "width"))
+ (assert= (dom-get-style _el-div "width") "10px")
))
(deftest "can transition on another element with of syntax"
(hs-cleanup!)
@@ -2556,8 +2570,9 @@
(deftest "can transition with a custom transition string"
(hs-cleanup!)
(let ((_el-div (dom-create-element "div")) (_el-foo (dom-create-element "div")))
- ;; HS source has bare quotes — HTML parse artifact
+ (dom-set-attr _el-div "_" "on click transition #foo's *width from 0px to 100px using \"width 2s ease-in\"")
(dom-append (dom-body) _el-div)
+ (hs-activate! _el-div)
(dom-set-attr _el-foo "id" "foo")
(dom-append (dom-body) _el-foo)
))
@@ -2580,11 +2595,11 @@
(deftest "can transition on query ref with of syntax"
(hs-cleanup!)
(let ((_el-div (dom-create-element "div")) (_el-span (dom-create-element "span")))
- ;; HS source has bare quotes — HTML parse artifact
+ ;; HS source has bare quotes or embedded HTML
(dom-append (dom-body) _el-div)
(dom-append (dom-body) _el-span)
(dom-dispatch _el-div "click" nil)
- (assert= "100px" (dom-get-style _el-span "width"))
+ (assert= (dom-get-style _el-span "width") "100px")
))
)
@@ -2693,7 +2708,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "yay" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "yay")
))
(deftest "can do a simple fetch w/ a naked URL"
(hs-cleanup!)
@@ -2702,7 +2717,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "yay" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "yay")
))
(deftest "can do a simple fetch w/ html"
(hs-cleanup!)
@@ -2711,7 +2726,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "[object DocumentFragment]" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "[object DocumentFragment]")
;; SKIP check: skip div.dataset.count.should.equal("1")
))
(deftest "can do a simple fetch w/ json"
@@ -2721,7 +2736,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "'{\"foo\":1}'" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "'{\"foo\":1}'")
))
(deftest "can do a simple fetch w/ json using Object syntax"
(hs-cleanup!)
@@ -2730,7 +2745,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "'{\"foo\":1}'" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "'{\"foo\":1}'")
))
(deftest "can do a simple fetch w/ json using Object syntax and an 'an' prefix"
(hs-cleanup!)
@@ -2739,7 +2754,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "'{\"foo\":1}'" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "'{\"foo\":1}'")
))
(deftest "can do a simple fetch with a response object"
(hs-cleanup!)
@@ -2748,7 +2763,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "yep" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "yep")
))
(deftest "can do a simple fetch w/ a custom conversion"
(hs-cleanup!)
@@ -2757,7 +2772,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "1.2" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "1.2")
))
(deftest "can do a simple post"
(hs-cleanup!)
@@ -2766,7 +2781,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "yay" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "yay")
))
(deftest "can do a simple post alt syntax without curlies"
(hs-cleanup!)
@@ -2775,7 +2790,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "yay" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "yay")
))
(deftest "can do a simple post alt syntax w/ curlies"
(hs-cleanup!)
@@ -2784,7 +2799,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "yay" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "yay")
))
(deftest "can put response conversion after with"
(hs-cleanup!)
@@ -2793,7 +2808,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "yay" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "yay")
))
(deftest "can put response conversion before with"
(hs-cleanup!)
@@ -2802,7 +2817,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "yay" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "yay")
))
(deftest "triggers an event just before fetching"
(hs-cleanup!)
@@ -2812,7 +2827,7 @@
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
(assert (dom-has-class? _el-div "foo-set"))
- (assert= "yay" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "yay")
))
(deftest "submits the fetch parameters to the event handler"
(hs-cleanup!)
@@ -2822,7 +2837,7 @@
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
;; SKIP check: skip event.detail.headers.should.have.property('X-CustomHeader',
- (assert= "yay" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "yay")
))
(deftest "allows the event handler to change the fetch parameters"
(hs-cleanup!)
@@ -2833,7 +2848,7 @@
(dom-dispatch _el-div "click" nil)
;; SKIP check: skip arguments[1].should.have.property('headers')
;; SKIP check: skip arguments[1].headers.should.have.property('X-CustomHeader',
- (assert= "yay" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "yay")
))
(deftest "can catch an error that occurs when using fetch"
(hs-cleanup!)
@@ -2842,7 +2857,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "yay" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "yay")
))
(deftest "can do a simple fetch w/ json using JSON syntax"
(hs-cleanup!)
@@ -2851,7 +2866,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "{\"foo\":1}" (dom-text-content _el-div))
+ (assert= (dom-text-content _el-div) "{\"foo\":1}")
))
(deftest "throws on non-2xx response by default"
(hs-cleanup!)
@@ -2860,7 +2875,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "caught" (dom-text-content _el-div))
+ (assert= (dom-text-content _el-div) "caught")
))
(deftest "do not throw passes through 404 response"
(hs-cleanup!)
@@ -2869,7 +2884,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "the body" (dom-text-content _el-div))
+ (assert= (dom-text-content _el-div) "the body")
))
(deftest "don't throw passes through 404 response"
(hs-cleanup!)
@@ -2878,7 +2893,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "the body" (dom-text-content _el-div))
+ (assert= (dom-text-content _el-div) "the body")
))
(deftest "as response does not throw on 404"
(hs-cleanup!)
@@ -2887,15 +2902,15 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "404" (dom-text-content _el-div))
+ (assert= (dom-text-content _el-div) "404")
))
(deftest "Response can be converted to JSON via as JSON"
(hs-cleanup!)
(let ((_el-div (dom-create-element "div")))
- ;; HS source has bare quotes — HTML parse artifact
+ ;; HS source has bare quotes or embedded HTML
(dom-append (dom-body) _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "Joe" (dom-text-content _el-div))
+ (assert= (dom-text-content _el-div) "Joe")
))
)
@@ -2908,7 +2923,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "1" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "1")
))
(deftest "can increment a variable"
(hs-cleanup!)
@@ -2917,7 +2932,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "22" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "22")
))
(deftest "can increment refer to result"
(hs-cleanup!)
@@ -2926,7 +2941,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "2" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "2")
))
(deftest "can increment an attribute"
(hs-cleanup!)
@@ -2938,7 +2953,7 @@
(dom-dispatch _el-div "click" nil)
(dom-dispatch _el-div "click" nil)
(dom-dispatch _el-div "click" nil)
- (assert= "8" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "8")
))
(deftest "can increment an floating point numbers"
(hs-cleanup!)
@@ -2948,7 +2963,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "11.3" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "11.3")
))
(deftest "can increment a property"
(hs-cleanup!)
@@ -2959,7 +2974,7 @@
(dom-dispatch _el-div "click" nil)
(dom-dispatch _el-div "click" nil)
(dom-dispatch _el-div "click" nil)
- (assert= "6" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "6")
))
(deftest "can increment by zero"
(hs-cleanup!)
@@ -2968,7 +2983,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "20" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "20")
))
(deftest "can increment a value multiple times"
(hs-cleanup!)
@@ -2981,7 +2996,7 @@
(dom-dispatch _el-div "click" nil)
(dom-dispatch _el-div "click" nil)
(dom-dispatch _el-div "click" nil)
- (assert= "5" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "5")
))
(deftest "can decrement an empty variable"
(hs-cleanup!)
@@ -2990,7 +3005,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "-1" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "-1")
))
(deftest "can decrement a variable"
(hs-cleanup!)
@@ -2999,7 +3014,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "18" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "18")
))
(deftest "can decrement an attribute"
(hs-cleanup!)
@@ -3011,7 +3026,7 @@
(dom-dispatch _el-div "click" nil)
(dom-dispatch _el-div "click" nil)
(dom-dispatch _el-div "click" nil)
- (assert= "2" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "2")
))
(deftest "can decrement an floating point numbers"
(hs-cleanup!)
@@ -3021,7 +3036,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "1" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "1")
))
(deftest "can decrement a property"
(hs-cleanup!)
@@ -3032,7 +3047,7 @@
(dom-dispatch _el-div "click" nil)
(dom-dispatch _el-div "click" nil)
(dom-dispatch _el-div "click" nil)
- (assert= "0" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "0")
))
(deftest "can decrement a value multiple times"
(hs-cleanup!)
@@ -3045,7 +3060,7 @@
(dom-dispatch _el-div "click" nil)
(dom-dispatch _el-div "click" nil)
(dom-dispatch _el-div "click" nil)
- (assert= "-5" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "-5")
))
(deftest "can decrement by zero"
(hs-cleanup!)
@@ -3054,7 +3069,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "20" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "20")
))
(deftest "can increment an array element"
(hs-cleanup!)
@@ -3063,7 +3078,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "21" (dom-text-content _el-div))
+ (assert= (dom-text-content _el-div) "21")
))
(deftest "can decrement an array element"
(hs-cleanup!)
@@ -3072,7 +3087,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "19" (dom-text-content _el-div))
+ (assert= (dom-text-content _el-div) "19")
))
(deftest "can increment a possessive property"
(hs-cleanup!)
@@ -3082,7 +3097,7 @@
(dom-append (dom-body) _el-d1)
(hs-activate! _el-d1)
(dom-dispatch (dom-query-by-id "d1") "click" nil)
- (assert= "6" (dom-text-content (dom-query-by-id "d1")))
+ (assert= (dom-text-content (dom-query-by-id "d1")) "6")
))
(deftest "can increment a property of expression"
(hs-cleanup!)
@@ -3092,7 +3107,7 @@
(dom-append (dom-body) _el-d1)
(hs-activate! _el-d1)
(dom-dispatch (dom-query-by-id "d1") "click" nil)
- (assert= "6" (dom-text-content (dom-query-by-id "d1")))
+ (assert= (dom-text-content (dom-query-by-id "d1")) "6")
))
(deftest "can increment a style ref"
(hs-cleanup!)
@@ -3101,7 +3116,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "0.75" (dom-text-content _el-div))
+ (assert= (dom-text-content _el-div) "0.75")
))
)
@@ -3114,7 +3129,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "Hello there. General Kenobi." (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "Hello there. General Kenobi.")
))
(deftest "can append a value into an array"
(hs-cleanup!)
@@ -3123,7 +3138,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "1,2,3,4" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "1,2,3,4")
))
(deftest "can append a value to 'it'"
(hs-cleanup!)
@@ -3132,7 +3147,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "1,2,3,4" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "1,2,3,4")
))
(deftest "can append a value to a DOM node"
(hs-cleanup!)
@@ -3141,7 +3156,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "This is my inner HTMLWith Tags" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "This is my inner HTMLWith Tags")
))
(deftest "can append a value to a DOM element"
(hs-cleanup!)
@@ -3151,7 +3166,7 @@
(dom-append (dom-body) _el-content)
(hs-activate! _el-content)
(dom-dispatch _el-content "click" nil)
- (assert= "Content" (dom-inner-html _el-content))
+ (assert= (dom-inner-html _el-content) "Content")
))
(deftest "can append a value to I"
(hs-cleanup!)
@@ -3160,7 +3175,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "Content" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "Content")
))
(deftest "can append a value to an object property"
(hs-cleanup!)
@@ -3180,7 +3195,7 @@
(dom-append (dom-body) _el-id)
(hs-activate! _el-id)
(dom-dispatch _el-id "click" nil)
- (assert= "foobardoh" (dom-inner-html _el-id))
+ (assert= (dom-inner-html _el-id) "foobardoh")
))
(deftest "append to undefined ignores the undefined"
(hs-cleanup!)
@@ -3190,7 +3205,7 @@
(dom-append (dom-body) _el-id)
(hs-activate! _el-id)
(dom-dispatch _el-id "click" nil)
- (assert= "bar" (dom-inner-html _el-id))
+ (assert= (dom-inner-html _el-id) "bar")
))
(deftest "append preserves existing content rather than overwriting it"
(hs-cleanup!)
@@ -3231,7 +3246,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "3" (dom-text-content _el-div))
+ (assert= (dom-text-content _el-div) "3")
))
)
@@ -3364,7 +3379,7 @@
(dom-append (dom-body) _el-d1)
(hs-activate! _el-d1)
(dom-dispatch _el-d1 "click" nil)
- (assert= "" (dom-inner-html _el-d1))
+ (assert= (dom-inner-html _el-d1) "")
))
(deftest "tell terminates with a feature"
(hs-cleanup!)
@@ -3374,7 +3389,7 @@
(dom-append (dom-body) _el-d1)
(hs-activate! _el-d1)
(dom-dispatch _el-d1 "click" nil)
- (assert= "" (dom-inner-html _el-d1))
+ (assert= (dom-inner-html _el-d1) "")
))
)
@@ -3435,11 +3450,12 @@
(let ((_el-bar (dom-create-element "div")) (_el-div (dom-create-element "div")))
(dom-set-attr _el-bar "id" "bar")
(dom-append (dom-body) _el-bar)
- ;; HS source has bare quotes — HTML parse artifact
+ (dom-set-attr _el-div "_" "on click from #bar set #bar.innerHTML to #bar.innerHTML + \"a\"")
(dom-append (dom-body) _el-div)
+ (hs-activate! _el-div)
(dom-dispatch _el-bar "click" nil)
(dom-dispatch _el-bar "click" nil)
- (assert= "a" (dom-inner-html _el-bar))
+ (assert= (dom-inner-html _el-bar) "a")
))
(deftest "listeners on self are not removed when the element is removed"
(hs-cleanup!)
@@ -3449,7 +3465,7 @@
(hs-activate! _el-div)
;; SKIP action: div.remove__
;; SKIP action: div.dispatchEvent_new Event__someCustomE
- (assert= "1" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "1")
))
(deftest "supports "elsewhere" modifier"
(hs-cleanup!)
@@ -3714,7 +3730,7 @@
(dom-dispatch _el-div "click" nil)
(dom-dispatch _el-div "click" nil)
(dom-dispatch _el-div "click" nil)
- (assert= "1" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "1")
))
(deftest "can filter events based on count range"
(hs-cleanup!)
@@ -3725,7 +3741,7 @@
(dom-dispatch _el-div "click" nil)
(dom-dispatch _el-div "click" nil)
(dom-dispatch _el-div "click" nil)
- (assert= "2" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "2")
))
(deftest "can filter events based on unbounded count range"
(hs-cleanup!)
@@ -3736,7 +3752,7 @@
(dom-dispatch _el-div "click" nil)
(dom-dispatch _el-div "click" nil)
(dom-dispatch _el-div "click" nil)
- (assert= "2" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "2")
))
(deftest "can mix ranges"
(hs-cleanup!)
@@ -3748,7 +3764,7 @@
(dom-dispatch _el-div "click" nil)
(dom-dispatch _el-div "click" nil)
(dom-dispatch _el-div "click" nil)
- (assert= "three" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "three")
))
(deftest "can listen for general mutations"
(hs-cleanup!)
@@ -3757,7 +3773,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-set-attr _el-div "foo" "bar")
- (assert= "Mutated" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "Mutated")
))
(deftest "can listen for attribute mutations"
(hs-cleanup!)
@@ -3766,7 +3782,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-set-attr _el-div "foo" "bar")
- (assert= "Mutated" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "Mutated")
))
(deftest "can listen for specific attribute mutations"
(hs-cleanup!)
@@ -3775,7 +3791,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-set-attr _el-div "foo" "bar")
- (assert= "Mutated" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "Mutated")
))
(deftest "can listen for specific attribute mutations and filter out other attribute mutations"
(hs-cleanup!)
@@ -3784,7 +3800,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-set-attr _el-div "foo" "bar")
- (assert= "" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "")
))
(deftest "can listen for childList mutations"
(hs-cleanup!)
@@ -3793,7 +3809,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-append _el-div (dom-create-element "P"))
- (assert= "Mutated" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "Mutated")
))
(deftest "can listen for childList mutation filter out other mutations"
(hs-cleanup!)
@@ -3802,7 +3818,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-set-attr _el-div "foo" "bar")
- (assert= "" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "")
))
(deftest "can listen for characterData mutation filter out other mutations"
(hs-cleanup!)
@@ -3811,7 +3827,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-set-attr _el-div "foo" "bar")
- (assert= "" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "")
))
(deftest "can listen for multiple mutations"
(hs-cleanup!)
@@ -3820,7 +3836,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-set-attr _el-div "foo" "bar")
- (assert= "Mutated" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "Mutated")
))
(deftest "can listen for multiple mutations 2"
(hs-cleanup!)
@@ -3829,7 +3845,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-set-attr _el-div "bar" "bar")
- (assert= "Mutated" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "Mutated")
))
(deftest "can listen for attribute mutations on other elements"
(hs-cleanup!)
@@ -3840,7 +3856,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-set-attr _el-d1 "foo" "bar")
- (assert= "Mutated" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "Mutated")
))
(deftest "each behavior installation has its own event queue"
(hs-cleanup!)
@@ -3859,9 +3875,9 @@
(dom-dispatch _el-div "foo" nil)
(dom-dispatch _el-div2 "foo" nil)
(dom-dispatch _el-div3 "foo" nil)
- (assert= "behavior" (dom-inner-html _el-div))
- (assert= "behavior" (dom-inner-html _el-div2))
- (assert= "behavior" (dom-inner-html _el-div3))
+ (assert= (dom-inner-html _el-div) "behavior")
+ (assert= (dom-inner-html _el-div2) "behavior")
+ (assert= (dom-inner-html _el-div3) "behavior")
))
(deftest "can catch exceptions thrown in js functions"
(hs-cleanup!)
@@ -3870,7 +3886,7 @@
(dom-append (dom-body) _el-button)
(hs-activate! _el-button)
(dom-dispatch _el-button "click" nil)
- (assert= "bar" (dom-inner-html _el-button))
+ (assert= (dom-inner-html _el-button) "bar")
))
(deftest "can catch exceptions thrown in hyperscript functions"
(hs-cleanup!)
@@ -3881,7 +3897,7 @@
(dom-append (dom-body) _el-button)
(hs-activate! _el-button)
(dom-dispatch _el-button "click" nil)
- (assert= "bar" (dom-inner-html _el-button))
+ (assert= (dom-inner-html _el-button) "bar")
))
(deftest "can catch top-level exceptions"
(hs-cleanup!)
@@ -3890,7 +3906,7 @@
(dom-append (dom-body) _el-button)
(hs-activate! _el-button)
(dom-dispatch _el-button "click" nil)
- (assert= "bar" (dom-inner-html _el-button))
+ (assert= (dom-inner-html _el-button) "bar")
))
(deftest "can catch async top-level exceptions"
(hs-cleanup!)
@@ -3899,7 +3915,7 @@
(dom-append (dom-body) _el-button)
(hs-activate! _el-button)
(dom-dispatch _el-button "click" nil)
- (assert= "bar" (dom-inner-html _el-button))
+ (assert= (dom-inner-html _el-button) "bar")
))
(deftest "async exceptions don't kill the event queue"
(hs-cleanup!)
@@ -3909,7 +3925,7 @@
(hs-activate! _el-button)
(dom-dispatch _el-button "click" nil)
(dom-dispatch _el-button "click" nil)
- (assert= "success" (dom-inner-html _el-button))
+ (assert= (dom-inner-html _el-button) "success")
))
(deftest "exceptions in catch block don't kill the event queue"
(hs-cleanup!)
@@ -3919,7 +3935,7 @@
(hs-activate! _el-button)
(dom-dispatch _el-button "click" nil)
(dom-dispatch _el-button "click" nil)
- (assert= "success" (dom-inner-html _el-button))
+ (assert= (dom-inner-html _el-button) "success")
))
(deftest "uncaught exceptions trigger 'exception' event"
(hs-cleanup!)
@@ -3928,7 +3944,7 @@
(dom-append (dom-body) _el-button)
(hs-activate! _el-button)
(dom-dispatch _el-button "click" nil)
- (assert= "bar" (dom-inner-html _el-button))
+ (assert= (dom-inner-html _el-button) "bar")
))
(deftest "caught exceptions do not trigger 'exception' event"
(hs-cleanup!)
@@ -3937,7 +3953,7 @@
(dom-append (dom-body) _el-button)
(hs-activate! _el-button)
(dom-dispatch _el-button "click" nil)
- (assert= "foo" (dom-inner-html _el-button))
+ (assert= (dom-inner-html _el-button) "foo")
))
(deftest "rethrown exceptions trigger 'exception' event"
(hs-cleanup!)
@@ -3946,7 +3962,7 @@
(dom-append (dom-body) _el-button)
(hs-activate! _el-button)
(dom-dispatch _el-button "click" nil)
- (assert= "bar" (dom-inner-html _el-button))
+ (assert= (dom-inner-html _el-button) "bar")
))
(deftest "basic finally blocks work"
(hs-cleanup!)
@@ -3955,7 +3971,7 @@
(dom-append (dom-body) _el-button)
(hs-activate! _el-button)
(dom-dispatch _el-button "click" nil)
- (assert= "bar" (dom-inner-html _el-button))
+ (assert= (dom-inner-html _el-button) "bar")
))
(deftest "finally blocks work when exception thrown in catch"
(hs-cleanup!)
@@ -3964,7 +3980,7 @@
(dom-append (dom-body) _el-button)
(hs-activate! _el-button)
(dom-dispatch _el-button "click" nil)
- (assert= "bar" (dom-inner-html _el-button))
+ (assert= (dom-inner-html _el-button) "bar")
))
(deftest "async basic finally blocks work"
(hs-cleanup!)
@@ -3973,7 +3989,7 @@
(dom-append (dom-body) _el-button)
(hs-activate! _el-button)
(dom-dispatch _el-button "click" nil)
- (assert= "bar" (dom-inner-html _el-button))
+ (assert= (dom-inner-html _el-button) "bar")
))
(deftest "async finally blocks work when exception thrown in catch"
(hs-cleanup!)
@@ -3982,7 +3998,7 @@
(dom-append (dom-body) _el-button)
(hs-activate! _el-button)
(dom-dispatch _el-button "click" nil)
- (assert= "foobar" (dom-inner-html _el-button))
+ (assert= (dom-inner-html _el-button) "foobar")
))
(deftest "async exceptions in finally block don't kill the event queue"
(hs-cleanup!)
@@ -3992,7 +4008,7 @@
(hs-activate! _el-button)
(dom-dispatch _el-button "click" nil)
(dom-dispatch _el-button "click" nil)
- (assert= "success" (dom-inner-html _el-button))
+ (assert= (dom-inner-html _el-button) "success")
))
(deftest "exceptions in finally block don't kill the event queue"
(hs-cleanup!)
@@ -4002,7 +4018,7 @@
(hs-activate! _el-button)
(dom-dispatch _el-button "click" nil)
(dom-dispatch _el-button "click" nil)
- (assert= "success" (dom-inner-html _el-button))
+ (assert= (dom-inner-html _el-button) "success")
))
(deftest "can ignore when target doesn't exist"
(hs-cleanup!)
@@ -4012,7 +4028,7 @@
(dom-append (dom-body) _el-#d1)
(hs-activate! _el-#d1)
(dom-dispatch _el-#d1 "click" nil)
- (assert= "clicked" (dom-inner-html _el-#d1))
+ (assert= (dom-inner-html _el-#d1) "clicked")
))
(deftest "can handle an or after a from clause"
(hs-cleanup!)
@@ -4026,7 +4042,7 @@
(hs-activate! _el-div)
(dom-dispatch _el-d1 "click" nil)
(dom-dispatch _el-d2 "click" nil)
- (assert= "2" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "2")
))
(deftest "handles custom events with null detail"
(hs-cleanup!)
@@ -4043,9 +4059,9 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "1" (dom-text-content _el-div))
+ (assert= (dom-text-content _el-div) "1")
(dom-dispatch _el-div "click" nil)
- (assert= "1" (dom-text-content _el-div))
+ (assert= (dom-text-content _el-div) "1")
))
(deftest "caught exceptions do not trigger 'exception' event"
(hs-cleanup!)
@@ -4054,7 +4070,7 @@
(dom-append (dom-body) _el-button)
(hs-activate! _el-button)
(dom-dispatch _el-button "click" nil)
- (assert= "foo" (dom-text-content _el-button))
+ (assert= (dom-text-content _el-button) "foo")
))
(deftest "rethrown exceptions trigger 'exception' event"
(hs-cleanup!)
@@ -4063,7 +4079,7 @@
(dom-append (dom-body) _el-button)
(hs-activate! _el-button)
(dom-dispatch _el-button "click" nil)
- (assert= "bar" (dom-text-content _el-button))
+ (assert= (dom-text-content _el-button) "bar")
))
(deftest "can ignore when target doesn\'t exist"
(hs-cleanup!)
@@ -4072,7 +4088,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "clicked" (dom-text-content _el-div))
+ (assert= (dom-text-content _el-div) "clicked")
))
)
@@ -4085,7 +4101,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "42" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "42")
))
(deftest "can define an init block in a script"
(hs-cleanup!)
@@ -4129,7 +4145,7 @@
(dom-set-attr _el-d1 "id" "d1")
(dom-append (dom-body) _el-d1)
(dom-dispatch _el-script "click" nil)
- (assert= "called" (dom-inner-html _el-div))
+ (assert= (dom-inner-html _el-div) "called")
))
(deftest "functions can be namespaced"
(hs-cleanup!)
@@ -4352,7 +4368,7 @@
(dom-set-attr _el-out "id" "out")
(dom-append (dom-body) _el-out)
(dom-dispatch _el-button "click" nil)
- (assert= "Alice" (dom-text-content (dom-query-by-id "out")))
+ (assert= (dom-text-content (dom-query-by-id "out")) "Alice")
))
(deftest "returns null on cancel"
(hs-cleanup!)
@@ -4363,7 +4379,7 @@
(dom-set-attr _el-out "id" "out")
(dom-append (dom-body) _el-out)
(dom-dispatch _el-button "click" nil)
- (assert= "null" (dom-text-content (dom-query-by-id "out")))
+ (assert= (dom-text-content (dom-query-by-id "out")) "null")
))
(deftest "shows an alert"
(hs-cleanup!)
@@ -4374,7 +4390,7 @@
(dom-set-attr _el-out "id" "out")
(dom-append (dom-body) _el-out)
(dom-dispatch _el-button "click" nil)
- (assert= "done" (dom-text-content (dom-query-by-id "out")))
+ (assert= (dom-text-content (dom-query-by-id "out")) "done")
))
(deftest "confirm returns first choice on OK"
(hs-cleanup!)
@@ -4385,7 +4401,7 @@
(dom-set-attr _el-out "id" "out")
(dom-append (dom-body) _el-out)
(dom-dispatch _el-button "click" nil)
- (assert= "Yes" (dom-text-content (dom-query-by-id "out")))
+ (assert= (dom-text-content (dom-query-by-id "out")) "Yes")
))
(deftest "confirm returns second choice on cancel"
(hs-cleanup!)
@@ -4396,7 +4412,7 @@
(dom-set-attr _el-out "id" "out")
(dom-append (dom-body) _el-out)
(dom-dispatch _el-button "click" nil)
- (assert= "No" (dom-text-content (dom-query-by-id "out")))
+ (assert= (dom-text-content (dom-query-by-id "out")) "No")
))
)
@@ -4513,7 +4529,7 @@
(dom-append (dom-body) _el-button)
(hs-activate! _el-button)
(dom-dispatch _el-button "click" nil)
- (assert= "" (dom-text-content (dom-query-by-id "d1")))
+ (assert= (dom-text-content (dom-query-by-id "d1")) "")
))
(deftest "empty with no target empties me"
(hs-cleanup!)
@@ -4522,7 +4538,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "" (dom-text-content _el-div))
+ (assert= (dom-text-content _el-div) "")
))
(deftest "can empty multiple elements"
(hs-cleanup!)
@@ -4543,7 +4559,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "0" (dom-text-content _el-div))
+ (assert= (dom-text-content _el-div) "0")
))
(deftest "can empty a set"
(hs-cleanup!)
@@ -4552,7 +4568,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "0" (dom-text-content _el-div))
+ (assert= (dom-text-content _el-div) "0")
))
(deftest "can empty a map"
(hs-cleanup!)
@@ -4561,7 +4577,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "0" (dom-text-content _el-div))
+ (assert= (dom-text-content _el-div) "0")
))
(deftest "can empty a text input"
(hs-cleanup!)
@@ -4574,7 +4590,7 @@
(dom-append (dom-body) _el-button)
(hs-activate! _el-button)
(dom-dispatch _el-button "click" nil)
- (assert= "" (dom-get-prop (dom-query-by-id "t1") "value"))
+ (assert= (dom-get-prop (dom-query-by-id "t1") "value") "")
))
(deftest "can empty a textarea"
(hs-cleanup!)
@@ -4585,7 +4601,7 @@
(dom-append (dom-body) _el-button)
(hs-activate! _el-button)
(dom-dispatch _el-button "click" nil)
- (assert= "" (dom-get-prop (dom-query-by-id "ta1") "value"))
+ (assert= (dom-get-prop (dom-query-by-id "ta1") "value") "")
))
(deftest "can empty a checkbox"
(hs-cleanup!)
@@ -4618,8 +4634,8 @@
(dom-append (dom-body) _el-button)
(hs-activate! _el-button)
(dom-dispatch _el-button "click" nil)
- (assert= "" (dom-get-prop (dom-query-by-id "t2") "value"))
- (assert= "" (dom-get-prop (dom-query-by-id "ta2") "value"))
+ (assert= (dom-get-prop (dom-query-by-id "t2") "value") "")
+ (assert= (dom-get-prop (dom-query-by-id "ta2") "value") "")
(assert (not (dom-get-prop (dom-query-by-id "cb2") "checked")))
))
(deftest "clear is an alias for empty"
@@ -4633,7 +4649,7 @@
(dom-append (dom-body) _el-button)
(hs-activate! _el-button)
(dom-dispatch _el-button "click" nil)
- (assert= "" (dom-get-prop (dom-query-by-id "t3") "value"))
+ (assert= (dom-get-prop (dom-query-by-id "t3") "value") "")
))
(deftest "clear works on elements"
(hs-cleanup!)
@@ -4644,7 +4660,7 @@
(dom-append (dom-body) _el-button)
(hs-activate! _el-button)
(dom-dispatch _el-button "click" nil)
- (assert= "" (dom-text-content (dom-query-by-id "d2")))
+ (assert= (dom-text-content (dom-query-by-id "d2")) "")
))
)
@@ -4684,8 +4700,9 @@
(deftest "can parse go to with string URL"
(hs-cleanup!)
(let ((_el-div (dom-create-element "div")))
- ;; HS source has bare quotes — HTML parse artifact
+ (dom-set-attr _el-div "_" "on click go to \"#test-hash\"")
(dom-append (dom-body) _el-div)
+ (hs-activate! _el-div)
))
(deftest "deprecated url keyword still parses"
(hs-cleanup!)
@@ -4802,10 +4819,10 @@
(let ((_el-target (dom-create-element "div")) (_el-button (dom-create-element "button")))
(dom-set-attr _el-target "id" "target")
(dom-append (dom-body) _el-target)
- ;; HS source has bare quotes — HTML parse artifact
+ ;; HS source has bare quotes or embedded HTML
(dom-append (dom-body) _el-button)
(dom-dispatch _el-button "click" nil)
- (assert= "new" (dom-text-content (dom-query-by-id "target")))
+ (assert= (dom-text-content (dom-query-by-id "target")) "new")
))
(deftest "morph preserves element identity"
(hs-cleanup!)
@@ -4813,10 +4830,10 @@
(dom-set-attr _el-target "id" "target")
(dom-append (dom-body) _el-target)
(dom-set-attr _el-go "id" "go")
- ;; HS source has bare quotes — HTML parse artifact
+ ;; HS source has bare quotes or embedded HTML
(dom-append (dom-body) _el-go)
(dom-dispatch (dom-query-by-id "go") "click" nil)
- (assert= "new" (dom-text-content (dom-query-by-id "target")))
+ (assert= (dom-text-content (dom-query-by-id "target")) "new")
))
(deftest "morph updates attributes"
(hs-cleanup!)
@@ -4824,7 +4841,7 @@
(dom-set-attr _el-target "id" "target")
(dom-add-class _el-target "old")
(dom-append (dom-body) _el-target)
- ;; HS source has bare quotes — HTML parse artifact
+ ;; HS source has bare quotes or embedded HTML
(dom-append (dom-body) _el-button)
(dom-dispatch _el-button "click" nil)
(assert (dom-has-class? (dom-query-by-id "target") "new"))
@@ -4835,7 +4852,7 @@
(dom-set-attr _el-target "id" "target")
(dom-append (dom-body) _el-target)
(dom-set-attr _el-target1 "id" "target")
- ;; HS source has bare quotes — HTML parse artifact
+ ;; HS source has bare quotes or embedded HTML
(dom-append (dom-body) _el-target1)
(dom-dispatch (dom-query-by-id "go") "click" nil)
))
@@ -4845,7 +4862,7 @@
(dom-set-attr _el-target "id" "target")
(dom-append (dom-body) _el-target)
(dom-set-attr _el-target1 "id" "target")
- ;; HS source has bare quotes — HTML parse artifact
+ ;; HS source has bare quotes or embedded HTML
(dom-append (dom-body) _el-target1)
(dom-dispatch (dom-query-by-id "go") "click" nil)
))
@@ -4855,19 +4872,19 @@
(dom-set-attr _el-target "id" "target")
(dom-append (dom-body) _el-target)
(dom-set-attr _el-target1 "id" "target")
- ;; HS source has bare quotes — HTML parse artifact
+ ;; HS source has bare quotes or embedded HTML
(dom-append (dom-body) _el-target1)
(dom-dispatch (dom-query-by-id "go") "click" nil)
- (assert= "new" (dom-text-content (dom-query-by-id "inner")))
+ (assert= (dom-text-content (dom-query-by-id "inner")) "new")
(dom-dispatch (dom-query-by-id "inner") "click" nil)
- (assert= "clicked" (dom-text-content (dom-query-by-id "inner")))
+ (assert= (dom-text-content (dom-query-by-id "inner")) "clicked")
))
(deftest "morph cleans up removed hyperscript elements"
(hs-cleanup!)
(let ((_el-target (dom-create-element "div")) (_el-button (dom-create-element "button")))
(dom-set-attr _el-target "id" "target")
(dom-append (dom-body) _el-target)
- ;; HS source has bare quotes — HTML parse artifact
+ ;; HS source has bare quotes or embedded HTML
(dom-append (dom-body) _el-button)
(dom-dispatch _el-button "click" nil)
))
@@ -4876,7 +4893,7 @@
(let ((_el-target (dom-create-element "div")) (_el-button (dom-create-element "button")))
(dom-set-attr _el-target "id" "target")
(dom-append (dom-body) _el-target)
- ;; HS source has bare quotes — HTML parse artifact
+ ;; HS source has bare quotes or embedded HTML
(dom-append (dom-body) _el-button)
(dom-dispatch _el-button "click" nil)
))
@@ -4886,7 +4903,7 @@
(dom-set-attr _el-target "id" "target")
(dom-append (dom-body) _el-target)
(dom-set-attr _el-go "id" "go")
- ;; HS source has bare quotes — HTML parse artifact
+ ;; HS source has bare quotes or embedded HTML
(dom-append (dom-body) _el-go)
(dom-dispatch (dom-query-by-id "go") "click" nil)
))
@@ -4900,7 +4917,7 @@
(dom-append (dom-body) _el-go)
(hs-activate! _el-go)
(dom-dispatch (dom-query-by-id "go") "click" nil)
- (assert= "morphed" (dom-text-content (dom-query-by-id "target")))
+ (assert= (dom-text-content (dom-query-by-id "target")) "morphed")
))
)
@@ -4912,7 +4929,7 @@
(dom-set-attr _el-f1 "id" "f1")
(dom-append (dom-body) _el-f1)
(dom-dispatch (dom-query-by-id "rst") "click" nil)
- (assert= "original" (dom-get-prop (dom-query-by-id "t1") "value"))
+ (assert= (dom-get-prop (dom-query-by-id "t1") "value") "original")
))
(deftest "reset with no target resets me (form)"
(hs-cleanup!)
@@ -4921,7 +4938,7 @@
(dom-append (dom-body) _el-form)
(hs-activate! _el-form)
(dom-dispatch _el-form "custom" nil)
- (assert= "default" (dom-get-prop (dom-query-by-id "t2") "value"))
+ (assert= (dom-get-prop (dom-query-by-id "t2") "value") "default")
))
(deftest "can reset a text input to defaultValue"
(hs-cleanup!)
@@ -4934,7 +4951,7 @@
(dom-append (dom-body) _el-button)
(hs-activate! _el-button)
(dom-dispatch _el-button "click" nil)
- (assert= "hello" (dom-get-prop (dom-query-by-id "t3") "value"))
+ (assert= (dom-get-prop (dom-query-by-id "t3") "value") "hello")
))
(deftest "can reset a checkbox"
(hs-cleanup!)
@@ -4969,7 +4986,7 @@
(dom-append (dom-body) _el-button)
(hs-activate! _el-button)
(dom-dispatch _el-button "click" nil)
- (assert= "original text" (dom-get-prop (dom-query-by-id "ta1") "value"))
+ (assert= (dom-get-prop (dom-query-by-id "ta1") "value") "original text")
))
(deftest "can reset a select"
(hs-cleanup!)
@@ -4980,7 +4997,7 @@
(dom-append (dom-body) _el-button)
(hs-activate! _el-button)
(dom-dispatch _el-button "click" nil)
- (assert= "b" (dom-get-prop (dom-query-by-id "sel1") "value"))
+ (assert= (dom-get-prop (dom-query-by-id "sel1") "value") "b")
))
(deftest "can reset multiple inputs"
(hs-cleanup!)
@@ -5139,7 +5156,7 @@
(dom-set-attr _el-out "id" "out")
(dom-append (dom-body) _el-out)
(dom-dispatch _el-button "click" nil)
- (assert= "Hello" (dom-text-content (dom-query-by-id "out")))
+ (assert= (dom-text-content (dom-query-by-id "out")) "Hello")
))
)
@@ -5153,7 +5170,7 @@
(dom-append (dom-body) _el-d1)
(hs-activate! _el-d1)
(dom-dispatch (dom-query-by-id "d1") "click" nil)
- (assert= "ba" (dom-text-content (dom-query-by-id "d1")))
+ (assert= (dom-text-content (dom-query-by-id "d1")) "ba")
))
(deftest "can swap two properties"
(hs-cleanup!)
@@ -5167,8 +5184,8 @@
(dom-set-attr _el-b "id" "b")
(dom-append (dom-body) _el-b)
(dom-dispatch (dom-query-by-id "d1") "click" nil)
- (assert= "world" (dom-text-content (dom-query-by-id "a")))
- (assert= "hello" (dom-text-content (dom-query-by-id "b")))
+ (assert= (dom-text-content (dom-query-by-id "a")) "world")
+ (assert= (dom-text-content (dom-query-by-id "b")) "hello")
))
(deftest "can swap array elements"
(hs-cleanup!)
@@ -5178,7 +5195,7 @@
(dom-append (dom-body) _el-d1)
(hs-activate! _el-d1)
(dom-dispatch (dom-query-by-id "d1") "click" nil)
- (assert= "3,2,1" (dom-text-content (dom-query-by-id "d1")))
+ (assert= (dom-text-content (dom-query-by-id "d1")) "3,2,1")
))
(deftest "can swap a variable with a property"
(hs-cleanup!)
@@ -5191,8 +5208,8 @@
(dom-set-attr _el-target "data-val" "x")
(dom-append (dom-body) _el-target)
(dom-dispatch (dom-query-by-id "d1") "click" nil)
- (assert= "new" (dom-text-content (dom-query-by-id "d1")))
- (assert= "old" (dom-get-attr (dom-query-by-id "target") "data-val"))
+ (assert= (dom-text-content (dom-query-by-id "d1")) "new")
+ (assert= (dom-get-attr (dom-query-by-id "target") "data-val") "old")
))
)
@@ -5925,9 +5942,9 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "1" (dom-text-content _el-div))
+ (assert= (dom-text-content _el-div) "1")
(dom-dispatch _el-div "click" nil)
- (assert= "2" (dom-text-content _el-div))
+ (assert= (dom-text-content _el-div) "2")
))
(deftest "triggers multiple elements watching same variable"
(hs-cleanup!)
@@ -6038,7 +6055,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "clicked" (dom-text-content _el-div))
+ (assert= (dom-text-content _el-div) "clicked")
))
(deftest "does not cross-trigger on unrelated variable writes"
(hs-cleanup!)
@@ -6066,11 +6083,11 @@
(dom-append (dom-body) _el-d2)
(hs-activate! _el-d2)
(dom-dispatch (dom-query-by-id "d1") "click" nil)
- (assert= "A-clicked" (dom-text-content (dom-query-by-id "d1")))
- (assert= "B" (dom-text-content (dom-query-by-id "d2")))
+ (assert= (dom-text-content (dom-query-by-id "d1")) "A-clicked")
+ (assert= (dom-text-content (dom-query-by-id "d2")) "B")
(dom-dispatch (dom-query-by-id "d2") "click" nil)
- (assert= "B-clicked" (dom-text-content (dom-query-by-id "d2")))
- (assert= "A-clicked" (dom-text-content (dom-query-by-id "d1")))
+ (assert= (dom-text-content (dom-query-by-id "d2")) "B-clicked")
+ (assert= (dom-text-content (dom-query-by-id "d1")) "A-clicked")
))
(deftest "handles NaN without infinite re-firing"
(hs-cleanup!)
@@ -6252,7 +6269,7 @@
(dom-set-attr _el-out "id" "out")
(dom-append (dom-body) _el-out)
(dom-dispatch _el-button "click" nil)
- (assert= "original" (dom-text-content (dom-query-by-id "out")))
+ (assert= (dom-text-content (dom-query-by-id "out")) "original")
))
(deftest "rejected promise triggers catch block"
(hs-cleanup!)
@@ -6263,7 +6280,7 @@
(dom-set-attr _el-out "id" "out")
(dom-append (dom-body) _el-out)
(dom-dispatch _el-button "click" nil)
- (assert= "boom" (dom-text-content (dom-query-by-id "out")))
+ (assert= (dom-text-content (dom-query-by-id "out")) "boom")
))
)
@@ -6313,7 +6330,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch (dom-query "span") "click" nil)
- (assert= "42" (dom-text-content (dom-query "span")))
+ (assert= (dom-text-content (dom-query "span")) "42")
))
(deftest "child writes ^var and parent sees it"
(hs-cleanup!)
@@ -6323,7 +6340,7 @@
(hs-activate! _el-div)
(dom-dispatch (dom-query "button") "click" nil)
(dom-dispatch (dom-query "span") "click" nil)
- (assert= "99" (dom-text-content (dom-query "span")))
+ (assert= (dom-text-content (dom-query "span")) "99")
))
(deftest "deeply nested child reads ^var from grandparent"
(hs-cleanup!)
@@ -6332,7 +6349,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch (dom-query "span") "click" nil)
- (assert= "alice" (dom-text-content (dom-query "span")))
+ (assert= (dom-text-content (dom-query "span")) "alice")
))
(deftest "closest ancestor wins (shadowing)"
(hs-cleanup!)
@@ -6341,7 +6358,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch (dom-query "span") "click" nil)
- (assert= "blue" (dom-text-content (dom-query "span")))
+ (assert= (dom-text-content (dom-query "span")) "blue")
))
(deftest "sibling subtrees have independent ^vars"
(hs-cleanup!)
@@ -6355,16 +6372,16 @@
(dom-append (dom-body) _el-b)
(hs-activate! _el-b)
(dom-dispatch (dom-query "#a span") "click" nil)
- (assert= "A" (dom-text-content (dom-query "#a span")))
+ (assert= (dom-text-content (dom-query "#a span")) "A")
(dom-dispatch (dom-query "#b span") "click" nil)
- (assert= "B" (dom-text-content (dom-query "#b span")))
+ (assert= (dom-text-content (dom-query "#b span")) "B")
))
(deftest "write to ^var not found anywhere creates on current element"
(hs-cleanup!)
(let ((_el-div (dom-create-element "div")))
(dom-append (dom-body) _el-div)
(dom-dispatch (dom-query "button") "click" nil)
- (assert= "created" (dom-text-content (dom-query "span")))
+ (assert= (dom-text-content (dom-query "span")) "created")
))
(deftest "child write updates the ancestor, not a local copy"
(hs-cleanup!)
@@ -6374,7 +6391,7 @@
(hs-activate! _el-div)
(dom-dispatch (dom-query "button") "click" nil)
(dom-dispatch (dom-query "span") "click" nil)
- (assert= "10" (dom-text-content (dom-query "span")))
+ (assert= (dom-text-content (dom-query "span")) "10")
))
(deftest "increment works on inherited var"
(hs-cleanup!)
@@ -6386,7 +6403,7 @@
(dom-dispatch (dom-query "button") "click" nil)
(dom-dispatch (dom-query "button") "click" nil)
(dom-dispatch (dom-query "span") "click" nil)
- (assert= "3" (dom-text-content (dom-query "span")))
+ (assert= (dom-text-content (dom-query "span")) "3")
))
(deftest "dom keyword works as scope modifier"
(hs-cleanup!)
@@ -6395,7 +6412,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch (dom-query "span") "click" nil)
- (assert= "42" (dom-text-content (dom-query "span")))
+ (assert= (dom-text-content (dom-query "span")) "42")
))
(deftest "set ^var on explicit element"
(hs-cleanup!)
@@ -6404,7 +6421,7 @@
(dom-append (dom-body) _el-div)
(dom-dispatch (dom-query "button") "click" nil)
(dom-dispatch (dom-query "span") "click" nil)
- (assert= "hello" (dom-text-content (dom-query "span")))
+ (assert= (dom-text-content (dom-query "span")) "hello")
))
(deftest "on clause targets a specific ancestor"
(hs-cleanup!)
@@ -6414,7 +6431,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch (dom-query "span") "click" nil)
- (assert= "outer" (dom-text-content (dom-query "span")))
+ (assert= (dom-text-content (dom-query "span")) "outer")
))
(deftest "on clause with id reference"
(hs-cleanup!)
@@ -6429,7 +6446,7 @@
(hs-activate! _el-span)
(dom-dispatch _el-button "click" nil)
(dom-dispatch _el-span "click" nil)
- (assert= "99" (dom-text-content _el-span))
+ (assert= (dom-text-content _el-span) "99")
))
(deftest "when reacts to ^var changes"
(hs-cleanup!)
@@ -6438,9 +6455,9 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch (dom-query "button") "click" nil)
- (assert= "1" (dom-text-content (dom-query "output")))
+ (assert= (dom-text-content (dom-query "output")) "1")
(dom-dispatch (dom-query "button") "click" nil)
- (assert= "2" (dom-text-content (dom-query "output")))
+ (assert= (dom-text-content (dom-query "output")) "2")
))
(deftest "always reacts to ^var changes"
(hs-cleanup!)
@@ -6457,8 +6474,8 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch (dom-query "button") "click" nil)
- (assert= "blue" (dom-text-content (dom-query-by-id "a")))
- (assert= "blue" (dom-text-content (dom-query-by-id "b")))
+ (assert= (dom-text-content (dom-query-by-id "a")) "blue")
+ (assert= (dom-text-content (dom-query-by-id "b")) "blue")
))
(deftest "sibling subtrees react independently with ^var"
(hs-cleanup!)
@@ -6469,11 +6486,11 @@
(hs-activate! _el-a)
(dom-dispatch (dom-query "#a button") "click" nil)
(dom-dispatch (dom-query "#a button") "click" nil)
- (assert= "2" (dom-text-content (dom-query "#a output")))
- (assert= "0" (dom-text-content (dom-query "#b output")))
+ (assert= (dom-text-content (dom-query "#a output")) "2")
+ (assert= (dom-text-content (dom-query "#b output")) "0")
(dom-dispatch (dom-query "#b button") "click" nil)
- (assert= "1" (dom-text-content (dom-query "#b output")))
- (assert= "2" (dom-text-content (dom-query "#a output")))
+ (assert= (dom-text-content (dom-query "#b output")) "1")
+ (assert= (dom-text-content (dom-query "#a output")) "2")
))
(deftest "bind works with ^var"
(hs-cleanup!)
@@ -6506,9 +6523,9 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch (dom-query "button:text("same")") "click" nil)
- (assert= "1" (dom-text-content (dom-query "output")))
+ (assert= (dom-text-content (dom-query "output")) "1")
(dom-dispatch (dom-query-by-id "diff") "click" nil)
- (assert= "2" (dom-text-content (dom-query "output")))
+ (assert= (dom-text-content (dom-query "output")) "2")
))
)
@@ -6610,10 +6627,10 @@
(let ((_el-target (dom-create-element "div")) (_el-button (dom-create-element "button")))
(dom-set-attr _el-target "id" "target")
(dom-append (dom-body) _el-target)
- ;; HS source has bare quotes — HTML parse artifact
+ ;; HS source has bare quotes or embedded HTML
(dom-append (dom-body) _el-button)
(dom-dispatch _el-button "click" nil)
- (assert= "new" (dom-text-content (dom-query-by-id "target")))
+ (assert= (dom-text-content (dom-query-by-id "target")) "new")
))
(deftest "set #id replaces element with another element"
(hs-cleanup!)
@@ -6630,7 +6647,7 @@
(let ((_el-list (dom-create-element "ul")) (_el-button (dom-create-element "button")))
(dom-set-attr _el-list "id" "list")
(dom-append (dom-body) _el-list)
- ;; HS source has bare quotes — HTML parse artifact
+ ;; HS source has bare quotes or embedded HTML
(dom-append (dom-body) _el-button)
(dom-dispatch _el-button "click" nil)
))
@@ -6639,7 +6656,7 @@
(let ((_el-box (dom-create-element "div")) (_el-button (dom-create-element "button")))
(dom-set-attr _el-box "id" "box")
(dom-append (dom-body) _el-box)
- ;; HS source has bare quotes — HTML parse artifact
+ ;; HS source has bare quotes or embedded HTML
(dom-append (dom-body) _el-button)
(dom-dispatch _el-button "click" nil)
))
@@ -6649,7 +6666,7 @@
(dom-add-class _el-div "wrapper")
(dom-append (dom-body) _el-div)
(dom-dispatch (dom-query "button") "click" nil)
- (assert= "replaced" (dom-text-content (dom-query ".wrapper")))
+ (assert= (dom-text-content (dom-query ".wrapper")) "replaced")
))
(deftest "hyperscript in replacement content is initialized"
(hs-cleanup!)
@@ -6657,12 +6674,12 @@
(dom-set-attr _el-target "id" "target")
(dom-append (dom-body) _el-target)
(dom-set-attr _el-target1 "id" "target")
- ;; HS source has bare quotes — HTML parse artifact
+ ;; HS source has bare quotes or embedded HTML
(dom-append (dom-body) _el-target1)
(dom-dispatch (dom-query-by-id "go") "click" nil)
- (assert= "new" (dom-text-content (dom-query-by-id "target")))
+ (assert= (dom-text-content (dom-query-by-id "target")) "new")
(dom-dispatch (dom-query-by-id "target") "click" nil)
- (assert= "clicked" (dom-text-content (dom-query-by-id "target")))
+ (assert= (dom-text-content (dom-query-by-id "target")) "clicked")
))
(deftest "swap #a with #b swaps DOM positions"
(hs-cleanup!)
@@ -6683,17 +6700,17 @@
(dom-append (dom-body) _el-button)
(hs-activate! _el-button)
(dom-dispatch _el-button "click" nil)
- (assert= "new" (dom-text-content (dom-query-by-id "target")))
+ (assert= (dom-text-content (dom-query-by-id "target")) "new")
))
)
;; ── collectionExpressions (22 tests) ──
(defsuite "hs-upstream-collectionExpressions"
(deftest "filters an array by condition"
- (assert= (list "a" "c") (eval-hs "set arr to [{name: \"a\", active: true}, {name: \"b\", active: false}, {name: \"c\", active: true}] then return arr where its active"))
+ (assert= (eval-hs "set arr to [{name: \"a\", active: true}, {name: \"b\", active: false}, {name: \"c\", active: true}] then return arr where its active") (list "a" "c"))
)
(deftest "filters with comparison"
- (assert= (list 4 5) (eval-hs "set arr to [1, 2, 3, 4, 5] then return arr where it > 3"))
+ (assert= (eval-hs "set arr to [1, 2, 3, 4, 5] then return arr where it > 3") (list 4 5))
)
(deftest "works with DOM elements"
(hs-cleanup!)
@@ -6706,34 +6723,34 @@
(dom-set-attr _el-out "id" "out")
(dom-append (dom-body) _el-out)
(dom-dispatch _el-button "click" nil)
- (assert= "AC" (dom-text-content (dom-query-by-id "out")))
+ (assert= (dom-text-content (dom-query-by-id "out")) "AC")
))
(deftest "sorts by a property"
- (assert= (list "Alice" "Bob" "Charlie") (eval-hs "set arr to [{name: \"Charlie\"}, {name: \"Alice\"}, {name: \"Bob\"}] then return arr sorted by its name"))
+ (assert= (eval-hs "set arr to [{name: \"Charlie\"}, {name: \"Alice\"}, {name: \"Bob\"}] then return arr sorted by its name") (list "Alice" "Bob" "Charlie"))
)
(deftest "sorts descending"
- (assert= (list 3 2 1) (eval-hs "set arr to [3, 1, 2] then return arr sorted by it descending"))
+ (assert= (eval-hs "set arr to [3, 1, 2] then return arr sorted by it descending") (list 3 2 1))
)
(deftest "sorts numbers by a computed key"
- (assert= (list "a" "c" "b") (eval-hs "set arr to [{name: \"b\", age: 30}, {name: \"a\", age: 20}, {name: \"c\", age: 25}] then return arr sorted by its age"))
+ (assert= (eval-hs "set arr to [{name: \"b\", age: 30}, {name: \"a\", age: 20}, {name: \"c\", age: 25}] then return arr sorted by its age") (list "a" "c" "b"))
)
(deftest "maps to a property"
- (assert= (list "Alice" "Bob") (eval-hs "set arr to [{name: \"Alice\"}, {name: \"Bob\"}] then return arr mapped to its name"))
+ (assert= (eval-hs "set arr to [{name: \"Alice\"}, {name: \"Bob\"}] then return arr mapped to its name") (list "Alice" "Bob"))
)
(deftest "maps with an expression"
- (assert= (list 2 4 6) (eval-hs "set arr to [1, 2, 3] then return arr mapped to (it * 2)"))
+ (assert= (eval-hs "set arr to [1, 2, 3] then return arr mapped to (it * 2)") (list 2 4 6))
)
(deftest "where then mapped to"
- (assert= (list "Alice" "Charlie") (eval-hs "set arr to [{name: \"Alice\", active: true}, {name: \"Bob\", active: false}, {name: \"Charlie\", active: true}] then return arr where its active mapped to its name"))
+ (assert= (eval-hs "set arr to [{name: \"Alice\", active: true}, {name: \"Bob\", active: false}, {name: \"Charlie\", active: true}] then return arr where its active mapped to its name") (list "Alice" "Charlie"))
)
(deftest "sorted by then mapped to"
- (assert= (list "Alice" "Charlie") (eval-hs "set arr to [{name: \"Charlie\", age: 30}, {name: \"Alice\", age: 20}] then return arr sorted by its age mapped to its name"))
+ (assert= (eval-hs "set arr to [{name: \"Charlie\", age: 30}, {name: \"Alice\", age: 20}] then return arr sorted by its age mapped to its name") (list "Alice" "Charlie"))
)
(deftest "where then sorted by then mapped to"
- (assert= (list "Bob" "Charlie") (eval-hs "set arr to [{name: \"Charlie\", active: true, age: 30}, {name: \"Alice\", active: false, age: 20}, {name: \"Bob\", active: true, age: 25}] then return arr where its active sorted by its age mapped to its name"))
+ (assert= (eval-hs "set arr to [{name: \"Charlie\", active: true, age: 30}, {name: \"Alice\", active: false, age: 20}, {name: \"Bob\", active: true, age: 25}] then return arr where its active sorted by its age mapped to its name") (list "Bob" "Charlie"))
)
(deftest "the result inside where refers to previous command result, not current element"
- (assert= (list 4 5) (eval-hs "get 3 then set arr to [1, 2, 3, 4, 5] then return arr where it > the result"))
+ (assert= (eval-hs "get 3 then set arr to [1, 2, 3, 4, 5] then return arr where it > the result") (list 4 5))
)
(deftest "where binds after in without parens"
(hs-cleanup!)
@@ -6760,23 +6777,23 @@
(let ((_el-box (dom-create-element "div")) (_el-button (dom-create-element "button")) (_el-b2 (dom-create-element "button")))
(dom-set-attr _el-box "id" "box")
(dom-append (dom-body) _el-box)
- ;; HS source has bare quotes — HTML parse artifact
+ ;; HS source has bare quotes or embedded HTML
(dom-append (dom-body) _el-button)
(dom-set-attr _el-b2 "id" "b2")
- ;; HS source has bare quotes — HTML parse artifact
+ ;; HS source has bare quotes or embedded HTML
(dom-append (dom-body) _el-b2)
(dom-dispatch (dom-query-by-id "b2") "click" nil)
- (assert= "2" (dom-text-content (dom-query-by-id "b2")))
+ (assert= (dom-text-content (dom-query-by-id "b2")) "2")
))
(deftest "where in init followed by on feature"
(hs-cleanup!)
(let ((_el-box (dom-create-element "div")) (_el-button (dom-create-element "button")))
(dom-set-attr _el-box "id" "box")
(dom-append (dom-body) _el-box)
- ;; HS source has bare quotes — HTML parse artifact
+ ;; HS source has bare quotes or embedded HTML
(dom-append (dom-body) _el-button)
(dom-dispatch _el-button "click" nil)
- (assert= "1" (dom-text-content _el-button))
+ (assert= (dom-text-content _el-button) "1")
))
(deftest "where in component init followed by on feature"
(hs-cleanup!)
@@ -6789,7 +6806,7 @@
(hs-activate! _el-template)
(dom-append (dom-body) _el-test-where-comp)
(dom-dispatch _el-test-where-comp "click" nil)
- (assert= "1" (dom-text-content _el-test-where-comp))
+ (assert= (dom-text-content _el-test-where-comp) "1")
))
(deftest "where with is not me in component template"
(hs-cleanup!)
@@ -6815,25 +6832,25 @@
;; ── splitJoin (7 tests) ──
(defsuite "hs-upstream-splitJoin"
(deftest "splits a string by delimiter"
- (assert= (list "a" "b" "c") (eval-hs "return \"a,b,c\" split by \",\""))
+ (assert= (eval-hs "return \"a,b,c\" split by \",\"") (list "a" "b" "c"))
)
(deftest "splits by whitespace"
- (assert= (list "hello" "world") (eval-hs "return \"hello world\" split by \" \""))
+ (assert= (eval-hs "return \"hello world\" split by \" \"") (list "hello" "world"))
)
(deftest "joins an array with delimiter"
- (assert= "a, b, c" (eval-hs "return [\"a\", \"b\", \"c\"] joined by \", \""))
+ (assert= (eval-hs "return [\"a\", \"b\", \"c\"] joined by \", \"") "a, b, c")
)
(deftest "joins with empty string"
- (assert= "xyz" (eval-hs "return [\"x\", \"y\", \"z\"] joined by \"\""))
+ (assert= (eval-hs "return [\"x\", \"y\", \"z\"] joined by \"\"") "xyz")
)
(deftest "split then where then joined"
- (assert= "a-b-c" (eval-hs "return \"a,,b,,c\" split by \",\" where it is not \"\" joined by \"-\""))
+ (assert= (eval-hs "return \"a,,b,,c\" split by \",\" where it is not \"\" joined by \"-\"") "a-b-c")
)
(deftest "split then sorted then joined"
- (assert= "apple, banana, cherry" (eval-hs "return \"banana,apple,cherry\" split by \",\" sorted by it joined by \", \""))
+ (assert= (eval-hs "return \"banana,apple,cherry\" split by \",\" sorted by it joined by \", \"") "apple, banana, cherry")
)
(deftest "split then mapped then joined"
- (assert= "5,5" (eval-hs "return \"hello world\" split by \" \" mapped to its length joined by \",\""))
+ (assert= (eval-hs "return \"hello world\" split by \" \" mapped to its length joined by \",\"") "5,5")
)
)
@@ -7025,19 +7042,19 @@
(hs-cleanup!)
(let ((_el-d1 (dom-create-element "div")))
(dom-set-attr _el-d1 "id" "d1")
- ;; HS source has bare quotes — HTML parse artifact
+ ;; HS source has bare quotes or embedded HTML
(dom-append (dom-body) _el-d1)
(dom-dispatch (dom-query-by-id "d1") "click" nil)
- (assert= "bar" (dom-text-content (dom-query-by-id "d1")))
+ (assert= (dom-text-content (dom-query-by-id "d1")) "bar")
))
(deftest "can default of-expression properties"
(hs-cleanup!)
(let ((_el-d1 (dom-create-element "div")))
(dom-set-attr _el-d1 "id" "d1")
- ;; HS source has bare quotes — HTML parse artifact
+ ;; HS source has bare quotes or embedded HTML
(dom-append (dom-body) _el-d1)
(dom-dispatch (dom-query-by-id "d1") "click" nil)
- (assert= "bar" (dom-text-content (dom-query-by-id "d1")))
+ (assert= (dom-text-content (dom-query-by-id "d1")) "bar")
))
(deftest "can default array elements"
(hs-cleanup!)
@@ -7046,7 +7063,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "yes" (dom-text-content _el-div))
+ (assert= (dom-text-content _el-div) "yes")
))
(deftest "default array element respects existing value"
(hs-cleanup!)
@@ -7055,7 +7072,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "existing" (dom-text-content _el-div))
+ (assert= (dom-text-content _el-div) "existing")
))
(deftest "default preserves zero"
(hs-cleanup!)
@@ -7064,7 +7081,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "0" (dom-text-content _el-div))
+ (assert= (dom-text-content _el-div) "0")
))
(deftest "default overwrites empty string"
(hs-cleanup!)
@@ -7073,7 +7090,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "fallback" (dom-text-content _el-div))
+ (assert= (dom-text-content _el-div) "fallback")
))
(deftest "default preserves false"
(hs-cleanup!)
@@ -7082,7 +7099,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "false" (dom-text-content _el-div))
+ (assert= (dom-text-content _el-div) "false")
))
(deftest "can default style ref when unset"
(hs-cleanup!)
@@ -7091,7 +7108,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "" (dom-get-style _el-div "background-color"))
+ (assert= (dom-get-style _el-div "background-color") "")
))
(deftest "default style ref preserves existing value"
(hs-cleanup!)
@@ -7101,7 +7118,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "" (dom-get-style _el-div "color"))
+ (assert= (dom-get-style _el-div "color") "")
))
)
@@ -7114,7 +7131,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "boom" (dom-text-content _el-div))
+ (assert= (dom-text-content _el-div) "boom")
))
)
@@ -7184,7 +7201,7 @@
(deftest "the result in a when clause refers to previous command result, not element being tested"
(hs-cleanup!)
(let ((_el-div (dom-create-element "div")) (_el-s1 (dom-create-element "span")) (_el-s2 (dom-create-element "span")))
- ;; HS source has bare quotes — HTML parse artifact
+ ;; HS source has bare quotes or embedded HTML
(dom-append (dom-body) _el-div)
(dom-set-attr _el-s1 "id" "s1")
(dom-set-attr _el-s1 "style" "display:none")
@@ -7199,7 +7216,7 @@
(deftest "the result after show...when is the matched elements"
(hs-cleanup!)
(let ((_el-div (dom-create-element "div")) (_el-p (dom-create-element "p")) (_el-p2 (dom-create-element "p")) (_el-out (dom-create-element "span")))
- ;; HS source has bare quotes — HTML parse artifact
+ ;; HS source has bare quotes or embedded HTML
(dom-append (dom-body) _el-div)
(dom-set-attr _el-p "style" "display:none")
(dom-append (dom-body) _el-p)
@@ -7208,7 +7225,7 @@
(dom-set-attr _el-out "id" "out")
(dom-append (dom-body) _el-out)
(dom-dispatch _el-div "click" nil)
- (assert= "some" (dom-text-content (dom-query-by-id "out")))
+ (assert= (dom-text-content (dom-query-by-id "out")) "some")
))
)
@@ -7339,7 +7356,7 @@
(dom-append (dom-body) _el-div)
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
- (assert= "clicked" (dom-text-content _el-div))
+ (assert= (dom-text-content _el-div) "clicked")
))
(deftest "recovers across feature boundaries and reports all errors"
(hs-cleanup!)
@@ -7364,7 +7381,7 @@
(let ((_el-div (dom-create-element "div")))
(dom-append (dom-body) _el-div)
(dom-dispatch (dom-query-by-id "d2") "click" nil)
- (assert= "clicked" (dom-text-content (dom-query-by-id "d2")))
+ (assert= (dom-text-content (dom-query-by-id "d2")) "clicked")
))
(deftest "_hyperscript() evaluate API still throws on first error"
(error "NOT IMPLEMENTED: test HTML could not be parsed into SX"))
@@ -7383,31 +7400,31 @@
(hs-activate! _el-d1)
(dom-dispatch (dom-query-by-id "d1") "click" nil)
(dom-dispatch (dom-query-by-id "d1") "click" nil)
- (assert= "10" (dom-get-attr (dom-query-by-id "d1") "out"))
+ (assert= (dom-get-attr (dom-query-by-id "d1") "out") "10")
))
)
;; ── asExpression (17 tests) ──
(defsuite "hs-upstream-asExpression"
(deftest "converts value as Boolean"
- (assert= true (eval-hs "1 as Boolean"))
- (assert= false (eval-hs "0 as Boolean"))
- (assert= false (eval-hs "'' as Boolean"))
- (assert= true (eval-hs "'hello' as Boolean"))
+ (assert= (eval-hs "1 as Boolean") true)
+ (assert= (eval-hs "0 as Boolean") false)
+ (assert= (eval-hs "'' as Boolean") false)
+ (assert= (eval-hs "'hello' as Boolean") true)
)
(deftest "can use the a modifier if you like"
(error "NOT IMPLEMENTED: test HTML could not be parsed into SX"))
(deftest "parses string as JSON to object"
- (assert= "bar" (eval-hs "'{\"foo\":\"bar\"}' as JSON"))
+ (assert= (eval-hs "'{\"foo\":\"bar\"}' as JSON") "bar")
)
(deftest "converts value as JSONString"
- (assert= "{"foo":"bar"}" (eval-hs "{foo:'bar'} as JSONString"))
+ (assert= (eval-hs "{foo:'bar'} as JSONString") "{"foo":"bar"}")
)
(deftest "pipe operator chains conversions"
- (assert= "bar" (eval-hs "{foo:'bar'} as JSONString | JSON"))
+ (assert= (eval-hs "{foo:'bar'} as JSONString | JSON") "bar")
)
(deftest "can use the an modifier if you'd like"
- (assert= "bar" (eval-hs "'{\"foo\":\"bar\"}' as an Object"))
+ (assert= (eval-hs "'{\"foo\":\"bar\"}' as an Object") "bar")
)
(deftest "collects duplicate text inputs into an array"
(error "NOT IMPLEMENTED: test HTML could not be parsed into SX"))
@@ -7439,8 +7456,10 @@
(hs-cleanup!)
(let ((_el-arDiv (dom-create-element "div")))
(dom-set-attr _el-arDiv "id" "arDiv")
- ;; HS source has bare quotes — HTML parse artifact
+ (dom-set-attr _el-arDiv "_" "on click set my @data-foo to \"blue\"")
+ (dom-set-attr _el-arDiv "data-foo" "red")
(dom-append (dom-body) _el-arDiv)
+ (hs-activate! _el-arDiv)
(dom-dispatch (dom-query-by-id "arDiv") "click" nil)
))
)
@@ -7460,7 +7479,7 @@
(let ((_el-table (dom-create-element "table")))
(dom-append (dom-body) _el-table)
(dom-dispatch (dom-query-by-id "master") "click" nil)
- (assert= "2" (dom-text-content (dom-query-by-id "out")))
+ (assert= (dom-text-content (dom-query-by-id "out")) "2")
))
(deftest "closest with to modifier still works after parse change"
(hs-cleanup!)
@@ -7480,7 +7499,7 @@
(dom-append (dom-body) _el-d1)
(hs-activate! _el-d1)
(dom-dispatch (dom-query-by-id "d1") "click" nil)
- (assert= "yes" (dom-text-content (dom-query-by-id "d1")))
+ (assert= (dom-text-content (dom-query-by-id "d1")) "yes")
))
(deftest "is a Node works via instanceof"
(hs-cleanup!)
@@ -7490,7 +7509,7 @@
(dom-append (dom-body) _el-d1)
(hs-activate! _el-d1)
(dom-dispatch (dom-query-by-id "d1") "click" nil)
- (assert= "yes" (dom-text-content (dom-query-by-id "d1")))
+ (assert= (dom-text-content (dom-query-by-id "d1")) "yes")
))
(deftest "is not a works with instanceof fallback"
(hs-cleanup!)
@@ -7500,89 +7519,89 @@
(dom-append (dom-body) _el-d1)
(hs-activate! _el-d1)
(dom-dispatch (dom-query-by-id "d1") "click" nil)
- (assert= "yes" (dom-text-content (dom-query-by-id "d1")))
+ (assert= (dom-text-content (dom-query-by-id "d1")) "yes")
))
(deftest "is ignoring case works"
- (assert= true (eval-hs "'Hello' is 'hello' ignoring case"))
- (assert= true (eval-hs "'Hello' is 'HELLO' ignoring case"))
- (assert= false (eval-hs "'Hello' is 'world' ignoring case"))
+ (assert= (eval-hs "'Hello' is 'hello' ignoring case") true)
+ (assert= (eval-hs "'Hello' is 'HELLO' ignoring case") true)
+ (assert= (eval-hs "'Hello' is 'world' ignoring case") false)
)
(deftest "is not ignoring case works"
- (assert= true (eval-hs "'Hello' is not 'world' ignoring case"))
- (assert= false (eval-hs "'Hello' is not 'hello' ignoring case"))
+ (assert= (eval-hs "'Hello' is not 'world' ignoring case") true)
+ (assert= (eval-hs "'Hello' is not 'hello' ignoring case") false)
)
(deftest "contains ignoring case works"
- (assert= true (eval-hs "'Hello World' contains 'hello' ignoring case"))
- (assert= true (eval-hs "'Hello World' contains 'WORLD' ignoring case"))
- (assert= false (eval-hs "'Hello World' contains 'missing' ignoring case"))
+ (assert= (eval-hs "'Hello World' contains 'hello' ignoring case") true)
+ (assert= (eval-hs "'Hello World' contains 'WORLD' ignoring case") true)
+ (assert= (eval-hs "'Hello World' contains 'missing' ignoring case") false)
)
(deftest "matches ignoring case works"
- (assert= true (eval-hs "'Hello' matches 'hello' ignoring case"))
- (assert= true (eval-hs "'Hello' matches 'HELLO' ignoring case"))
+ (assert= (eval-hs "'Hello' matches 'hello' ignoring case") true)
+ (assert= (eval-hs "'Hello' matches 'HELLO' ignoring case") true)
)
(deftest "starts with works"
- (assert= true (eval-hs "'hello world' starts with 'hello'"))
- (assert= false (eval-hs "'hello world' starts with 'world'"))
- (assert= true (eval-hs "'hello' starts with 'hello'"))
- (assert= false (eval-hs "'' starts with 'x'"))
+ (assert= (eval-hs "'hello world' starts with 'hello'") true)
+ (assert= (eval-hs "'hello world' starts with 'world'") false)
+ (assert= (eval-hs "'hello' starts with 'hello'") true)
+ (assert= (eval-hs "'' starts with 'x'") false)
)
(deftest "ends with works"
- (assert= true (eval-hs "'hello world' ends with 'world'"))
- (assert= false (eval-hs "'hello world' ends with 'hello'"))
- (assert= true (eval-hs "'hello' ends with 'hello'"))
- (assert= false (eval-hs "'' ends with 'x'"))
+ (assert= (eval-hs "'hello world' ends with 'world'") true)
+ (assert= (eval-hs "'hello world' ends with 'hello'") false)
+ (assert= (eval-hs "'hello' ends with 'hello'") true)
+ (assert= (eval-hs "'' ends with 'x'") false)
)
(deftest "does not start with works"
- (assert= false (eval-hs "'hello world' does not start with 'hello'"))
- (assert= true (eval-hs "'hello world' does not start with 'world'"))
+ (assert= (eval-hs "'hello world' does not start with 'hello'") false)
+ (assert= (eval-hs "'hello world' does not start with 'world'") true)
)
(deftest "does not end with works"
- (assert= false (eval-hs "'hello world' does not end with 'world'"))
- (assert= true (eval-hs "'hello world' does not end with 'hello'"))
+ (assert= (eval-hs "'hello world' does not end with 'world'") false)
+ (assert= (eval-hs "'hello world' does not end with 'hello'") true)
)
(deftest "starts with null is false"
- (assert= false (eval-hs "null starts with 'x'"))
- (assert= true (eval-hs "null does not start with 'x'"))
+ (assert= (eval-hs "null starts with 'x'") false)
+ (assert= (eval-hs "null does not start with 'x'") true)
)
(deftest "ends with null is false"
- (assert= false (eval-hs "null ends with 'x'"))
- (assert= true (eval-hs "null does not end with 'x'"))
+ (assert= (eval-hs "null ends with 'x'") false)
+ (assert= (eval-hs "null does not end with 'x'") true)
)
(deftest "starts with ignoring case works"
- (assert= true (eval-hs "'Hello World' starts with 'hello' ignoring case"))
- (assert= true (eval-hs "'Hello World' starts with 'HELLO' ignoring case"))
- (assert= false (eval-hs "'Hello World' starts with 'world' ignoring case"))
+ (assert= (eval-hs "'Hello World' starts with 'hello' ignoring case") true)
+ (assert= (eval-hs "'Hello World' starts with 'HELLO' ignoring case") true)
+ (assert= (eval-hs "'Hello World' starts with 'world' ignoring case") false)
)
(deftest "ends with ignoring case works"
- (assert= true (eval-hs "'Hello World' ends with 'world' ignoring case"))
- (assert= true (eval-hs "'Hello World' ends with 'WORLD' ignoring case"))
- (assert= false (eval-hs "'Hello World' ends with 'hello' ignoring case"))
+ (assert= (eval-hs "'Hello World' ends with 'world' ignoring case") true)
+ (assert= (eval-hs "'Hello World' ends with 'WORLD' ignoring case") true)
+ (assert= (eval-hs "'Hello World' ends with 'hello' ignoring case") false)
)
(deftest "starts with coerces to string"
- (assert= true (eval-hs "123 starts with '12'"))
- (assert= false (eval-hs "123 starts with '23'"))
+ (assert= (eval-hs "123 starts with '12'") true)
+ (assert= (eval-hs "123 starts with '23'") false)
)
(deftest "ends with coerces to string"
- (assert= true (eval-hs "123 ends with '23'"))
- (assert= false (eval-hs "123 ends with '12'"))
+ (assert= (eval-hs "123 ends with '23'") true)
+ (assert= (eval-hs "123 ends with '12'") false)
)
(deftest "is between works"
- (assert= true (eval-hs "5 is between 1 and 10"))
- (assert= true (eval-hs "1 is between 1 and 10"))
- (assert= true (eval-hs "10 is between 1 and 10"))
- (assert= false (eval-hs "0 is between 1 and 10"))
- (assert= false (eval-hs "11 is between 1 and 10"))
+ (assert= (eval-hs "5 is between 1 and 10") true)
+ (assert= (eval-hs "1 is between 1 and 10") true)
+ (assert= (eval-hs "10 is between 1 and 10") true)
+ (assert= (eval-hs "0 is between 1 and 10") false)
+ (assert= (eval-hs "11 is between 1 and 10") false)
)
(deftest "is not between works"
- (assert= false (eval-hs "5 is not between 1 and 10"))
- (assert= true (eval-hs "0 is not between 1 and 10"))
- (assert= true (eval-hs "11 is not between 1 and 10"))
- (assert= false (eval-hs "1 is not between 1 and 10"))
- (assert= false (eval-hs "10 is not between 1 and 10"))
+ (assert= (eval-hs "5 is not between 1 and 10") false)
+ (assert= (eval-hs "0 is not between 1 and 10") true)
+ (assert= (eval-hs "11 is not between 1 and 10") true)
+ (assert= (eval-hs "1 is not between 1 and 10") false)
+ (assert= (eval-hs "10 is not between 1 and 10") false)
)
(deftest "between works with strings"
- (assert= true (eval-hs "'b' is between 'a' and 'c'"))
- (assert= false (eval-hs "'d' is between 'a' and 'c'"))
+ (assert= (eval-hs "'b' is between 'a' and 'c'") true)
+ (assert= (eval-hs "'d' is between 'a' and 'c'") false)
)
(deftest "I am between works"
(error "NOT IMPLEMENTED: test HTML could not be parsed into SX"))
@@ -7625,47 +7644,47 @@
(dom-append (dom-body) _el-b)
))
(deftest "precedes with null is false"
- (assert= false (eval-hs "null precedes null"))
- (assert= true (eval-hs "null does not precede null"))
+ (assert= (eval-hs "null precedes null") false)
+ (assert= (eval-hs "null does not precede null") true)
)
(deftest "I precede works"
(hs-cleanup!)
(let ((_el-a (dom-create-element "div")) (_el-b (dom-create-element "div")))
(dom-set-attr _el-a "id" "a")
- ;; HS source has bare quotes — HTML parse artifact
+ ;; HS source has bare quotes or embedded HTML
(dom-append (dom-body) _el-a)
(dom-set-attr _el-b "id" "b")
(dom-append (dom-body) _el-b)
(dom-dispatch (dom-query-by-id "a") "click" nil)
- (assert= "yes" (dom-text-content (dom-query-by-id "a")))
+ (assert= (dom-text-content (dom-query-by-id "a")) "yes")
))
(deftest "is really works without equal to"
- (assert= true (eval-hs "2 is really 2"))
- (assert= false (eval-hs "2 is really '2'"))
+ (assert= (eval-hs "2 is really 2") true)
+ (assert= (eval-hs "2 is really '2'") false)
)
(deftest "is not really works without equal to"
- (assert= true (eval-hs "2 is not really '2'"))
- (assert= false (eval-hs "2 is not really 2"))
+ (assert= (eval-hs "2 is not really '2'") true)
+ (assert= (eval-hs "2 is not really 2") false)
)
(deftest "is equal works without to"
- (assert= true (eval-hs "2 is equal 2"))
- (assert= false (eval-hs "2 is equal 1"))
+ (assert= (eval-hs "2 is equal 2") true)
+ (assert= (eval-hs "2 is equal 1") false)
)
(deftest "is not equal works without to"
- (assert= false (eval-hs "2 is not equal 2"))
- (assert= true (eval-hs "2 is not equal 1"))
+ (assert= (eval-hs "2 is not equal 2") false)
+ (assert= (eval-hs "2 is not equal 1") true)
)
(deftest "am works as alias for is"
- (assert= true (eval-hs "2 am 2"))
- (assert= false (eval-hs "2 am 1"))
+ (assert= (eval-hs "2 am 2") true)
+ (assert= (eval-hs "2 am 1") false)
)
(deftest "is not undefined still works as equality"
- (assert= true (eval-hs "5 is not undefined"))
- (assert= false (eval-hs "null is not undefined"))
+ (assert= (eval-hs "5 is not undefined") true)
+ (assert= (eval-hs "null is not undefined") false)
)
(deftest "is not null still works as equality"
- (assert= true (eval-hs "5 is not null"))
- (assert= false (eval-hs "null is not null"))
+ (assert= (eval-hs "5 is not null") true)
+ (assert= (eval-hs "null is not null") false)
)
(deftest "is falls back to boolean property when rhs is undefined"
(hs-cleanup!)
@@ -7725,7 +7744,7 @@
;; ── in (1 tests) ──
(defsuite "hs-upstream-in"
(deftest "null value in array returns empty"
- (assert= (list) (eval-hs "null in [1, 2, 3]"))
+ (assert= (eval-hs "null in [1, 2, 3]") (list))
)
)
@@ -7742,47 +7761,47 @@
;; ── mathOperator (5 tests) ──
(defsuite "hs-upstream-mathOperator"
(deftest "array + array concats"
- (assert= (list 1 2 3 4) (eval-hs "[1, 2] + [3, 4]"))
+ (assert= (eval-hs "[1, 2] + [3, 4]") (list 1 2 3 4))
)
(deftest "array + single value appends"
- (assert= (list 1 2 3) (eval-hs "[1, 2] + 3"))
+ (assert= (eval-hs "[1, 2] + 3") (list 1 2 3))
)
(deftest "array + array does not mutate original"
- (assert= (list 1 2) (eval-hs "set a to [1, 2] then set b to a + [3] then return a"))
+ (assert= (eval-hs "set a to [1, 2] then set b to a + [3] then return a") (list 1 2))
)
(deftest "array concat chains"
- (assert= (list 1 2 3) (eval-hs "[1] + [2] + [3]"))
+ (assert= (eval-hs "[1] + [2] + [3]") (list 1 2 3))
)
(deftest "empty array + array works"
- (assert= (list 1 2) (eval-hs "[] + [1, 2]"))
+ (assert= (eval-hs "[] + [1, 2]") (list 1 2))
)
)
;; ── no (5 tests) ──
(defsuite "hs-upstream-no"
(deftest "no returns false for non-empty array"
- (assert= false (eval-hs "no ['thing']"))
+ (assert= (eval-hs "no ['thing']") false)
)
(deftest "no with where filters then checks emptiness"
- (assert= true (eval-hs "no [1, 2, 3] where it > 5"))
+ (assert= (eval-hs "no [1, 2, 3] where it > 5") true)
)
(deftest "no with where returns false when matches exist"
- (assert= false (eval-hs "no [1, 2, 3] where it > 1"))
+ (assert= (eval-hs "no [1, 2, 3] where it > 1") false)
)
(deftest "no with where and is not"
- (assert= false (eval-hs "no [1, 2, 3] where it is not 2"))
+ (assert= (eval-hs "no [1, 2, 3] where it is not 2") false)
)
(deftest "no with where on DOM elements"
(hs-cleanup!)
(let ((_el-box (dom-create-element "div")) (_el-button (dom-create-element "button")) (_el-out (dom-create-element "div")))
(dom-set-attr _el-box "id" "box")
(dom-append (dom-body) _el-box)
- ;; HS source has bare quotes — HTML parse artifact
+ ;; HS source has bare quotes or embedded HTML
(dom-append (dom-body) _el-button)
(dom-set-attr _el-out "id" "out")
(dom-append (dom-body) _el-out)
(dom-dispatch _el-button "click" nil)
- (assert= "none" (dom-text-content (dom-query-by-id "out")))
+ (assert= (dom-text-content (dom-query-by-id "out")) "none")
))
)
diff --git a/tests/playwright/generate-sx-tests.py b/tests/playwright/generate-sx-tests.py
index e8fdfce0..83dd8957 100644
--- a/tests/playwright/generate-sx-tests.py
+++ b/tests/playwright/generate-sx-tests.py
@@ -305,14 +305,14 @@ def check_to_sx(check, ref):
return f'(assert (not (dom-has-class? {r} "{key}")))'
elif typ == 'innerHTML':
escaped = key.replace('"', '\\"') if isinstance(key, str) else key
- return f'(assert= "{escaped}" (dom-inner-html {r}))'
+ return f'(assert= (dom-inner-html {r}) "{escaped}")'
elif typ == 'textContent':
escaped = key.replace('"', '\\"')
- return f'(assert= "{escaped}" (dom-text-content {r}))'
+ return f'(assert= (dom-text-content {r}) "{escaped}")'
elif typ == 'style':
- return f'(assert= "{val}" (dom-get-style {r} "{key}"))'
+ return f'(assert= (dom-get-style {r} "{key}") "{val}")'
elif typ == 'attr':
- return f'(assert= "{val}" (dom-get-attr {r} "{key}"))'
+ return f'(assert= (dom-get-attr {r} "{key}") "{val}")'
elif typ == 'hasAttr' and val:
return f'(assert (dom-has-attr? {r} "{key}"))'
elif typ == 'hasAttr' and not val:
@@ -324,7 +324,7 @@ def check_to_sx(check, ref):
elif typ == 'hasParent':
return f'(assert (not (nil? (dom-parent {r}))))'
elif typ == 'value':
- return f'(assert= "{key}" (dom-get-prop {r} "value"))'
+ return f'(assert= (dom-get-prop {r} "value") "{key}")'
else:
return f';; SKIP check: {typ} {name}'
@@ -365,16 +365,16 @@ def pw_assertion_to_sx(target, negated, assert_type, args_str):
val = args[0] if args else ''
escaped = val.replace('\\', '\\\\').replace('"', '\\"')
if negated:
- return f'(assert (!= "{escaped}" (dom-text-content {target})))'
- return f'(assert= "{escaped}" (dom-text-content {target}))'
+ return f'(assert (!= (dom-text-content {target}) "{escaped}"))'
+ return f'(assert= (dom-text-content {target}) "{escaped}")'
elif assert_type == 'toHaveAttribute':
attr_name = args[0] if args else ''
if len(args) >= 2:
attr_val = args[1].replace('\\', '\\\\').replace('"', '\\"')
if negated:
- return f'(assert (!= "{attr_val}" (dom-get-attr {target} "{attr_name}")))'
- return f'(assert= "{attr_val}" (dom-get-attr {target} "{attr_name}"))'
+ return f'(assert (!= (dom-get-attr {target} "{attr_name}") "{attr_val}"))'
+ return f'(assert= (dom-get-attr {target} "{attr_name}") "{attr_val}")'
else:
if negated:
return f'(assert (not (dom-has-attr? {target} "{attr_name}")))'
@@ -396,15 +396,15 @@ def pw_assertion_to_sx(target, negated, assert_type, args_str):
val = args[1] if len(args) >= 2 else ''
escaped = val.replace('\\', '\\\\').replace('"', '\\"')
if negated:
- return f'(assert (!= "{escaped}" (dom-get-style {target} "{prop}")))'
- return f'(assert= "{escaped}" (dom-get-style {target} "{prop}"))'
+ return f'(assert (!= (dom-get-style {target} "{prop}") "{escaped}"))'
+ return f'(assert= (dom-get-style {target} "{prop}") "{escaped}")'
elif assert_type == 'toHaveValue':
val = args[0] if args else ''
escaped = val.replace('\\', '\\\\').replace('"', '\\"')
if negated:
- return f'(assert (!= "{escaped}" (dom-get-prop {target} "value")))'
- return f'(assert= "{escaped}" (dom-get-prop {target} "value"))'
+ return f'(assert (!= (dom-get-prop {target} "value") "{escaped}"))'
+ return f'(assert= (dom-get-prop {target} "value") "{escaped}")'
elif assert_type == 'toBeVisible':
if negated:
@@ -505,12 +505,16 @@ def emit_element_setup(lines, elements, var_names):
hs_val = re.sub(r'(then\s*)+then', 'then', hs_val)
# Don't insert 'then' between event name and first command in 'on' handlers
hs_val = re.sub(r'\bon (\w[\w.:+-]*) then\b', r'on \1 ', hs_val)
+ # Don't insert 'then' inside for-in loop bodies (between collection and body)
+ hs_val = re.sub(r'(\bin \[.*?\]) then\b', r'\1 ', hs_val)
+ # Don't insert 'then' after 'times' in repeat N times loops
+ hs_val = re.sub(r'\btimes then\b', 'times ', hs_val)
hs_val = hs_val.strip()
if not hs_val:
lines.append(f' (dom-append (dom-body) {var})')
continue
- if hs_val.startswith('"') or hs_val.endswith('"'):
- lines.append(f' ;; HS source has bare quotes — HTML parse artifact')
+ if hs_val.startswith('"') or (hs_val.endswith('"') and '<' in hs_val):
+ lines.append(f' ;; HS source has bare quotes or embedded HTML')
lines.append(f' (dom-append (dom-body) {var})')
continue
hs_escaped = hs_val.replace('\\', '\\\\').replace('"', '\\"')
@@ -657,7 +661,7 @@ def generate_eval_only_test(test, idx):
):
hs_expr = extract_hs_expr(m.group(2))
expected_sx = js_val_to_sx(m.group(3))
- assertions.append(f' (assert= {expected_sx} (eval-hs "{hs_expr}"))')
+ assertions.append(f' (assert= (eval-hs "{hs_expr}") {expected_sx})')
# Pattern 1b: Inline — run("expr").toEqual([...])
for m in re.finditer(
@@ -666,7 +670,7 @@ def generate_eval_only_test(test, idx):
):
hs_expr = extract_hs_expr(m.group(2))
expected_sx = js_val_to_sx(m.group(3))
- assertions.append(f' (assert= {expected_sx} (eval-hs "{hs_expr}"))')
+ assertions.append(f' (assert= (eval-hs "{hs_expr}") {expected_sx})')
# Pattern 2: Two-line — var result = await run(`expr`); expect(result).toBe(val)
if not assertions:
@@ -678,10 +682,10 @@ def generate_eval_only_test(test, idx):
hs_expr = extract_hs_expr(run_match.group(2))
for m in re.finditer(r'\.toBe\(([^)]+)\)', body):
expected_sx = js_val_to_sx(m.group(1))
- assertions.append(f' (assert= {expected_sx} (eval-hs "{hs_expr}"))')
+ assertions.append(f' (assert= (eval-hs "{hs_expr}") {expected_sx})')
for m in re.finditer(r'\.toEqual\((\[.*?\])\)', body, re.DOTALL):
expected_sx = js_val_to_sx(m.group(1))
- assertions.append(f' (assert= {expected_sx} (eval-hs "{hs_expr}"))')
+ assertions.append(f' (assert= (eval-hs "{hs_expr}") {expected_sx})')
# Pattern 3: toThrow — expect(() => run("expr")).toThrow()
for m in re.finditer(