Files
rose-ash/shared/static/wasm/sx/boot-helpers.sxbc
giles e0070041d6 Add .sxbc s-expression bytecode format
Bytecode modules are now serialized as s-expressions (.sxbc) in addition
to JSON (.sxbc.json). The .sxbc format is the canonical representation —
content-addressable, parseable by the SX parser, and suitable for CID
referencing. Annotation layers (source maps, variable names, tests, docs)
can reference the bytecode CID without polluting the bytecode itself.

Format: (sxbc version hash (code :arity N :bytecode (...) :constants (...)))

The browser loader tries .sxbc first (via load-sxbc kernel primitive),
falls back to .sxbc.json. Caddy needs .sxbc MIME type to serve the new
format (currently 404s, JSON fallback works).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27 14:16:22 +00:00

818 lines
31 KiB
Plaintext

(sxbc 1 "069ff5bca83eab9f"
(code
:bytecode (1 1 0 128 0 0 5 51 3 0 128 2 0 5 51 5 0 128 4 0 5 51 7 0 128 6 0 5 51 9 0 128 8 0 5 51 11 0 128 10 0 5 51 13 0 128 12 0 5 51 15 0 128 14 0 5 51 17 0 128 16 0 5 51 19 0 128 18 0 5 51 21 0 128 20 0 5 51 23 0 128 22 0 5 51 25 0 128 24 0 5 51 27 0 128 26 0 5 51 29 0 128 28 0 5 51 31 0 128 30 0 5 51 33 0 128 32 0 5 51 35 0 128 34 0 5 51 37 0 128 36 0 5 51 39 0 128 38 0 5 51 41 0 128 40 0 5 51 43 0 128 42 0 5 51 45 0 128 44 0 5 51 47 0 128 46 0 5 51 47 0 128 48 0 5 51 50 0 128 49 0 5 51 50 0 128 51 0 5 51 53 0 128 52 0 5 51 55 0 128 54 0 5 51 47 0 128 56 0 5 51 47 0 128 57 0 5 51 59 0 128 58 0 5 51 61 0 128 60 0 5 51 63 0 128 62 0 5 51 65 0 128 64 0 5 51 67 0 128 66 0 5 51 69 0 128 68 0 5 51 71 0 128 70 0 5 51 73 0 128 72 0 5 51 75 0 128 74 0 5 51 77 0 128 76 0 5 51 79 0 128 78 0 5 51 81 0 128 80 0 5 51 83 0 128 82 0 5 51 85 0 128 84 0 5 51 87 0 128 86 0 5 51 89 0 128 88 0 5 51 91 0 128 90 0 5 51 93 0 128 92 0 5 51 95 0 128 94 0 5 51 97 0 128 96 0 5 51 99 0 128 98 0 5 51 101 0 128 100 0 5 51 103 0 128 102 0 5 51 47 0 128 104 0 5 51 106 0 128 105 0 5 51 108 0 128 107 0 5 51 110 0 128 109 0 5 51 112 0 128 111 0 5 51 114 0 128 113 0 5 51 116 0 128 115 0 5 51 118 0 128 117 0 5 51 120 0 128 119 0 5 51 122 0 128 121 0 5 51 50 0 128 123 0 5 51 47 0 128 124 0 5 51 47 0 128 125 0 5 51 27 0 128 126 0 5 51 128 0 128 127 0 5 51 130 0 128 129 0 5 51 132 0 128 131 0 5 51 134 0 128 133 0 5 51 134 0 128 135 0 5 51 134 0 128 136 0 5 51 134 0 128 137 0 5 51 134 0 128 138 0 50)
:constants (
"_sx-bound-prefix"
"_sxBound"
"mark-processed!"
(code :arity 2
:bytecode (20 0 0 16 0 20 2 0 16 1 52 1 0 2 3 49 3 50)
:constants (
"host-set!"
"str"
"_sx-bound-prefix"))
"is-processed?"
(code :arity 2
:bytecode (20 0 0 16 0 20 2 0 16 1 52 1 0 2 48 2 17 2 16 2 33 4 0 3 32 1 0 4 50)
:constants (
"host-get"
"str"
"_sx-bound-prefix"))
"clear-processed!"
(code :arity 2
:bytecode (20 0 0 16 0 20 2 0 16 1 52 1 0 2 2 49 3 50)
:constants (
"host-set!"
"str"
"_sx-bound-prefix"))
"callable?"
(code :arity 1
:bytecode (16 0 52 0 0 1 17 1 16 1 1 2 0 52 1 0 2 6 34 24 0 5 16 1 1 3 0 52 1 0 2 6 34 10 0 5 16 1 1 4 0 52 1 0 2 50)
:constants (
"type-of"
"="
"lambda"
"native-fn"
"continuation"))
"to-kebab"
(code :arity 1
:bytecode (1 0 0 5 52 1 0 0 17 1 1 2 0 17 2 2 17 3 51 3 0 1 0 1 1 1 3 17 3 16 3 1 2 0 48 1 5 1 5 0 16 1 52 4 0 2 50)
:constants (
"Convert camelCase to kebab-case."
"list"
0
(code :arity 1 :upvalue-count 3
:bytecode (16 0 18 0 52 1 0 1 52 0 0 2 33 105 0 18 0 16 0 52 2 0 2 17 1 16 1 1 4 0 52 3 0 2 6 33 10 0 5 16 1 1 6 0 52 5 0 2 33 43 0 16 0 1 8 0 52 7 0 2 33 13 0 20 9 0 18 1 1 10 0 48 2 32 1 0 2 5 20 9 0 18 1 16 1 52 11 0 1 48 2 32 9 0 20 9 0 18 1 16 1 48 2 5 18 2 16 0 1 13 0 52 12 0 2 49 1 32 1 0 2 50)
:constants (
"<"
"len"
"nth"
">="
"A"
"<="
"Z"
">"
0
"append!"
"-"
"lower"
"+"
1))
"join"
""))
"sx-load-components"
(code :arity 1
:bytecode (1 0 0 5 16 0 6 33 14 0 5 16 0 52 2 0 1 1 3 0 52 1 0 2 33 21 0 20 4 0 16 0 48 1 17 1 51 6 0 16 1 52 5 0 2 32 1 0 2 50)
:constants (
"Parse and evaluate component definitions from text."
">"
"len"
0
"sx-parse"
"for-each"
(code :arity 1
:bytecode (20 0 0 16 0 49 1 50)
:constants (
"cek-eval"))))
"call-expr"
(code :arity 2
:bytecode (1 0 0 5 20 1 0 16 0 48 1 17 2 16 2 52 3 0 1 52 2 0 1 33 14 0 20 4 0 16 2 52 5 0 1 49 1 32 1 0 2 50)
:constants (
"Parse and evaluate an SX expression string."
"sx-parse"
"not"
"empty?"
"cek-eval"
"first"))
"base-env"
(code
:bytecode (1 0 0 5 20 1 0 49 0 50)
:constants (
"Return the current global environment."
"global-env"))
"get-render-env"
(code :arity 1
:bytecode (1 0 0 5 20 1 0 48 0 17 1 16 0 6 33 11 0 5 16 0 52 3 0 1 52 2 0 1 33 12 0 20 4 0 16 1 16 0 49 2 32 2 0 16 1 50)
:constants (
"Get the rendering environment (global env, optionally merged with extra)."
"base-env"
"not"
"nil?"
"env-merge"))
"merge-envs"
(code :arity 2
:bytecode (1 0 0 5 16 0 6 33 3 0 5 16 1 33 12 0 20 1 0 16 0 16 1 49 2 32 19 0 16 0 6 34 13 0 5 16 1 6 34 6 0 5 20 2 0 49 0 50)
:constants (
"Merge two environments."
"env-merge"
"global-env"))
"sx-render-with-env"
(code :arity 2
:bytecode (1 0 0 5 20 1 0 1 2 0 48 1 17 2 20 3 0 16 2 1 4 0 48 2 17 3 20 5 0 16 0 48 1 17 4 51 7 0 1 2 1 3 16 4 52 6 0 2 5 16 3 50)
:constants (
"Parse SX source and render to DOM fragment."
"host-global"
"document"
"host-call"
"createDocumentFragment"
"sx-parse"
"for-each"
(code :arity 1 :upvalue-count 2
:bytecode (20 0 0 16 0 48 1 17 1 16 1 6 33 14 0 5 16 1 52 2 0 1 1 3 0 52 1 0 2 33 51 0 20 4 0 18 0 1 5 0 1 6 0 48 3 17 2 20 7 0 16 2 1 8 0 16 1 48 3 5 20 4 0 18 1 1 9 0 20 10 0 16 2 1 11 0 48 2 49 3 32 1 0 2 50)
:constants (
"render-to-html"
">"
"len"
0
"host-call"
"createElement"
"template"
"host-set!"
"innerHTML"
"appendChild"
"host-get"
"content"))))
"parse-env-attr"
(code :arity 1
:bytecode (1 0 0 5 2 50)
:constants (
"Parse data-sx-env attribute (JSON key-value pairs)."))
"store-env-attr"
(code :arity 3
:bytecode (2 50)
:constants ())
"resolve-mount-target"
(code :arity 1
:bytecode (1 0 0 5 16 0 52 1 0 1 33 10 0 20 2 0 16 0 49 1 32 2 0 16 0 50)
:constants (
"Resolve a CSS selector string to a DOM element."
"string?"
"dom-query"))
"remove-head-element"
(code :arity 1
:bytecode (1 0 0 5 20 1 0 16 0 48 1 17 1 16 1 33 10 0 20 2 0 16 1 49 1 32 1 0 2 50)
:constants (
"Remove a <head> element matching selector."
"dom-query"
"dom-remove"))
"set-sx-comp-cookie"
(code :arity 1
:bytecode (1 1 0 16 0 52 0 0 2 50)
:constants (
"set-cookie"
"sx-components"))
"clear-sx-comp-cookie"
(code
:bytecode (1 1 0 1 2 0 52 0 0 2 50)
:constants (
"set-cookie"
"sx-components"
""))
"log-parse-error"
(code :arity 3
:bytecode (20 0 0 1 2 0 16 0 1 3 0 16 2 52 1 0 4 49 1 50)
:constants (
"log-error"
"str"
"Parse error in "
": "))
"loaded-component-names"
(code
:bytecode (20 0 0 20 1 0 48 0 1 2 0 48 2 17 0 52 3 0 0 17 1 51 5 0 1 1 16 0 52 4 0 2 5 16 1 50)
:constants (
"dom-query-all"
"dom-body"
"script[data-components]"
"list"
"for-each"
(code :arity 1 :upvalue-count 1
:bytecode (20 0 0 16 0 1 1 0 48 2 6 34 4 0 5 1 2 0 17 1 16 1 52 4 0 1 1 5 0 52 3 0 2 33 21 0 51 7 0 0 0 16 1 1 9 0 52 8 0 2 52 6 0 2 32 1 0 2 50)
:constants (
"dom-get-attr"
"data-components"
""
">"
"len"
0
"for-each"
(code :arity 1 :upvalue-count 1
:bytecode (16 0 52 2 0 1 52 1 0 1 1 3 0 52 0 0 2 33 16 0 20 4 0 18 0 16 0 52 2 0 1 49 2 32 1 0 2 50)
:constants (
">"
"len"
"trim"
0
"append!"))
"split"
","))))
"csrf-token"
(code
:bytecode (20 0 0 1 1 0 48 1 17 0 16 0 33 13 0 20 2 0 16 0 1 3 0 49 2 32 1 0 2 50)
:constants (
"dom-query"
"meta[name=\"csrf-token\"]"
"dom-get-attr"
"content"))
"validate-for-request"
(code :arity 1
:bytecode (3 50)
:constants ())
"build-request-body"
(code :arity 3
:bytecode (16 1 52 0 0 1 17 3 16 3 1 2 0 52 1 0 2 6 34 10 0 5 16 3 1 3 0 52 1 0 2 33 167 0 16 0 6 33 27 0 5 20 4 0 16 0 48 1 6 34 4 0 5 1 5 0 52 0 0 1 1 6 0 52 1 0 2 33 111 0 20 7 0 1 8 0 16 0 48 2 17 4 20 7 0 1 9 0 16 4 48 2 17 5 20 10 0 16 5 1 11 0 48 2 17 6 1 13 0 16 6 6 33 14 0 5 16 6 52 15 0 1 1 16 0 52 14 0 2 33 32 0 16 2 16 2 1 19 0 52 18 0 2 33 6 0 1 20 0 32 3 0 1 19 0 16 6 52 17 0 3 32 2 0 16 2 1 21 0 2 1 22 0 2 52 12 0 6 32 17 0 1 13 0 16 2 1 21 0 2 1 22 0 2 52 12 0 6 32 173 0 16 0 6 33 27 0 5 20 4 0 16 0 48 1 6 34 4 0 5 1 5 0 52 0 0 1 1 6 0 52 1 0 2 33 120 0 20 23 0 16 0 1 24 0 48 2 6 34 4 0 5 1 25 0 17 4 16 4 1 26 0 52 1 0 2 33 33 0 20 7 0 1 8 0 16 0 48 2 17 5 1 13 0 16 2 1 21 0 16 5 1 22 0 2 52 12 0 6 32 52 0 20 7 0 1 8 0 16 0 48 2 17 5 20 7 0 1 9 0 16 5 48 2 17 6 1 13 0 16 2 1 21 0 20 10 0 16 6 1 11 0 48 2 1 22 0 1 25 0 52 12 0 6 32 17 0 1 13 0 16 2 1 21 0 2 1 22 0 2 52 12 0 6 50)
:constants (
"upper"
"="
"GET"
"HEAD"
"dom-tag-name"
""
"FORM"
"host-new"
"FormData"
"URLSearchParams"
"host-call"
"toString"
"dict"
"url"
">"
"len"
0
"str"
"contains?"
"?"
"&"
"body"
"content-type"
"dom-get-attr"
"enctype"
"application/x-www-form-urlencoded"
"multipart/form-data"))
"abort-previous-target"
(code :arity 1
:bytecode (2 50)
:constants ())
"abort-previous"
"track-controller"
(code :arity 2
:bytecode (2 50)
:constants ())
"track-controller-target"
"new-abort-controller"
(code
:bytecode (20 0 0 1 1 0 49 1 50)
:constants (
"host-new"
"AbortController"))
"abort-signal"
(code :arity 1
:bytecode (20 0 0 16 0 1 1 0 49 2 50)
:constants (
"host-get"
"signal"))
"apply-optimistic"
"revert-optimistic"
"dom-has-attr?"
(code :arity 2
:bytecode (20 0 0 16 0 1 1 0 16 1 49 3 50)
:constants (
"host-call"
"hasAttribute"))
"show-indicator"
(code :arity 1
:bytecode (20 0 0 16 0 1 1 0 48 2 17 1 16 1 33 42 0 20 2 0 16 1 48 1 17 2 16 2 33 24 0 20 3 0 16 2 1 4 0 48 2 5 20 5 0 16 2 1 6 0 48 2 32 1 0 2 32 1 0 2 5 16 1 50)
:constants (
"dom-get-attr"
"sx-indicator"
"dom-query"
"dom-remove-class"
"hidden"
"dom-add-class"
"sx-indicator-visible"))
"disable-elements"
(code :arity 1
:bytecode (20 0 0 16 0 1 1 0 48 2 17 1 16 1 33 29 0 20 2 0 20 3 0 48 0 16 1 48 2 17 2 51 5 0 16 2 52 4 0 2 5 16 2 32 4 0 52 6 0 0 50)
:constants (
"dom-get-attr"
"sx-disabled-elt"
"dom-query-all"
"dom-body"
"for-each"
(code :arity 1
:bytecode (20 0 0 16 0 1 1 0 1 2 0 49 3 50)
:constants (
"dom-set-attr"
"disabled"
""))
"list"))
"clear-loading-state"
(code :arity 3
:bytecode (20 0 0 16 0 1 1 0 48 2 5 20 2 0 16 0 1 3 0 48 2 5 16 1 33 42 0 20 4 0 16 1 48 1 17 3 16 3 33 24 0 20 5 0 16 3 1 6 0 48 2 5 20 0 0 16 3 1 7 0 48 2 32 1 0 2 32 1 0 2 5 16 2 33 12 0 51 9 0 16 2 52 8 0 2 32 1 0 2 50)
:constants (
"dom-remove-class"
"sx-request"
"dom-remove-attr"
"aria-busy"
"dom-query"
"dom-add-class"
"hidden"
"sx-indicator-visible"
"for-each"
(code :arity 1
:bytecode (20 0 0 16 0 1 1 0 49 2 50)
:constants (
"dom-remove-attr"
"disabled"))))
"abort-error?"
(code :arity 1
:bytecode (20 1 0 16 0 1 2 0 48 2 1 3 0 52 0 0 2 50)
:constants (
"="
"host-get"
"name"
"AbortError"))
"promise-catch"
(code :arity 2
:bytecode (20 0 0 16 1 48 1 17 2 20 1 0 16 0 1 2 0 16 2 49 3 50)
:constants (
"host-callback"
"host-call"
"catch"))
"fetch-request"
(code :arity 3
:bytecode (16 0 1 1 0 52 0 0 2 17 3 16 0 1 2 0 52 0 0 2 6 34 4 0 5 1 3 0 17 4 16 0 1 4 0 52 0 0 2 6 34 5 0 5 52 5 0 0 17 5 16 0 1 6 0 52 0 0 2 17 6 16 0 1 7 0 52 0 0 2 17 7 16 0 1 8 0 52 0 0 2 17 8 16 8 33 16 0 16 1 3 1 9 0 51 10 0 16 8 49 4 32 139 0 20 11 0 1 12 0 48 1 17 9 20 11 0 1 13 0 48 1 17 10 51 15 0 1 9 1 5 16 5 52 16 0 1 52 14 0 2 5 20 17 0 16 10 1 2 0 16 4 48 3 5 20 17 0 16 10 1 4 0 16 9 48 3 5 16 6 33 15 0 20 17 0 16 10 1 6 0 16 6 48 3 32 1 0 2 5 16 7 33 15 0 20 17 0 16 10 1 7 0 16 7 48 3 32 1 0 2 5 20 18 0 20 19 0 20 20 0 48 0 1 21 0 16 3 16 10 48 4 51 22 0 1 1 1 2 16 2 49 3 50)
:constants (
"get"
"url"
"method"
"GET"
"headers"
"dict"
"body"
"signal"
"preloaded"
200
(code :arity 1
:bytecode (2 50)
:constants ())
"host-new"
"Headers"
"Object"
"for-each"
(code :arity 1 :upvalue-count 2
:bytecode (20 0 0 18 0 1 1 0 16 0 18 1 16 0 52 2 0 2 49 4 50)
:constants (
"host-call"
"set"
"get"))
"keys"
"host-set!"
"promise-then"
"host-call"
"dom-window"
"fetch"
(code :arity 1 :upvalue-count 2
:bytecode (20 0 0 16 0 1 1 0 48 2 17 1 20 0 0 16 0 1 2 0 48 2 17 2 51 3 0 1 0 17 3 20 4 0 20 5 0 16 0 1 6 0 48 2 51 7 0 0 0 1 1 1 2 1 3 18 1 49 3 50)
:constants (
"host-get"
"ok"
"status"
(code :arity 1 :upvalue-count 1
:bytecode (20 0 0 20 1 0 18 0 1 2 0 48 2 1 3 0 16 0 49 3 50)
:constants (
"host-call"
"host-get"
"headers"
"get"))
"promise-then"
"host-call"
"text"
(code :arity 1 :upvalue-count 4
:bytecode (18 0 18 1 18 2 18 3 16 0 49 4 50)
:constants ())))))
"fetch-location"
(code :arity 1
:bytecode (20 0 0 1 1 0 48 1 6 34 9 0 5 20 0 0 1 2 0 48 1 17 1 16 1 33 10 0 20 3 0 16 0 49 1 32 1 0 2 50)
:constants (
"dom-query"
"[sx-boost]"
"#main-panel"
"browser-navigate"))
"fetch-and-restore"
(code :arity 4
:bytecode (20 0 0 1 2 0 16 1 1 3 0 1 4 0 1 5 0 16 2 1 6 0 2 1 7 0 2 52 1 0 10 51 8 0 1 0 1 3 51 9 0 49 3 50)
:constants (
"fetch-request"
"dict"
"url"
"method"
"GET"
"headers"
"body"
"signal"
(code :arity 4 :upvalue-count 2
:bytecode (16 0 33 39 0 20 0 0 18 0 16 3 48 2 5 20 1 0 18 0 48 1 5 20 2 0 20 3 0 48 0 1 4 0 1 5 0 18 1 49 4 32 1 0 2 50)
:constants (
"dom-set-inner-html"
"post-swap"
"host-call"
"dom-window"
"scrollTo"
0))
(code :arity 1
:bytecode (20 0 0 1 2 0 16 0 52 1 0 2 49 1 50)
:constants (
"log-warn"
"str"
"fetch-and-restore error: "))))
"fetch-preload"
(code :arity 3
:bytecode (20 0 0 1 2 0 16 0 1 3 0 1 4 0 1 5 0 16 1 1 6 0 2 1 7 0 2 52 1 0 10 51 8 0 1 2 1 0 51 9 0 49 3 50)
:constants (
"fetch-request"
"dict"
"url"
"method"
"GET"
"headers"
"body"
"signal"
(code :arity 4 :upvalue-count 2
:bytecode (16 0 33 14 0 20 0 0 18 0 18 1 16 3 49 3 32 1 0 2 50)
:constants (
"preload-cache-set"))
(code :arity 1
:bytecode (2 50)
:constants ())))
"fetch-streaming"
(code :arity 4
:bytecode (20 0 0 16 0 16 1 16 2 1 1 0 49 4 50)
:constants (
"fetch-and-restore"
0))
"dom-parse-html-document"
(code :arity 1
:bytecode (20 0 0 1 1 0 48 1 17 1 20 2 0 16 1 1 3 0 16 0 1 4 0 49 4 50)
:constants (
"host-new"
"DOMParser"
"host-call"
"parseFromString"
"text/html"))
"dom-body-inner-html"
(code :arity 1
:bytecode (20 0 0 20 0 0 16 0 1 1 0 48 2 1 2 0 49 2 50)
:constants (
"host-get"
"body"
"innerHTML"))
"create-script-clone"
(code :arity 1
:bytecode (20 0 0 1 1 0 48 1 17 1 20 2 0 16 1 1 3 0 1 4 0 48 3 17 2 20 5 0 16 0 1 6 0 48 2 17 3 2 17 4 51 7 0 1 3 1 2 1 4 17 4 16 4 1 8 0 48 1 5 20 9 0 16 2 1 10 0 20 5 0 16 0 1 10 0 48 2 48 3 5 16 2 50)
:constants (
"host-global"
"document"
"host-call"
"createElement"
"script"
"host-get"
"attributes"
(code :arity 1 :upvalue-count 3
:bytecode (16 0 20 1 0 18 0 1 2 0 48 2 52 0 0 2 33 61 0 20 3 0 18 0 1 4 0 16 0 48 3 17 1 20 3 0 18 1 1 5 0 20 1 0 16 1 1 6 0 48 2 20 1 0 16 1 1 7 0 48 2 48 4 5 18 2 16 0 1 9 0 52 8 0 2 49 1 32 1 0 2 50)
:constants (
"<"
"host-get"
"length"
"host-call"
"item"
"setAttribute"
"name"
"value"
"+"
1))
0
"host-set!"
"textContent"))
"cross-origin?"
(code :arity 1
:bytecode (16 0 1 1 0 52 0 0 2 6 34 10 0 5 16 0 1 2 0 52 0 0 2 33 18 0 16 0 20 4 0 48 0 52 0 0 2 52 3 0 1 32 1 0 4 50)
:constants (
"starts-with?"
"http://"
"https://"
"not"
"browser-location-origin"))
"browser-scroll-to"
(code :arity 2
:bytecode (20 0 0 20 1 0 48 0 1 2 0 16 0 16 1 49 4 50)
:constants (
"host-call"
"dom-window"
"scrollTo"))
"with-transition"
(code :arity 2
:bytecode (16 0 6 33 17 0 5 20 0 0 20 1 0 1 2 0 48 1 1 3 0 48 2 33 26 0 20 4 0 20 1 0 1 2 0 48 1 1 3 0 20 5 0 16 1 48 1 49 3 32 4 0 16 1 49 0 50)
:constants (
"host-get"
"host-global"
"document"
"startViewTransition"
"host-call"
"host-callback"))
"observe-intersection"
(code :arity 4
:bytecode (20 0 0 51 1 0 1 3 1 1 1 2 1 0 48 1 17 4 20 2 0 1 3 0 20 0 0 51 4 0 1 3 1 1 1 2 1 5 1 0 48 1 48 2 17 5 20 5 0 16 5 1 6 0 16 0 48 3 5 16 5 50)
:constants (
"host-callback"
(code :arity 1 :upvalue-count 4
:bytecode (51 1 0 0 0 0 1 0 2 0 3 20 2 0 16 0 1 3 0 20 4 0 51 5 0 48 1 48 3 52 0 0 2 50)
:constants (
"for-each"
(code :arity 1 :upvalue-count 4
:bytecode (20 0 0 16 0 1 1 0 48 2 33 54 0 18 0 33 17 0 20 2 0 51 3 0 0 1 1 0 18 0 48 2 32 6 0 18 1 16 0 48 1 5 18 2 33 16 0 20 4 0 20 5 0 1 6 0 18 3 49 3 32 1 0 2 32 1 0 2 50)
:constants (
"host-get"
"isIntersecting"
"set-timeout"
(code :upvalue-count 2
:bytecode (18 0 18 1 49 1 50)
:constants ())
"host-call"
"observer"
"unobserve"))
"host-call"
"forEach"
"host-callback"
(code :arity 1
:bytecode (16 0 50)
:constants ())))
"host-new"
"IntersectionObserver"
(code :arity 1 :upvalue-count 5
:bytecode (20 0 0 16 0 1 1 0 48 2 17 1 2 17 2 51 2 0 1 1 1 0 0 0 0 1 0 2 0 3 0 4 1 2 17 2 16 2 1 3 0 49 1 50)
:constants (
"host-get"
"length"
(code :arity 1 :upvalue-count 8
:bytecode (16 0 18 0 52 0 0 2 33 105 0 20 1 0 18 1 1 2 0 16 0 48 3 17 1 16 1 6 33 11 0 5 20 3 0 16 1 1 4 0 48 2 33 53 0 18 2 33 17 0 20 5 0 51 6 0 0 3 1 1 18 2 48 2 32 6 0 18 3 16 1 48 1 5 18 4 33 15 0 20 1 0 18 5 1 7 0 18 6 48 3 32 1 0 2 32 1 0 2 5 18 7 16 0 1 9 0 52 8 0 2 49 1 32 1 0 2 50)
:constants (
"<"
"host-call"
"item"
"host-get"
"isIntersecting"
"set-timeout"
(code :upvalue-count 2
:bytecode (18 0 18 1 49 1 50)
:constants ())
"unobserve"
"+"
1))
0))
"host-call"
"observe"))
"event-source-connect"
(code :arity 2
:bytecode (20 0 0 1 1 0 16 0 48 2 17 2 20 2 0 16 2 1 3 0 16 1 48 3 5 16 2 50)
:constants (
"host-new"
"EventSource"
"host-set!"
"_sxElement"))
"event-source-listen"
(code :arity 3
:bytecode (20 0 0 16 0 1 1 0 16 1 20 2 0 51 3 0 1 2 48 1 49 4 50)
:constants (
"host-call"
"addEventListener"
"host-callback"
(code :arity 1 :upvalue-count 1
:bytecode (18 0 16 0 49 1 50)
:constants ())))
"bind-boost-link"
(code :arity 2
:bytecode (20 0 0 16 0 1 1 0 51 2 0 1 0 1 1 49 3 50)
:constants (
"dom-listen"
"click"
(code :arity 1 :upvalue-count 2
:bytecode (20 1 0 16 0 48 1 52 0 0 1 33 89 0 20 2 0 16 0 48 1 5 20 3 0 18 0 1 4 0 48 2 52 0 0 1 33 15 0 20 5 0 18 0 1 4 0 18 1 48 3 32 1 0 2 5 20 3 0 18 0 1 6 0 48 2 52 0 0 1 33 16 0 20 5 0 18 0 1 6 0 1 7 0 48 3 32 1 0 2 5 20 8 0 18 0 2 2 49 3 32 1 0 2 50)
:constants (
"not"
"event-modifier-key?"
"prevent-default"
"dom-has-attr?"
"sx-get"
"dom-set-attr"
"sx-push-url"
"true"
"execute-request"))))
"bind-boost-form"
(code :arity 3
:bytecode (20 0 0 16 0 1 1 0 51 2 0 1 0 49 3 50)
:constants (
"dom-listen"
"submit"
(code :arity 1 :upvalue-count 1
:bytecode (20 0 0 16 0 48 1 5 20 1 0 18 0 2 2 49 3 50)
:constants (
"prevent-default"
"execute-request"))))
"bind-client-route-click"
(code :arity 3
:bytecode (20 0 0 16 0 1 1 0 51 2 0 1 1 1 0 49 3 50)
:constants (
"dom-listen"
"click"
(code :arity 1 :upvalue-count 2
:bytecode (20 1 0 16 0 48 1 52 0 0 1 33 198 0 20 2 0 16 0 48 1 5 20 3 0 1 4 0 48 1 17 1 16 1 33 46 0 20 5 0 16 1 1 6 0 48 2 17 3 16 3 6 33 14 0 5 16 3 1 8 0 52 7 0 2 52 0 0 1 33 5 0 16 3 32 3 0 1 9 0 32 3 0 1 9 0 17 2 20 10 0 20 11 0 18 0 48 1 16 2 48 2 33 26 0 20 12 0 2 1 13 0 18 0 48 3 5 20 14 0 1 15 0 1 15 0 49 2 32 78 0 20 16 0 18 1 1 17 0 48 2 52 0 0 1 33 15 0 20 18 0 18 1 1 17 0 18 0 48 3 32 1 0 2 5 20 16 0 18 1 1 19 0 48 2 52 0 0 1 33 16 0 20 18 0 18 1 1 19 0 1 8 0 48 3 32 1 0 2 5 20 20 0 18 1 2 2 49 3 32 1 0 2 50)
:constants (
"not"
"event-modifier-key?"
"prevent-default"
"dom-query"
"[sx-boost]"
"dom-get-attr"
"sx-boost"
"="
"true"
"#main-panel"
"try-client-route"
"url-pathname"
"browser-push-state"
""
"browser-scroll-to"
0
"dom-has-attr?"
"sx-get"
"dom-set-attr"
"sx-push-url"
"execute-request"))))
"sw-post-message"
"try-parse-json"
(code :arity 1
:bytecode (20 0 0 16 0 49 1 50)
:constants (
"json-parse"))
"strip-component-scripts"
(code :arity 1
:bytecode (16 0 17 1 1 0 0 17 2 1 1 0 17 3 2 17 4 51 2 0 1 2 1 1 1 3 1 4 17 4 16 4 16 1 48 1 5 16 1 50)
:constants (
"<script type=\"text/sx\" data-components>"
"</script>"
(code :arity 1 :upvalue-count 4
:bytecode (16 0 18 0 52 0 0 2 17 1 16 1 1 2 0 52 1 0 2 33 7 0 16 0 19 1 32 129 0 16 1 18 0 52 4 0 1 52 3 0 2 17 2 16 0 16 1 18 0 52 4 0 1 52 3 0 2 52 5 0 2 17 3 16 3 18 2 52 0 0 2 17 4 16 4 1 2 0 52 1 0 2 33 7 0 16 0 19 1 32 66 0 16 3 1 6 0 16 4 52 5 0 3 17 5 16 0 1 6 0 16 1 52 5 0 3 17 6 16 3 16 4 18 2 52 4 0 1 52 3 0 2 52 5 0 2 17 7 20 7 0 16 5 48 1 5 18 3 16 6 16 7 52 8 0 2 49 1 50)
:constants (
"index-of"
"="
-1
"+"
"len"
"slice"
0
"sx-load-components"
"str"))))
"extract-response-css"
(code :arity 1
:bytecode (16 0 17 1 1 0 0 17 2 1 1 0 17 3 2 17 4 51 2 0 1 2 1 1 1 3 1 4 17 4 16 4 16 1 48 1 5 16 1 50)
:constants (
"<style data-sx-css>"
"</style>"
(code :arity 1 :upvalue-count 4
:bytecode (16 0 18 0 52 0 0 2 17 1 16 1 1 2 0 52 1 0 2 33 7 0 16 0 19 1 32 153 0 16 0 16 1 18 0 52 5 0 1 52 4 0 2 52 3 0 2 17 2 16 2 18 2 52 0 0 2 17 3 16 3 1 2 0 52 1 0 2 33 7 0 16 0 19 1 32 104 0 16 2 1 6 0 16 3 52 3 0 3 17 4 16 0 1 6 0 16 1 52 3 0 3 17 5 16 2 16 3 18 2 52 5 0 1 52 4 0 2 52 3 0 2 17 6 20 7 0 1 8 0 48 1 17 7 20 9 0 16 7 1 10 0 1 11 0 48 3 17 8 20 12 0 16 8 1 13 0 16 4 48 3 5 20 14 0 16 8 48 1 5 18 3 16 5 16 6 52 15 0 2 49 1 50)
:constants (
"index-of"
"="
-1
"slice"
"+"
"len"
0
"host-global"
"document"
"host-call"
"createElement"
"style"
"host-set!"
"textContent"
"dom-append-to-head"
"str"))))
"sx-render"
(code :arity 1
:bytecode (20 0 0 1 1 0 48 1 17 1 20 2 0 16 1 1 3 0 48 2 17 2 20 4 0 16 0 48 1 17 3 1 6 0 3 52 5 0 2 5 51 8 0 1 2 16 3 52 7 0 2 5 1 6 0 52 9 0 1 5 16 2 50)
:constants (
"host-global"
"document"
"host-call"
"createDocumentFragment"
"sx-parse"
"scope-push!"
"sx-render-markers"
"for-each"
(code :arity 1 :upvalue-count 1
:bytecode (20 0 0 16 0 20 1 0 2 48 1 2 48 3 17 1 16 1 33 12 0 20 2 0 18 0 16 1 49 2 32 1 0 2 50)
:constants (
"render-to-dom"
"get-render-env"
"dom-append"))
"scope-pop!"))
"sx-hydrate"
(code :arity 1
:bytecode (20 0 0 16 0 6 34 6 0 5 20 1 0 48 0 49 1 50)
:constants (
"sx-hydrate-elements"
"dom-body"))
"sx-process-scripts"
(code :arity 1
:bytecode (20 0 0 16 0 6 34 6 0 5 20 1 0 48 0 1 2 0 48 2 17 1 51 4 0 16 1 52 3 0 2 50)
:constants (
"dom-query-all"
"dom-body"
"script[type=\"text/sx\"]"
"for-each"
(code :arity 1
:bytecode (20 1 0 16 0 1 2 0 48 2 52 0 0 1 33 71 0 20 3 0 16 0 1 2 0 48 2 5 20 4 0 16 0 1 5 0 48 2 17 1 16 1 6 33 14 0 5 16 1 52 7 0 1 1 8 0 52 6 0 2 33 21 0 20 9 0 16 1 48 1 17 2 51 11 0 16 2 52 10 0 2 32 1 0 2 32 1 0 2 50)
:constants (
"not"
"is-processed?"
"sx-script"
"mark-processed!"
"host-get"
"textContent"
">"
"len"
0
"sx-parse"
"for-each"
(code :arity 1
:bytecode (20 0 0 16 0 49 1 50)
:constants (
"cek-eval"))))))
"select-from-container"
(code :arity 2
:bytecode (16 1 33 31 0 20 0 0 16 0 16 1 48 2 17 2 16 2 33 5 0 16 2 32 7 0 20 1 0 16 0 49 1 32 7 0 20 1 0 16 0 49 1 50)
:constants (
"dom-query"
"children-to-fragment"))
"children-to-fragment"
(code :arity 1
:bytecode (20 0 0 1 1 0 48 1 17 1 20 2 0 16 1 1 3 0 48 2 17 2 2 17 3 51 4 0 1 0 1 2 1 3 17 3 16 3 48 0 5 16 2 50)
:constants (
"host-global"
"document"
"host-call"
"createDocumentFragment"
(code :upvalue-count 3
:bytecode (20 0 0 18 0 48 1 17 0 16 0 33 17 0 20 1 0 18 1 16 0 48 2 5 18 2 49 0 32 1 0 2 50)
:constants (
"dom-first-child"
"dom-append"))))
"select-html-from-doc"
(code :arity 2
:bytecode (16 1 33 36 0 20 0 0 16 0 16 1 48 2 17 2 16 2 33 10 0 20 1 0 16 2 49 1 32 7 0 20 2 0 16 0 49 1 32 7 0 20 2 0 16 0 49 1 50)
:constants (
"dom-query"
"dom-inner-html"
"dom-body-inner-html"))
"find-matching-route"
"parse-route-pattern"
"register-io-deps"
"resolve-page-data"
"parse-sx-data"
(code :arity 1
:bytecode (16 0 6 33 14 0 5 16 0 52 1 0 1 1 2 0 52 0 0 2 33 35 0 20 3 0 16 0 48 1 17 1 16 1 52 5 0 1 52 4 0 1 33 9 0 16 1 52 6 0 1 32 1 0 2 32 1 0 2 50)
:constants (
">"
"len"
0
"sx-parse"
"not"
"empty?"
"first"))
"try-eval-content"
(code :arity 2
:bytecode (20 0 0 16 0 48 1 17 2 16 2 52 1 0 1 33 4 0 2 32 23 0 20 2 0 48 0 17 3 51 4 0 1 1 1 3 16 2 52 3 0 2 5 16 3 50)
:constants (
"sx-parse"
"empty?"
"create-fragment"
"for-each"
(code :arity 1 :upvalue-count 2
:bytecode (20 0 0 16 0 18 0 2 48 3 17 1 16 1 33 12 0 20 1 0 18 1 16 1 49 2 32 1 0 2 50)
:constants (
"render-to-dom"
"dom-append"))))
"try-async-eval-content"
(code :arity 3
:bytecode (20 0 0 16 0 16 1 49 2 50)
:constants (
"try-eval-content"))
"try-rerender-page"
(code
:bytecode (2 50)
:constants ())
"execute-action"
"bind-preload"
"persist-offline-data"
"retrieve-offline-data")))