Remove debug logging from sx_browser.ml and sx-platform.js
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -57,7 +57,6 @@
|
|||||||
var obj = args[0], method = args[1];
|
var obj = args[0], method = args[1];
|
||||||
var callArgs = [];
|
var callArgs = [];
|
||||||
for (var i = 2; i < args.length; i++) callArgs.push(args[i]);
|
for (var i = 2; i < args.length; i++) callArgs.push(args[i]);
|
||||||
if (method === "addEventListener") console.log("[host-call] addEventListener args:", callArgs.map(a => typeof a === "function" ? "fn:" + (a.__host_callback ? "HOST_CB" : "other") : typeof a));
|
|
||||||
if (obj == null) {
|
if (obj == null) {
|
||||||
// Global function call
|
// Global function call
|
||||||
var fn = typeof globalThis !== "undefined" ? globalThis[method] : window[method];
|
var fn = typeof globalThis !== "undefined" ? globalThis[method] : window[method];
|
||||||
@@ -160,9 +159,7 @@
|
|||||||
if (fn && fn.__sx_handle !== undefined) {
|
if (fn && fn.__sx_handle !== undefined) {
|
||||||
var wrappedFn = function() {
|
var wrappedFn = function() {
|
||||||
var a = Array.prototype.slice.call(arguments);
|
var a = Array.prototype.slice.call(arguments);
|
||||||
console.log("[host-callback] FIRED handle=" + fn.__sx_handle);
|
|
||||||
var r = K.callFn(fn, a);
|
var r = K.callFn(fn, a);
|
||||||
console.log("[host-callback] callFn returned suspended=" + !!(r && r.suspended));
|
|
||||||
if (window._driveAsync) window._driveAsync(r);
|
if (window._driveAsync) window._driveAsync(r);
|
||||||
return r;
|
return r;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -91,9 +91,7 @@ let rec value_to_js (v : value) : Js.Unsafe.any =
|
|||||||
| Dict d ->
|
| Dict d ->
|
||||||
(* Check for __host_handle — return original JS object *)
|
(* Check for __host_handle — return original JS object *)
|
||||||
(match Hashtbl.find_opt d "__host_handle" with
|
(match Hashtbl.find_opt d "__host_handle" with
|
||||||
| Some (Number n) ->
|
| Some (Number n) -> host_get_js (int_of_float n)
|
||||||
Printf.eprintf "[value_to_js] Dict→host_get_js handle=%d\n%!" (int_of_float n);
|
|
||||||
host_get_js (int_of_float n)
|
|
||||||
| _ ->
|
| _ ->
|
||||||
let obj = Js.Unsafe.obj [||] in
|
let obj = Js.Unsafe.obj [||] in
|
||||||
Js.Unsafe.set obj (Js.string "_type") (Js.string "dict");
|
Js.Unsafe.set obj (Js.string "_type") (Js.string "dict");
|
||||||
@@ -171,8 +169,6 @@ and js_to_value (js : Js.Unsafe.any) : value =
|
|||||||
| "function" ->
|
| "function" ->
|
||||||
let h = Js.Unsafe.get js (Js.string "__sx_handle") in
|
let h = Js.Unsafe.get js (Js.string "__sx_handle") in
|
||||||
let has_host_cb = Js.to_bool (Js.Unsafe.coerce (Js.Unsafe.get js (Js.string "__host_callback"))) in
|
let has_host_cb = Js.to_bool (Js.Unsafe.coerce (Js.Unsafe.get js (Js.string "__host_callback"))) in
|
||||||
if has_host_cb then
|
|
||||||
Printf.eprintf "[js_to_value] fn has __host_callback! Storing as host obj\n%!";
|
|
||||||
if not (Js.Unsafe.equals h Js.undefined) && not has_host_cb then
|
if not (Js.Unsafe.equals h Js.undefined) && not has_host_cb then
|
||||||
get_handle (Js.float_of_number (Js.Unsafe.coerce h) |> int_of_float)
|
get_handle (Js.float_of_number (Js.Unsafe.coerce h) |> int_of_float)
|
||||||
else
|
else
|
||||||
@@ -181,7 +177,6 @@ and js_to_value (js : Js.Unsafe.any) : value =
|
|||||||
This preserves wrappers like _driveAsync that host-callback
|
This preserves wrappers like _driveAsync that host-callback
|
||||||
attaches for IO suspension handling. *)
|
attaches for IO suspension handling. *)
|
||||||
let id = host_put js in
|
let id = host_put js in
|
||||||
Printf.eprintf "[js_to_value] plain JS fn → host_object id=%d\n%!" id;
|
|
||||||
let d = Hashtbl.create 2 in
|
let d = Hashtbl.create 2 in
|
||||||
Hashtbl.replace d "__host_handle" (Number (float_of_int id));
|
Hashtbl.replace d "__host_handle" (Number (float_of_int id));
|
||||||
Dict d
|
Dict d
|
||||||
|
|||||||
@@ -57,7 +57,6 @@
|
|||||||
var obj = args[0], method = args[1];
|
var obj = args[0], method = args[1];
|
||||||
var callArgs = [];
|
var callArgs = [];
|
||||||
for (var i = 2; i < args.length; i++) callArgs.push(args[i]);
|
for (var i = 2; i < args.length; i++) callArgs.push(args[i]);
|
||||||
if (method === "addEventListener") console.log("[host-call] addEventListener args:", callArgs.map(a => typeof a === "function" ? "fn:" + (a.__host_callback ? "HOST_CB" : "other") : typeof a));
|
|
||||||
if (obj == null) {
|
if (obj == null) {
|
||||||
// Global function call
|
// Global function call
|
||||||
var fn = typeof globalThis !== "undefined" ? globalThis[method] : window[method];
|
var fn = typeof globalThis !== "undefined" ? globalThis[method] : window[method];
|
||||||
@@ -160,9 +159,7 @@
|
|||||||
if (fn && fn.__sx_handle !== undefined) {
|
if (fn && fn.__sx_handle !== undefined) {
|
||||||
var wrappedFn = function() {
|
var wrappedFn = function() {
|
||||||
var a = Array.prototype.slice.call(arguments);
|
var a = Array.prototype.slice.call(arguments);
|
||||||
console.log("[host-callback] FIRED handle=" + fn.__sx_handle);
|
|
||||||
var r = K.callFn(fn, a);
|
var r = K.callFn(fn, a);
|
||||||
console.log("[host-callback] callFn returned suspended=" + !!(r && r.suspended));
|
|
||||||
if (window._driveAsync) window._driveAsync(r);
|
if (window._driveAsync) window._driveAsync(r);
|
||||||
return r;
|
return r;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,30 +1,61 @@
|
|||||||
(define-library (sx browser)
|
(define-library
|
||||||
(export browser-location-href browser-location-pathname browser-location-origin browser-same-origin? url-pathname browser-push-state browser-replace-state browser-reload browser-navigate local-storage-get local-storage-set local-storage-remove set-timeout set-interval clear-timeout clear-interval request-animation-frame fetch-request new-abort-controller controller-signal controller-abort promise-then promise-resolve promise-delayed browser-confirm browser-prompt browser-media-matches? json-parse log-info log-warn console-log now-ms schedule-idle set-cookie get-cookie)
|
(sx browser)
|
||||||
|
(export
|
||||||
|
browser-location-href
|
||||||
|
browser-location-pathname
|
||||||
|
browser-location-origin
|
||||||
|
browser-same-origin?
|
||||||
|
url-pathname
|
||||||
|
browser-push-state
|
||||||
|
browser-replace-state
|
||||||
|
browser-reload
|
||||||
|
browser-navigate
|
||||||
|
local-storage-get
|
||||||
|
local-storage-set
|
||||||
|
local-storage-remove
|
||||||
|
set-timeout
|
||||||
|
set-interval
|
||||||
|
clear-timeout
|
||||||
|
clear-interval
|
||||||
|
request-animation-frame
|
||||||
|
fetch-request
|
||||||
|
new-abort-controller
|
||||||
|
controller-signal
|
||||||
|
controller-abort
|
||||||
|
promise-then
|
||||||
|
promise-resolve
|
||||||
|
promise-delayed
|
||||||
|
browser-confirm
|
||||||
|
browser-prompt
|
||||||
|
browser-media-matches?
|
||||||
|
json-parse
|
||||||
|
json-stringify
|
||||||
|
log-info
|
||||||
|
log-warn
|
||||||
|
console-log
|
||||||
|
now-ms
|
||||||
|
schedule-idle
|
||||||
|
set-cookie
|
||||||
|
get-cookie)
|
||||||
(begin
|
(begin
|
||||||
|
(define
|
||||||
(define
|
|
||||||
browser-location-href
|
browser-location-href
|
||||||
(fn () (host-get (host-get (dom-window) "location") "href")))
|
(fn () (host-get (host-get (dom-window) "location") "href")))
|
||||||
|
(define
|
||||||
(define
|
|
||||||
browser-location-pathname
|
browser-location-pathname
|
||||||
(fn () (host-get (host-get (dom-window) "location") "pathname")))
|
(fn () (host-get (host-get (dom-window) "location") "pathname")))
|
||||||
|
(define
|
||||||
(define
|
|
||||||
browser-location-origin
|
browser-location-origin
|
||||||
(fn () (host-get (host-get (dom-window) "location") "origin")))
|
(fn () (host-get (host-get (dom-window) "location") "origin")))
|
||||||
|
(define
|
||||||
(define
|
|
||||||
browser-same-origin?
|
browser-same-origin?
|
||||||
(fn (url) (starts-with? url (browser-location-origin))))
|
(fn (url) (starts-with? url (browser-location-origin))))
|
||||||
|
(define
|
||||||
(define
|
|
||||||
url-pathname
|
url-pathname
|
||||||
(fn
|
(fn
|
||||||
(url)
|
(url)
|
||||||
(host-get (host-new "URL" url (browser-location-origin)) "pathname")))
|
(host-get (host-new "URL" url (browser-location-origin)) "pathname")))
|
||||||
|
(define
|
||||||
(define
|
|
||||||
browser-push-state
|
browser-push-state
|
||||||
(fn
|
(fn
|
||||||
(url-or-state title url)
|
(url-or-state title url)
|
||||||
@@ -42,8 +73,7 @@
|
|||||||
url-or-state
|
url-or-state
|
||||||
title
|
title
|
||||||
url))))
|
url))))
|
||||||
|
(define
|
||||||
(define
|
|
||||||
browser-replace-state
|
browser-replace-state
|
||||||
(fn
|
(fn
|
||||||
(url-or-state title url)
|
(url-or-state title url)
|
||||||
@@ -61,68 +91,62 @@
|
|||||||
url-or-state
|
url-or-state
|
||||||
title
|
title
|
||||||
url))))
|
url))))
|
||||||
|
(define
|
||||||
(define
|
|
||||||
browser-reload
|
browser-reload
|
||||||
(fn () (host-call (host-get (dom-window) "location") "reload")))
|
(fn () (host-call (host-get (dom-window) "location") "reload")))
|
||||||
|
(define
|
||||||
(define
|
|
||||||
browser-navigate
|
browser-navigate
|
||||||
(fn (url) (host-set! (host-get (dom-window) "location") "href" url)))
|
(fn (url) (host-set! (host-get (dom-window) "location") "href" url)))
|
||||||
|
(define
|
||||||
(define
|
|
||||||
local-storage-get
|
local-storage-get
|
||||||
(fn
|
(fn
|
||||||
(key)
|
(key)
|
||||||
(host-call (host-get (dom-window) "localStorage") "getItem" key)))
|
(host-call (host-get (dom-window) "localStorage") "getItem" key)))
|
||||||
|
(define
|
||||||
(define
|
|
||||||
local-storage-set
|
local-storage-set
|
||||||
(fn
|
(fn
|
||||||
(key val)
|
(key val)
|
||||||
(host-call (host-get (dom-window) "localStorage") "setItem" key val)))
|
(host-call (host-get (dom-window) "localStorage") "setItem" key val)))
|
||||||
|
(define
|
||||||
(define
|
|
||||||
local-storage-remove
|
local-storage-remove
|
||||||
(fn
|
(fn
|
||||||
(key)
|
(key)
|
||||||
(host-call (host-get (dom-window) "localStorage") "removeItem" key)))
|
(host-call (host-get (dom-window) "localStorage") "removeItem" key)))
|
||||||
|
(define
|
||||||
(define
|
|
||||||
set-timeout
|
set-timeout
|
||||||
(fn
|
(fn
|
||||||
(fn-val ms)
|
(fn-val ms)
|
||||||
(host-call (dom-window) "setTimeout" (host-callback fn-val) ms)))
|
(host-call (dom-window) "setTimeout" (host-callback fn-val) ms)))
|
||||||
|
(define
|
||||||
(define
|
|
||||||
set-interval
|
set-interval
|
||||||
(fn
|
(fn
|
||||||
(fn-val ms)
|
(fn-val ms)
|
||||||
(host-call (dom-window) "setInterval" (host-callback fn-val) ms)))
|
(host-call (dom-window) "setInterval" (host-callback fn-val) ms)))
|
||||||
|
(define
|
||||||
(define clear-timeout (fn (id) (host-call (dom-window) "clearTimeout" id)))
|
clear-timeout
|
||||||
|
(fn (id) (host-call (dom-window) "clearTimeout" id)))
|
||||||
(define
|
(define
|
||||||
clear-interval
|
clear-interval
|
||||||
(fn (id) (host-call (dom-window) "clearInterval" id)))
|
(fn (id) (host-call (dom-window) "clearInterval" id)))
|
||||||
|
(define
|
||||||
(define
|
|
||||||
request-animation-frame
|
request-animation-frame
|
||||||
(fn
|
(fn
|
||||||
(fn-val)
|
(fn-val)
|
||||||
(host-call (dom-window) "requestAnimationFrame" (host-callback fn-val))))
|
(host-call
|
||||||
|
(dom-window)
|
||||||
(define
|
"requestAnimationFrame"
|
||||||
|
(host-callback fn-val))))
|
||||||
|
(define
|
||||||
fetch-request
|
fetch-request
|
||||||
(fn (url opts) (host-call (dom-window) "fetch" url opts)))
|
(fn (url opts) (host-call (dom-window) "fetch" url opts)))
|
||||||
|
(define new-abort-controller (fn () (host-new "AbortController")))
|
||||||
(define new-abort-controller (fn () (host-new "AbortController")))
|
(define
|
||||||
|
controller-signal
|
||||||
(define controller-signal (fn (controller) (host-get controller "signal")))
|
(fn (controller) (host-get controller "signal")))
|
||||||
|
(define
|
||||||
(define controller-abort (fn (controller) (host-call controller "abort")))
|
controller-abort
|
||||||
|
(fn (controller) (host-call controller "abort")))
|
||||||
(define
|
(define
|
||||||
promise-then
|
promise-then
|
||||||
(fn
|
(fn
|
||||||
(p on-resolve on-reject)
|
(p on-resolve on-reject)
|
||||||
@@ -133,12 +157,10 @@
|
|||||||
cb-reject
|
cb-reject
|
||||||
(host-call (host-call p "then" cb-resolve) "catch" cb-reject)
|
(host-call (host-call p "then" cb-resolve) "catch" cb-reject)
|
||||||
(host-call p "then" cb-resolve)))))
|
(host-call p "then" cb-resolve)))))
|
||||||
|
(define
|
||||||
(define
|
|
||||||
promise-resolve
|
promise-resolve
|
||||||
(fn (val) (host-call (host-global "Promise") "resolve" val)))
|
(fn (val) (host-call (host-global "Promise") "resolve" val)))
|
||||||
|
(define
|
||||||
(define
|
|
||||||
promise-delayed
|
promise-delayed
|
||||||
(fn
|
(fn
|
||||||
(ms val)
|
(ms val)
|
||||||
@@ -148,36 +170,35 @@
|
|||||||
(fn
|
(fn
|
||||||
(resolve)
|
(resolve)
|
||||||
(set-timeout (fn () (host-call resolve "call" nil val)) ms))))))
|
(set-timeout (fn () (host-call resolve "call" nil val)) ms))))))
|
||||||
|
(define
|
||||||
(define browser-confirm (fn (msg) (host-call (dom-window) "confirm" msg)))
|
browser-confirm
|
||||||
|
(fn (msg) (host-call (dom-window) "confirm" msg)))
|
||||||
(define
|
(define
|
||||||
browser-prompt
|
browser-prompt
|
||||||
(fn (msg default) (host-call (dom-window) "prompt" msg default)))
|
(fn (msg default) (host-call (dom-window) "prompt" msg default)))
|
||||||
|
(define
|
||||||
(define
|
|
||||||
browser-media-matches?
|
browser-media-matches?
|
||||||
(fn
|
(fn
|
||||||
(query)
|
(query)
|
||||||
(host-get (host-call (dom-window) "matchMedia" query) "matches")))
|
(host-get (host-call (dom-window) "matchMedia" query) "matches")))
|
||||||
|
(define json-parse (fn (s) (host-call (host-global "JSON") "parse" s)))
|
||||||
(define json-parse (fn (s) (host-call (host-global "JSON") "parse" s)))
|
(define
|
||||||
|
|
||||||
(define
|
|
||||||
log-info
|
log-info
|
||||||
(fn (msg) (host-call (host-global "console") "log" (str "[sx] " msg))))
|
(fn
|
||||||
|
(msg)
|
||||||
(define
|
(host-call (host-global "console") "log" (str "[sx] " msg))))
|
||||||
|
(define
|
||||||
log-warn
|
log-warn
|
||||||
(fn (msg) (host-call (host-global "console") "warn" (str "[sx] " msg))))
|
(fn
|
||||||
|
(msg)
|
||||||
(define
|
(host-call (host-global "console") "warn" (str "[sx] " msg))))
|
||||||
|
(define
|
||||||
console-log
|
console-log
|
||||||
(fn (msg) (host-call (host-global "console") "log" (str "[sx] " msg))))
|
(fn
|
||||||
|
(msg)
|
||||||
(define now-ms (fn () (host-call (host-global "Date") "now")))
|
(host-call (host-global "console") "log" (str "[sx] " msg))))
|
||||||
|
(define now-ms (fn () (host-call (host-global "Date") "now")))
|
||||||
(define
|
(define
|
||||||
schedule-idle
|
schedule-idle
|
||||||
(fn
|
(fn
|
||||||
(f)
|
(f)
|
||||||
@@ -187,8 +208,7 @@
|
|||||||
(host-get (dom-window) "requestIdleCallback")
|
(host-get (dom-window) "requestIdleCallback")
|
||||||
(host-call (dom-window) "requestIdleCallback" cb)
|
(host-call (dom-window) "requestIdleCallback" cb)
|
||||||
(set-timeout cb 0)))))
|
(set-timeout cb 0)))))
|
||||||
|
(define
|
||||||
(define
|
|
||||||
set-cookie
|
set-cookie
|
||||||
(fn
|
(fn
|
||||||
(name value days)
|
(name value days)
|
||||||
@@ -210,8 +230,7 @@
|
|||||||
";expires="
|
";expires="
|
||||||
expires
|
expires
|
||||||
";path=/;SameSite=Lax")))))
|
";path=/;SameSite=Lax")))))
|
||||||
|
(define
|
||||||
(define
|
|
||||||
get-cookie
|
get-cookie
|
||||||
(fn
|
(fn
|
||||||
(name)
|
(name)
|
||||||
@@ -222,10 +241,14 @@
|
|||||||
cookies
|
cookies
|
||||||
"match"
|
"match"
|
||||||
(host-new "RegExp" (str "(?:^|;\\s*)" name "=([^;]*)")))))
|
(host-new "RegExp" (str "(?:^|;\\s*)" name "=([^;]*)")))))
|
||||||
(if match (host-call nil "decodeURIComponent" (host-get match 1)) nil))))
|
(if
|
||||||
|
match
|
||||||
|
(host-call nil "decodeURIComponent" (host-get match 1))
|
||||||
))
|
nil))))))
|
||||||
|
|
||||||
;; Re-export to global env
|
;; Re-export to global env
|
||||||
|
(define
|
||||||
|
json-stringify
|
||||||
|
(fn (v) (host-call (host-global "JSON") "stringify" v)))
|
||||||
|
|
||||||
(import (sx browser))
|
(import (sx browser))
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -1,16 +1,81 @@
|
|||||||
(define-library (sx dom)
|
(define-library
|
||||||
(export dom-document dom-window dom-body dom-head dom-create-element create-text-node create-fragment create-comment dom-append dom-prepend dom-insert-before dom-insert-after dom-remove dom-is-active-element? dom-is-input-element? dom-is-child-of? dom-attr-list dom-remove-child dom-replace-child dom-clone dom-query dom-query-all dom-query-by-id dom-closest dom-matches? dom-get-attr dom-set-attr dom-remove-attr dom-has-attr? dom-add-class dom-remove-class dom-has-class? dom-text-content dom-set-text-content dom-inner-html dom-set-inner-html dom-outer-html dom-insert-adjacent-html dom-get-style dom-set-style dom-get-prop dom-set-prop dom-tag-name dom-node-type dom-node-name dom-id dom-parent dom-first-child dom-next-sibling dom-child-list dom-is-fragment? dom-child-nodes dom-remove-children-after dom-focus dom-parse-html dom-listen dom-add-listener dom-dispatch event-detail prevent-default stop-propagation event-modifier-key? element-value error-message dom-get-data dom-set-data dom-append-to-head set-document-title)
|
(sx dom)
|
||||||
|
(export
|
||||||
|
dom-document
|
||||||
|
dom-window
|
||||||
|
dom-body
|
||||||
|
dom-head
|
||||||
|
dom-create-element
|
||||||
|
create-text-node
|
||||||
|
create-fragment
|
||||||
|
create-comment
|
||||||
|
dom-append
|
||||||
|
dom-prepend
|
||||||
|
dom-insert-before
|
||||||
|
dom-insert-after
|
||||||
|
dom-remove
|
||||||
|
dom-is-active-element?
|
||||||
|
dom-is-input-element?
|
||||||
|
dom-is-child-of?
|
||||||
|
dom-attr-list
|
||||||
|
dom-remove-child
|
||||||
|
dom-replace-child
|
||||||
|
dom-clone
|
||||||
|
dom-query
|
||||||
|
dom-query-all
|
||||||
|
dom-query-by-id
|
||||||
|
dom-closest
|
||||||
|
dom-matches?
|
||||||
|
dom-get-attr
|
||||||
|
dom-set-attr
|
||||||
|
dom-remove-attr
|
||||||
|
dom-has-attr?
|
||||||
|
dom-add-class
|
||||||
|
dom-remove-class
|
||||||
|
dom-has-class?
|
||||||
|
dom-visible?
|
||||||
|
dom-text-content
|
||||||
|
dom-set-text-content
|
||||||
|
dom-inner-html
|
||||||
|
dom-set-inner-html
|
||||||
|
dom-outer-html
|
||||||
|
dom-insert-adjacent-html
|
||||||
|
dom-get-style
|
||||||
|
dom-set-style
|
||||||
|
dom-get-prop
|
||||||
|
dom-set-prop
|
||||||
|
dom-tag-name
|
||||||
|
dom-node-type
|
||||||
|
dom-node-name
|
||||||
|
dom-id
|
||||||
|
dom-parent
|
||||||
|
dom-first-child
|
||||||
|
dom-next-sibling
|
||||||
|
dom-child-list
|
||||||
|
dom-is-fragment?
|
||||||
|
dom-child-nodes
|
||||||
|
dom-remove-children-after
|
||||||
|
dom-focus
|
||||||
|
dom-parse-html
|
||||||
|
dom-listen
|
||||||
|
dom-add-listener
|
||||||
|
dom-dispatch
|
||||||
|
event-detail
|
||||||
|
prevent-default
|
||||||
|
stop-propagation
|
||||||
|
event-modifier-key?
|
||||||
|
element-value
|
||||||
|
error-message
|
||||||
|
dom-get-data
|
||||||
|
dom-set-data
|
||||||
|
dom-append-to-head
|
||||||
|
set-document-title)
|
||||||
(begin
|
(begin
|
||||||
|
(define dom-document (fn () (host-global "document")))
|
||||||
(define dom-document (fn () (host-global "document")))
|
(define dom-window (fn () (host-global "window")))
|
||||||
|
(define dom-body (fn () (host-get (dom-document) "body")))
|
||||||
(define dom-window (fn () (host-global "window")))
|
(define dom-head (fn () (host-get (dom-document) "head")))
|
||||||
|
(define
|
||||||
(define dom-body (fn () (host-get (dom-document) "body")))
|
|
||||||
|
|
||||||
(define dom-head (fn () (host-get (dom-document) "head")))
|
|
||||||
|
|
||||||
(define
|
|
||||||
dom-create-element
|
dom-create-element
|
||||||
(fn
|
(fn
|
||||||
(tag ns)
|
(tag ns)
|
||||||
@@ -18,38 +83,31 @@
|
|||||||
ns
|
ns
|
||||||
(host-call (dom-document) "createElementNS" ns tag)
|
(host-call (dom-document) "createElementNS" ns tag)
|
||||||
(host-call (dom-document) "createElement" tag))))
|
(host-call (dom-document) "createElement" tag))))
|
||||||
|
(define
|
||||||
(define
|
|
||||||
create-text-node
|
create-text-node
|
||||||
(fn (s) (host-call (dom-document) "createTextNode" s)))
|
(fn (s) (host-call (dom-document) "createTextNode" s)))
|
||||||
|
(define
|
||||||
(define
|
|
||||||
create-fragment
|
create-fragment
|
||||||
(fn () (host-call (dom-document) "createDocumentFragment")))
|
(fn () (host-call (dom-document) "createDocumentFragment")))
|
||||||
|
(define
|
||||||
(define
|
|
||||||
create-comment
|
create-comment
|
||||||
(fn (text) (host-call (dom-document) "createComment" (or text ""))))
|
(fn (text) (host-call (dom-document) "createComment" (or text ""))))
|
||||||
|
(define
|
||||||
(define
|
|
||||||
dom-append
|
dom-append
|
||||||
(fn
|
(fn
|
||||||
(parent child)
|
(parent child)
|
||||||
(when (and parent child) (host-call parent "appendChild" child))))
|
(when (and parent child) (host-call parent "appendChild" child))))
|
||||||
|
(define
|
||||||
(define
|
|
||||||
dom-prepend
|
dom-prepend
|
||||||
(fn
|
(fn
|
||||||
(parent child)
|
(parent child)
|
||||||
(when (and parent child) (host-call parent "prepend" child))))
|
(when (and parent child) (host-call parent "prepend" child))))
|
||||||
|
(define
|
||||||
(define
|
|
||||||
dom-insert-before
|
dom-insert-before
|
||||||
(fn
|
(fn
|
||||||
(parent child ref)
|
(parent child ref)
|
||||||
(when (and parent child) (host-call parent "insertBefore" child ref))))
|
(when (and parent child) (host-call parent "insertBefore" child ref))))
|
||||||
|
(define
|
||||||
(define
|
|
||||||
dom-insert-after
|
dom-insert-after
|
||||||
(fn
|
(fn
|
||||||
(ref node)
|
(ref node)
|
||||||
@@ -63,30 +121,27 @@
|
|||||||
next
|
next
|
||||||
(host-call parent "insertBefore" node next)
|
(host-call parent "insertBefore" node next)
|
||||||
(host-call parent "appendChild" node))))))
|
(host-call parent "appendChild" node))))))
|
||||||
|
(define dom-remove (fn (el) (when el (host-call el "remove"))))
|
||||||
(define dom-remove (fn (el) (when el (host-call el "remove"))))
|
(define
|
||||||
|
|
||||||
(define
|
|
||||||
dom-is-active-element?
|
dom-is-active-element?
|
||||||
(fn
|
(fn
|
||||||
(el)
|
(el)
|
||||||
(let
|
(let
|
||||||
((active (host-get (dom-document) "activeElement")))
|
((active (host-get (dom-document) "activeElement")))
|
||||||
(if (and active el) (identical? el active) false))))
|
(if (and active el) (identical? el active) false))))
|
||||||
|
(define
|
||||||
(define
|
|
||||||
dom-is-input-element?
|
dom-is-input-element?
|
||||||
(fn
|
(fn
|
||||||
(el)
|
(el)
|
||||||
(let
|
(let
|
||||||
((tag (upper (or (dom-tag-name el) ""))))
|
((tag (upper (or (dom-tag-name el) ""))))
|
||||||
(or (= tag "INPUT") (= tag "TEXTAREA") (= tag "SELECT")))))
|
(or (= tag "INPUT") (= tag "TEXTAREA") (= tag "SELECT")))))
|
||||||
|
(define
|
||||||
(define
|
|
||||||
dom-is-child-of?
|
dom-is-child-of?
|
||||||
(fn (child parent) (and child parent (host-call parent "contains" child))))
|
(fn
|
||||||
|
(child parent)
|
||||||
(define
|
(and child parent (host-call parent "contains" child))))
|
||||||
|
(define
|
||||||
dom-attr-list
|
dom-attr-list
|
||||||
(fn
|
(fn
|
||||||
(el)
|
(el)
|
||||||
@@ -108,26 +163,24 @@
|
|||||||
(list (host-get attr "name") (host-get attr "value"))))
|
(list (host-get attr "name") (host-get attr "value"))))
|
||||||
(loop (+ i 1))))))
|
(loop (+ i 1))))))
|
||||||
result)))
|
result)))
|
||||||
|
(define
|
||||||
(define
|
|
||||||
dom-remove-child
|
dom-remove-child
|
||||||
(fn
|
(fn
|
||||||
(parent child)
|
(parent child)
|
||||||
(when (and parent child) (host-call parent "removeChild" child))))
|
(when (and parent child) (host-call parent "removeChild" child))))
|
||||||
|
(define
|
||||||
(define
|
|
||||||
dom-replace-child
|
dom-replace-child
|
||||||
(fn
|
(fn
|
||||||
(parent new-child old-child)
|
(parent new-child old-child)
|
||||||
(when
|
(when
|
||||||
(and parent new-child old-child)
|
(and parent new-child old-child)
|
||||||
(host-call parent "replaceChild" new-child old-child))))
|
(host-call parent "replaceChild" new-child old-child))))
|
||||||
|
(define
|
||||||
(define
|
|
||||||
dom-clone
|
dom-clone
|
||||||
(fn (node deep) (host-call node "cloneNode" (if (nil? deep) true deep))))
|
(fn
|
||||||
|
(node deep)
|
||||||
(define
|
(host-call node "cloneNode" (if (nil? deep) true deep))))
|
||||||
|
(define
|
||||||
dom-query
|
dom-query
|
||||||
(fn
|
(fn
|
||||||
(root-or-sel sel)
|
(root-or-sel sel)
|
||||||
@@ -135,8 +188,7 @@
|
|||||||
(nil? sel)
|
(nil? sel)
|
||||||
(host-call (dom-document) "querySelector" root-or-sel)
|
(host-call (dom-document) "querySelector" root-or-sel)
|
||||||
(host-call root-or-sel "querySelector" sel))))
|
(host-call root-or-sel "querySelector" sel))))
|
||||||
|
(define
|
||||||
(define
|
|
||||||
dom-query-all
|
dom-query-all
|
||||||
(fn
|
(fn
|
||||||
(root sel)
|
(root sel)
|
||||||
@@ -156,45 +208,45 @@
|
|||||||
(append! result (host-call node-list "item" i))
|
(append! result (host-call node-list "item" i))
|
||||||
(loop (+ i 1))))
|
(loop (+ i 1))))
|
||||||
result)))))
|
result)))))
|
||||||
|
(define
|
||||||
(define
|
|
||||||
dom-query-by-id
|
dom-query-by-id
|
||||||
(fn (id) (host-call (dom-document) "getElementById" id)))
|
(fn (id) (host-call (dom-document) "getElementById" id)))
|
||||||
|
(define
|
||||||
(define dom-closest (fn (el sel) (when el (host-call el "closest" sel))))
|
dom-closest
|
||||||
|
(fn (el sel) (when el (host-call el "closest" sel))))
|
||||||
(define
|
(define
|
||||||
dom-matches?
|
dom-matches?
|
||||||
(fn
|
(fn
|
||||||
(el sel)
|
(el sel)
|
||||||
(if (and el (host-get el "matches")) (host-call el "matches" sel) false)))
|
(if
|
||||||
|
(and el (host-get el "matches"))
|
||||||
(define
|
(host-call el "matches" sel)
|
||||||
|
false)))
|
||||||
|
(define
|
||||||
dom-get-attr
|
dom-get-attr
|
||||||
(fn
|
(fn
|
||||||
(el name)
|
(el name)
|
||||||
(if
|
(if
|
||||||
(and el (host-get el "getAttribute"))
|
(and el (host-get el "getAttribute"))
|
||||||
(let ((v (host-call el "getAttribute" name))) (if (nil? v) nil v))
|
(let
|
||||||
|
((v (host-call el "getAttribute" name)))
|
||||||
|
(if (nil? v) nil v))
|
||||||
nil)))
|
nil)))
|
||||||
|
(define
|
||||||
(define
|
|
||||||
dom-set-attr
|
dom-set-attr
|
||||||
(fn
|
(fn
|
||||||
(el name val)
|
(el name val)
|
||||||
(when
|
(when
|
||||||
(and el (host-get el "setAttribute"))
|
(and el (host-get el "setAttribute"))
|
||||||
(host-call el "setAttribute" name val))))
|
(host-call el "setAttribute" name val))))
|
||||||
|
(define
|
||||||
(define
|
|
||||||
dom-remove-attr
|
dom-remove-attr
|
||||||
(fn
|
(fn
|
||||||
(el name)
|
(el name)
|
||||||
(when
|
(when
|
||||||
(and el (host-get el "removeAttribute"))
|
(and el (host-get el "removeAttribute"))
|
||||||
(host-call el "removeAttribute" name))))
|
(host-call el "removeAttribute" name))))
|
||||||
|
(define
|
||||||
(define
|
|
||||||
dom-has-attr?
|
dom-has-attr?
|
||||||
(fn
|
(fn
|
||||||
(el name)
|
(el name)
|
||||||
@@ -202,66 +254,53 @@
|
|||||||
(and el (host-get el "hasAttribute"))
|
(and el (host-get el "hasAttribute"))
|
||||||
(host-call el "hasAttribute" name)
|
(host-call el "hasAttribute" name)
|
||||||
false)))
|
false)))
|
||||||
|
(define
|
||||||
(define
|
|
||||||
dom-add-class
|
dom-add-class
|
||||||
(fn (el cls) (when el (host-call (host-get el "classList") "add" cls))))
|
(fn
|
||||||
|
(el cls)
|
||||||
(define
|
(when el (host-call (host-get el "classList") "add" cls))))
|
||||||
|
(define
|
||||||
dom-remove-class
|
dom-remove-class
|
||||||
(fn
|
(fn
|
||||||
(el cls)
|
(el cls)
|
||||||
(when el (host-call (host-get el "classList") "remove" cls))))
|
(when el (host-call (host-get el "classList") "remove" cls))))
|
||||||
|
(define
|
||||||
(define
|
|
||||||
dom-has-class?
|
dom-has-class?
|
||||||
(fn
|
(fn
|
||||||
(el cls)
|
(el cls)
|
||||||
(if el (host-call (host-get el "classList") "contains" cls) false)))
|
(if el (host-call (host-get el "classList") "contains" cls) false)))
|
||||||
|
(define dom-text-content (fn (el) (host-get el "textContent")))
|
||||||
(define dom-text-content (fn (el) (host-get el "textContent")))
|
(define
|
||||||
|
dom-set-text-content
|
||||||
(define dom-set-text-content (fn (el val) (host-set! el "textContent" val)))
|
(fn (el val) (host-set! el "textContent" val)))
|
||||||
|
(define dom-inner-html (fn (el) (host-get el "innerHTML")))
|
||||||
(define dom-inner-html (fn (el) (host-get el "innerHTML")))
|
(define dom-set-inner-html (fn (el val) (host-set! el "innerHTML" val)))
|
||||||
|
(define dom-outer-html (fn (el) (host-get el "outerHTML")))
|
||||||
(define dom-set-inner-html (fn (el val) (host-set! el "innerHTML" val)))
|
(define
|
||||||
|
|
||||||
(define dom-outer-html (fn (el) (host-get el "outerHTML")))
|
|
||||||
|
|
||||||
(define
|
|
||||||
dom-insert-adjacent-html
|
dom-insert-adjacent-html
|
||||||
(fn (el position html) (host-call el "insertAdjacentHTML" position html)))
|
(fn
|
||||||
|
(el position html)
|
||||||
(define dom-get-style (fn (el prop) (host-get (host-get el "style") prop)))
|
(host-call el "insertAdjacentHTML" position html)))
|
||||||
|
(define
|
||||||
(define
|
dom-get-style
|
||||||
|
(fn (el prop) (host-get (host-get el "style") prop)))
|
||||||
|
(define
|
||||||
dom-set-style
|
dom-set-style
|
||||||
(fn
|
(fn
|
||||||
(el prop val)
|
(el prop val)
|
||||||
(host-call (host-get el "style") "setProperty" prop val)))
|
(host-call (host-get el "style") "setProperty" prop val)))
|
||||||
|
(define dom-get-prop (fn (el name) (host-get el name)))
|
||||||
(define dom-get-prop (fn (el name) (host-get el name)))
|
(define dom-set-prop (fn (el name val) (host-set! el name val)))
|
||||||
|
(define
|
||||||
(define dom-set-prop (fn (el name val) (host-set! el name val)))
|
|
||||||
|
|
||||||
(define
|
|
||||||
dom-tag-name
|
dom-tag-name
|
||||||
(fn (el) (if el (lower (or (host-get el "tagName") "")) "")))
|
(fn (el) (if el (lower (or (host-get el "tagName") "")) "")))
|
||||||
|
(define dom-node-type (fn (el) (host-get el "nodeType")))
|
||||||
(define dom-node-type (fn (el) (host-get el "nodeType")))
|
(define dom-node-name (fn (el) (host-get el "nodeName")))
|
||||||
|
(define dom-id (fn (el) (host-get el "id")))
|
||||||
(define dom-node-name (fn (el) (host-get el "nodeName")))
|
(define dom-parent (fn (el) (host-get el "parentNode")))
|
||||||
|
(define dom-first-child (fn (el) (host-get el "firstChild")))
|
||||||
(define dom-id (fn (el) (host-get el "id")))
|
(define dom-next-sibling (fn (el) (host-get el "nextSibling")))
|
||||||
|
(define
|
||||||
(define dom-parent (fn (el) (host-get el "parentNode")))
|
|
||||||
|
|
||||||
(define dom-first-child (fn (el) (host-get el "firstChild")))
|
|
||||||
|
|
||||||
(define dom-next-sibling (fn (el) (host-get el "nextSibling")))
|
|
||||||
|
|
||||||
(define
|
|
||||||
dom-child-list
|
dom-child-list
|
||||||
(fn
|
(fn
|
||||||
(el)
|
(el)
|
||||||
@@ -281,10 +320,8 @@
|
|||||||
(loop (+ i 1))))
|
(loop (+ i 1))))
|
||||||
result)
|
result)
|
||||||
(list))))
|
(list))))
|
||||||
|
(define dom-is-fragment? (fn (el) (= (host-get el "nodeType") 11)))
|
||||||
(define dom-is-fragment? (fn (el) (= (host-get el "nodeType") 11)))
|
(define
|
||||||
|
|
||||||
(define
|
|
||||||
dom-child-nodes
|
dom-child-nodes
|
||||||
(fn
|
(fn
|
||||||
(el)
|
(el)
|
||||||
@@ -304,8 +341,7 @@
|
|||||||
(loop (+ i 1))))
|
(loop (+ i 1))))
|
||||||
result)
|
result)
|
||||||
(list))))
|
(list))))
|
||||||
|
(define
|
||||||
(define
|
|
||||||
dom-remove-children-after
|
dom-remove-children-after
|
||||||
(fn
|
(fn
|
||||||
(marker)
|
(marker)
|
||||||
@@ -320,10 +356,8 @@
|
|||||||
(let
|
(let
|
||||||
((next (dom-next-sibling marker)))
|
((next (dom-next-sibling marker)))
|
||||||
(when next (host-call parent "removeChild" next) (loop))))))))
|
(when next (host-call parent "removeChild" next) (loop))))))))
|
||||||
|
(define dom-focus (fn (el) (when el (host-call el "focus"))))
|
||||||
(define dom-focus (fn (el) (when el (host-call el "focus"))))
|
(define
|
||||||
|
|
||||||
(define
|
|
||||||
dom-parse-html
|
dom-parse-html
|
||||||
(fn
|
(fn
|
||||||
(html)
|
(html)
|
||||||
@@ -331,8 +365,7 @@
|
|||||||
((parser (host-new "DOMParser"))
|
((parser (host-new "DOMParser"))
|
||||||
(doc (host-call parser "parseFromString" html "text/html")))
|
(doc (host-call parser "parseFromString" html "text/html")))
|
||||||
(host-get (host-get doc "body") "childNodes"))))
|
(host-get (host-get doc "body") "childNodes"))))
|
||||||
|
(define
|
||||||
(define
|
|
||||||
dom-listen
|
dom-listen
|
||||||
(fn
|
(fn
|
||||||
(el event-name handler)
|
(el event-name handler)
|
||||||
@@ -340,8 +373,7 @@
|
|||||||
((cb (host-callback handler)))
|
((cb (host-callback handler)))
|
||||||
(host-call el "addEventListener" event-name cb)
|
(host-call el "addEventListener" event-name cb)
|
||||||
(fn () (host-call el "removeEventListener" event-name cb)))))
|
(fn () (host-call el "removeEventListener" event-name cb)))))
|
||||||
|
(define
|
||||||
(define
|
|
||||||
dom-add-listener
|
dom-add-listener
|
||||||
(fn
|
(fn
|
||||||
(el event-name handler opts)
|
(el event-name handler opts)
|
||||||
@@ -352,22 +384,21 @@
|
|||||||
(host-call el "addEventListener" event-name cb opts)
|
(host-call el "addEventListener" event-name cb opts)
|
||||||
(host-call el "addEventListener" event-name cb))
|
(host-call el "addEventListener" event-name cb))
|
||||||
(fn () (host-call el "removeEventListener" event-name cb)))))
|
(fn () (host-call el "removeEventListener" event-name cb)))))
|
||||||
|
(define
|
||||||
(define
|
|
||||||
dom-dispatch
|
dom-dispatch
|
||||||
(fn
|
(fn
|
||||||
(el event-name detail)
|
(el event-name detail)
|
||||||
(let
|
(let
|
||||||
((evt (host-new "CustomEvent" event-name (dict "detail" detail "bubbles" true))))
|
((evt (host-new "CustomEvent" event-name (dict "detail" detail "bubbles" true))))
|
||||||
(host-call el "dispatchEvent" evt))))
|
(host-call el "dispatchEvent" evt))))
|
||||||
|
(define event-detail (fn (evt) (host-get evt "detail")))
|
||||||
(define event-detail (fn (evt) (host-get evt "detail")))
|
(define
|
||||||
|
prevent-default
|
||||||
(define prevent-default (fn (e) (when e (host-call e "preventDefault"))))
|
(fn (e) (when e (host-call e "preventDefault"))))
|
||||||
|
(define
|
||||||
(define stop-propagation (fn (e) (when e (host-call e "stopPropagation"))))
|
stop-propagation
|
||||||
|
(fn (e) (when e (host-call e "stopPropagation"))))
|
||||||
(define
|
(define
|
||||||
event-modifier-key?
|
event-modifier-key?
|
||||||
(fn
|
(fn
|
||||||
(e)
|
(e)
|
||||||
@@ -378,8 +409,7 @@
|
|||||||
(host-get e "metaKey")
|
(host-get e "metaKey")
|
||||||
(host-get e "shiftKey")
|
(host-get e "shiftKey")
|
||||||
(host-get e "altKey")))))
|
(host-get e "altKey")))))
|
||||||
|
(define
|
||||||
(define
|
|
||||||
element-value
|
element-value
|
||||||
(fn
|
(fn
|
||||||
(el)
|
(el)
|
||||||
@@ -387,22 +417,19 @@
|
|||||||
(and el (not (nil? (host-get el "value"))))
|
(and el (not (nil? (host-get el "value"))))
|
||||||
(host-get el "value")
|
(host-get el "value")
|
||||||
nil)))
|
nil)))
|
||||||
|
(define
|
||||||
(define
|
|
||||||
error-message
|
error-message
|
||||||
(fn
|
(fn
|
||||||
(e)
|
(e)
|
||||||
(if (and e (host-get e "message")) (host-get e "message") (str e))))
|
(if (and e (host-get e "message")) (host-get e "message") (str e))))
|
||||||
|
(define
|
||||||
(define
|
|
||||||
dom-get-data
|
dom-get-data
|
||||||
(fn
|
(fn
|
||||||
(el key)
|
(el key)
|
||||||
(let
|
(let
|
||||||
((store (host-get el "__sx_data")))
|
((store (host-get el "__sx_data")))
|
||||||
(if store (host-get store key) nil))))
|
(if store (host-get store key) nil))))
|
||||||
|
(define
|
||||||
(define
|
|
||||||
dom-set-data
|
dom-set-data
|
||||||
(fn
|
(fn
|
||||||
(el key val)
|
(el key val)
|
||||||
@@ -410,17 +437,21 @@
|
|||||||
(not (host-get el "__sx_data"))
|
(not (host-get el "__sx_data"))
|
||||||
(host-set! el "__sx_data" (dict)))
|
(host-set! el "__sx_data" (dict)))
|
||||||
(host-set! (host-get el "__sx_data") key val)))
|
(host-set! (host-get el "__sx_data") key val)))
|
||||||
|
(define
|
||||||
(define
|
|
||||||
dom-append-to-head
|
dom-append-to-head
|
||||||
(fn (el) (when (dom-head) (host-call (dom-head) "appendChild" el))))
|
(fn (el) (when (dom-head) (host-call (dom-head) "appendChild" el))))
|
||||||
|
(define
|
||||||
(define
|
|
||||||
set-document-title
|
set-document-title
|
||||||
(fn (title) (host-set! (dom-document) "title" title)))
|
(fn (title) (host-set! (dom-document) "title" title)))))
|
||||||
|
|
||||||
|
|
||||||
))
|
|
||||||
|
|
||||||
;; Re-export to global env
|
;; Re-export to global env
|
||||||
|
(define
|
||||||
|
dom-visible?
|
||||||
|
(fn
|
||||||
|
(el)
|
||||||
|
(if
|
||||||
|
el
|
||||||
|
(not (= (host-get (host-get el "style") "display") "none"))
|
||||||
|
false)))
|
||||||
|
|
||||||
(import (sx dom))
|
(import (sx dom))
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -119,6 +119,8 @@
|
|||||||
"empty"
|
"empty"
|
||||||
"clear"
|
"clear"
|
||||||
"swap"
|
"swap"
|
||||||
|
"open"
|
||||||
|
"close"
|
||||||
"exists"
|
"exists"
|
||||||
"matches"
|
"matches"
|
||||||
"contains"
|
"contains"
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
1088
shared/static/wasm/sx/module-manifest.json
Normal file
1088
shared/static/wasm/sx/module-manifest.json
Normal file
File diff suppressed because it is too large
Load Diff
36
shared/static/wasm/sx/module-manifest.sx
Normal file
36
shared/static/wasm/sx/module-manifest.sx
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
;; Module manifest — auto-generated by compile-modules.js
|
||||||
|
{
|
||||||
|
"sx render" {:file "render.sxbc" :deps () :exports ("HTML_TAGS" "VOID_ELEMENTS" "BOOLEAN_ATTRS" "*definition-form-extensions*" "definition-form?" "parse-element-args" "render-attrs" "eval-cond" "eval-cond-scheme" "eval-cond-clojure" "process-bindings" "is-render-expr?" "merge-spread-attrs" "escape-html" "escape-attr")}
|
||||||
|
"sx signals" {:file "core-signals.sxbc" :deps () :exports ("make-signal" "signal?" "signal-value" "signal-set-value!" "signal-subscribers" "signal-add-sub!" "signal-remove-sub!" "signal-deps" "signal-set-deps!" "signal" "deref" "reset!" "swap!" "computed" "effect" "*batch-depth*" "*batch-queue*" "batch" "notify-subscribers" "flush-subscribers" "dispose-computed" "with-island-scope" "register-in-scope")}
|
||||||
|
"sx signals-web" {:file "signals.sxbc" :deps ("sx dom" "sx browser") :exports ("with-marsh-scope" "dispose-marsh-scope" "emit-event" "on-event" "bridge-event" "resource")}
|
||||||
|
"web deps" {:file "deps.sxbc" :deps () :exports ("scan-refs" "scan-refs-walk" "transitive-deps-walk" "transitive-deps" "compute-all-deps" "scan-components-from-source" "components-needed" "page-component-bundle" "page-css-classes" "scan-io-refs-walk" "scan-io-refs" "transitive-io-refs-walk" "transitive-io-refs" "compute-all-io-refs" "component-io-refs-cached" "component-pure?" "render-target" "page-render-plan" "env-components")}
|
||||||
|
"web router" {:file "router.sxbc" :deps () :exports ("split-path-segments" "make-route-segment" "parse-route-pattern" "match-route-segments" "match-route" "find-matching-route" "_fn-to-segment" "sx-url-to-path" "_count-leading-dots" "_strip-trailing-close" "_index-of-safe" "_last-index-of" "_pop-sx-url-level" "_pop-sx-url-levels" "_split-pos-kw" "_parse-relative-body" "_extract-innermost" "_find-kw-in-tokens" "_find-keyword-value" "_replace-kw-in-tokens" "_set-keyword-in-content" "_is-delta-value?" "_apply-delta" "_apply-kw-pairs" "_apply-keywords-to-url" "_normalize-relative" "resolve-relative-url" "relative-sx-url?" "_url-special-forms" "url-special-form?" "parse-sx-url" "url-special-form-name" "url-special-form-inner" "url-to-expr" "auto-quote-unknowns" "prepare-url-expr")}
|
||||||
|
"web page-helpers" {:file "page-helpers.sxbc" :deps () :exports ("special-form-category-map" "extract-define-kwargs" "categorize-special-forms" "build-ref-items-with-href" "build-reference-data" "build-attr-detail" "build-header-detail" "build-event-detail" "build-component-source" "build-bundle-analysis" "build-routing-analysis" "build-affinity-analysis")}
|
||||||
|
"sx freeze" {:file "freeze.sxbc" :deps () :exports ("freeze-registry" "freeze-signal" "freeze-scope" "cek-freeze-scope" "cek-freeze-all" "cek-thaw-scope" "cek-thaw-all" "freeze-to-sx" "thaw-from-sx")}
|
||||||
|
"sx bytecode" {:file "bytecode.sxbc" :deps () :exports ("OP_CONST" "OP_NIL" "OP_TRUE" "OP_FALSE" "OP_POP" "OP_DUP" "OP_LOCAL_GET" "OP_LOCAL_SET" "OP_UPVALUE_GET" "OP_UPVALUE_SET" "OP_GLOBAL_GET" "OP_GLOBAL_SET" "OP_JUMP" "OP_JUMP_IF_FALSE" "OP_JUMP_IF_TRUE" "OP_CALL" "OP_TAIL_CALL" "OP_RETURN" "OP_CLOSURE" "OP_CALL_PRIM" "OP_APPLY" "OP_LIST" "OP_DICT" "OP_APPEND_BANG" "OP_ITER_INIT" "OP_ITER_NEXT" "OP_MAP_OPEN" "OP_MAP_APPEND" "OP_MAP_CLOSE" "OP_FILTER_TEST" "OP_HO_MAP" "OP_HO_FILTER" "OP_HO_REDUCE" "OP_HO_FOR_EACH" "OP_HO_SOME" "OP_HO_EVERY" "OP_SCOPE_PUSH" "OP_SCOPE_POP" "OP_PROVIDE_PUSH" "OP_PROVIDE_POP" "OP_CONTEXT" "OP_EMIT" "OP_EMITTED" "OP_RESET" "OP_SHIFT" "OP_DEFINE" "OP_DEFCOMP" "OP_DEFISLAND" "OP_DEFMACRO" "OP_EXPAND_MACRO" "OP_STR_CONCAT" "OP_STR_JOIN" "OP_SERIALIZE" "OP_ADD" "OP_SUB" "OP_MUL" "OP_DIV" "OP_EQ" "OP_LT" "OP_GT" "OP_NOT" "OP_LEN" "OP_FIRST" "OP_REST" "OP_NTH" "OP_CONS" "OP_NEG" "OP_INC" "OP_DEC" "OP_ASER_TAG" "OP_ASER_FRAG" "BYTECODE_MAGIC" "BYTECODE_VERSION" "CONST_NUMBER" "CONST_STRING" "CONST_BOOL" "CONST_NIL" "CONST_SYMBOL" "CONST_KEYWORD" "CONST_LIST" "CONST_DICT" "CONST_CODE" "opcode-name")}
|
||||||
|
"sx compiler" {:file "compiler.sxbc" :deps () :exports ("make-pool" "pool-add" "make-scope" "scope-define-local" "scope-resolve" "make-emitter" "emit-byte" "emit-u16" "emit-i16" "emit-op" "emit-const" "current-offset" "patch-i16" "compile-expr" "compile-symbol" "compile-dict" "compile-list" "compile-if" "compile-when" "compile-and" "compile-or" "compile-begin" "compile-let" "desugar-let-match" "compile-letrec" "compile-lambda" "compile-define" "compile-set" "compile-quote" "compile-cond" "compile-case" "compile-case-clauses" "compile-match" "compile-thread" "compile-thread-step" "compile-defcomp" "compile-defmacro" "compile-quasiquote" "compile-qq-expr" "compile-qq-list" "compile-call" "compile" "compile-module")}
|
||||||
|
"sx vm" {:file "vm.sxbc" :deps () :exports ("make-upvalue-cell" "uv-get" "uv-set!" "make-vm-code" "make-vm-closure" "make-vm-frame" "make-vm" "vm-push" "vm-pop" "vm-peek" "frame-read-u8" "frame-read-u16" "frame-read-i16" "vm-push-frame" "code-from-value" "vm-closure?" "*active-vm*" "*jit-compile-fn*" "lambda?" "lambda-compiled" "lambda-set-compiled!" "lambda-name" "cek-call-or-suspend" "try-jit-call" "vm-call" "frame-local-get" "frame-local-set" "frame-upvalue-get" "frame-upvalue-set" "frame-ip" "frame-set-ip!" "frame-base" "frame-closure" "closure-code" "closure-upvalues" "closure-env" "code-bytecode" "code-constants" "code-locals" "vm-sp" "vm-set-sp!" "vm-stack" "vm-set-stack!" "vm-frames" "vm-set-frames!" "vm-globals-ref" "collect-n-from-stack" "collect-n-pairs" "pad-n-nils" "vm-global-get" "vm-resolve-ho-form" "vm-call-external" "vm-global-set" "env-walk" "env-walk-set!" "vm-create-closure" "vm-run" "vm-step" "vm-call-closure" "vm-execute-module" "vm-resume-module")}
|
||||||
|
"sx dom" {:file "dom.sxbc" :deps () :exports ("dom-document" "dom-window" "dom-body" "dom-head" "dom-create-element" "create-text-node" "create-fragment" "create-comment" "dom-append" "dom-prepend" "dom-insert-before" "dom-insert-after" "dom-remove" "dom-is-active-element?" "dom-is-input-element?" "dom-is-child-of?" "dom-attr-list" "dom-remove-child" "dom-replace-child" "dom-clone" "dom-query" "dom-query-all" "dom-query-by-id" "dom-closest" "dom-matches?" "dom-get-attr" "dom-set-attr" "dom-remove-attr" "dom-has-attr?" "dom-add-class" "dom-remove-class" "dom-has-class?" "dom-visible?" "dom-text-content" "dom-set-text-content" "dom-inner-html" "dom-set-inner-html" "dom-outer-html" "dom-insert-adjacent-html" "dom-get-style" "dom-set-style" "dom-get-prop" "dom-set-prop" "dom-tag-name" "dom-node-type" "dom-node-name" "dom-id" "dom-parent" "dom-first-child" "dom-next-sibling" "dom-child-list" "dom-is-fragment?" "dom-child-nodes" "dom-remove-children-after" "dom-focus" "dom-parse-html" "dom-listen" "dom-add-listener" "dom-dispatch" "event-detail" "prevent-default" "stop-propagation" "event-modifier-key?" "element-value" "error-message" "dom-get-data" "dom-set-data" "dom-append-to-head" "set-document-title")}
|
||||||
|
"sx browser" {:file "browser.sxbc" :deps () :exports ("browser-location-href" "browser-location-pathname" "browser-location-origin" "browser-same-origin?" "url-pathname" "browser-push-state" "browser-replace-state" "browser-reload" "browser-navigate" "local-storage-get" "local-storage-set" "local-storage-remove" "set-timeout" "set-interval" "clear-timeout" "clear-interval" "request-animation-frame" "fetch-request" "new-abort-controller" "controller-signal" "controller-abort" "promise-then" "promise-resolve" "promise-delayed" "browser-confirm" "browser-prompt" "browser-media-matches?" "json-parse" "json-stringify" "log-info" "log-warn" "console-log" "now-ms" "schedule-idle" "set-cookie" "get-cookie")}
|
||||||
|
"web adapter-html" {:file "adapter-html.sxbc" :deps ("sx render") :exports ("render-to-html" "render-value-to-html" "RENDER_HTML_FORMS" "render-html-form?" "render-list-to-html" "dispatch-html-form" "render-lambda-html" "render-html-component" "render-html-element" "render-html-lake" "render-html-marsh" "render-html-island" "serialize-island-state")}
|
||||||
|
"web adapter-sx" {:file "adapter-sx.sxbc" :deps ("web boot-helpers") :exports ("render-to-sx" "aser" "aser-list" "aser-reserialize" "aser-fragment" "aser-call" "aser-expand-component" "SPECIAL_FORM_NAMES" "HO_FORM_NAMES" "special-form?" "ho-form?" "aser-special" "eval-case-aser")}
|
||||||
|
"web adapter-dom" {:file "adapter-dom.sxbc" :deps ("sx dom" "sx render") :exports ("SVG_NS" "MATH_NS" "island-scope?" "hydrating?" "contains-deref?" "dom-on" "render-to-dom" "render-dom-list" "render-dom-element" "render-dom-component" "render-dom-fragment" "render-dom-raw" "render-dom-unknown-component" "RENDER_DOM_FORMS" "render-dom-form?" "dispatch-render-form" "render-lambda-dom" "render-dom-island" "render-dom-lake" "render-dom-marsh" "reactive-text" "reactive-attr" "reactive-spread" "reactive-fragment" "render-list-item" "extract-key" "reactive-list" "bind-input" "*use-cek-reactive*" "enable-cek-reactive!" "cek-reactive-text" "cek-reactive-attr" "render-dom-portal" "render-dom-error-boundary")}
|
||||||
|
"tw-layout" {:file "tw-layout.sxbc" :deps () :exports ("tw-spacing-props" "tw-displays" "tw-max-widths" "tw-min-widths" "tw-resolve-layout")}
|
||||||
|
"tw-type" {:file "tw-type.sxbc" :deps () :exports ("tw-sizes" "tw-weights" "tw-families" "tw-alignments" "tw-leading" "tw-tracking" "tw-resolve-type")}
|
||||||
|
"tw" {:file "tw.sxbc" :deps () :exports ("colour-bases" "colour-with-alpha" "lerp" "shade-to-lightness" "colour" "tw-colour-props" "tw-breakpoints" "tw-states" "tw-selector-states" "tw-container-sizes" "tw-spacing-value" "tw-template" "tw-shadow-sizes" "tw-rounded-sizes" "tw-border-widths" "tw-arbitrary-props" "tw-resolve-arbitrary" "tw-resolve-style" "tw-process-token")}
|
||||||
|
"sx text-layout" {:file "text-layout.sxbc" :deps () :exports ("measure-text" "line-badness" "compute-demerits" "sum-widths" "find-breaks" "break-lines" "break-lines-greedy" "position-line" "position-lines" "pretext-position-line" "pretext-layout-lines" "layout-paragraph" "make-hyphenation-trie" "find-hyphenation-points" "hyphenate-word" "typeset" "typeset-plain")}
|
||||||
|
"web boot-helpers" {:file "boot-helpers.sxbc" :deps ("sx dom" "sx browser" "web adapter-dom") :exports ("_sx-bound-prefix" "mark-processed!" "is-processed?" "clear-processed!" "callable?" "to-kebab" "sx-load-components" "call-expr" "base-env" "get-render-env" "merge-envs" "sx-render-with-env" "parse-env-attr" "store-env-attr" "resolve-mount-target" "remove-head-element" "set-sx-comp-cookie" "clear-sx-comp-cookie" "log-parse-error" "loaded-component-names" "csrf-token" "validate-for-request" "build-request-body" "abort-previous-target" "abort-previous" "track-controller" "track-controller-target" "new-abort-controller" "abort-signal" "apply-optimistic" "revert-optimistic" "dom-has-attr?" "show-indicator" "disable-elements" "clear-loading-state" "abort-error?" "promise-catch" "fetch-request" "fetch-location" "fetch-and-restore" "fetch-preload" "fetch-streaming" "dom-parse-html-document" "dom-body-inner-html" "create-script-clone" "cross-origin?" "browser-scroll-to" "with-transition" "event-source-connect" "event-source-listen" "bind-boost-link" "bind-boost-form" "bind-client-route-click" "sw-post-message" "try-parse-json" "strip-component-scripts" "extract-response-css" "sx-render" "sx-hydrate" "sx-process-scripts" "select-from-container" "children-to-fragment" "select-html-from-doc" "register-io-deps" "resolve-page-data" "parse-sx-data" "try-eval-content" "try-async-eval-content" "try-rerender-page" "execute-action" "bind-preload" "persist-offline-data" "retrieve-offline-data")}
|
||||||
|
"sx hypersx" {:file "hypersx.sxbc" :deps () :exports ("hsx-indent" "hsx-sym-name" "hsx-kw-name" "hsx-is-element?" "hsx-is-component?" "hsx-extract-css" "hsx-tag-str" "hsx-atom" "hsx-inline" "hsx-attrs-str" "hsx-children" "sx->hypersx-node" "sx->hypersx")}
|
||||||
|
"sx harness" {:file "harness.sxbc" :deps () :exports ("assert" "assert=" "default-platform" "make-harness" "harness-reset!" "harness-log" "harness-get" "harness-set!" "make-interceptor" "install-interceptors" "io-calls" "io-call-count" "io-call-nth" "io-call-args" "io-call-result" "assert-io-called" "assert-no-io" "assert-io-count" "assert-io-args" "assert-io-result" "assert-state")}
|
||||||
|
"sx harness-reactive" {:file "harness-reactive.sxbc" :deps () :exports ("assert-signal-value" "assert-signal-has-subscribers" "assert-signal-no-subscribers" "assert-signal-subscriber-count" "simulate-signal-set!" "simulate-signal-swap!" "assert-computed-dep-count" "assert-computed-depends-on" "count-effect-runs" "make-test-signal" "assert-batch-coalesces")}
|
||||||
|
"sx harness-web" {:file "harness-web.sxbc" :deps () :exports ("mock-element" "mock-set-text!" "mock-append-child!" "mock-set-attr!" "mock-get-attr" "mock-add-listener!" "simulate-click" "simulate-input" "simulate-event" "assert-text" "assert-attr" "assert-class" "assert-no-class" "assert-child-count" "assert-event-fired" "assert-no-event" "event-fire-count" "make-web-harness" "is-renderable?" "is-render-leak?" "assert-renderable" "render-body-audit" "assert-render-body-clean" "mock-render" "mock-render-fragment" "assert-single-render-root" "assert-tag")}
|
||||||
|
"web engine" {:file "engine.sxbc" :deps ("web boot-helpers" "sx dom" "sx browser") :exports ("ENGINE_VERBS" "DEFAULT_SWAP" "parse-time" "parse-trigger-spec" "default-trigger" "get-verb-info" "build-request-headers" "process-response-headers" "parse-swap-spec" "parse-retry-spec" "next-retry-ms" "filter-params" "resolve-target" "apply-optimistic" "revert-optimistic" "find-oob-swaps" "morph-node" "sync-attrs" "morph-children" "morph-island-children" "morph-marsh" "process-signal-updates" "swap-dom-nodes" "insert-remaining-siblings" "swap-html-string" "handle-history" "PRELOAD_TTL" "preload-cache-get" "preload-cache-set" "classify-trigger" "should-boost-link?" "should-boost-form?" "parse-sse-swap")}
|
||||||
|
"web orchestration" {:file "orchestration.sxbc" :deps ("web boot-helpers" "sx dom" "sx browser" "web adapter-dom" "web engine") :exports ("_preload-cache" "dispatch-trigger-events" "execute-request" "do-fetch" "handle-fetch-success" "flush-collected-styles" "handle-sx-response" "handle-html-response" "handle-retry" "bind-triggers" "bind-event" "post-swap" "process-settle-hooks" "activate-scripts" "process-oob-swaps" "hoist-head-elements" "process-boosted" "boost-descendants" "_page-data-cache" "_page-data-cache-ttl" "page-data-cache-key" "page-data-cache-get" "page-data-cache-set" "invalidate-page-cache" "invalidate-all-page-cache" "update-page-cache" "process-cache-directives" "_optimistic-snapshots" "optimistic-cache-update" "optimistic-cache-revert" "optimistic-cache-confirm" "submit-mutation" "_is-online" "_offline-queue" "offline-is-online?" "offline-set-online!" "offline-queue-mutation" "offline-sync" "offline-pending-count" "offline-aware-mutation" "current-page-layout" "swap-rendered-content" "resolve-route-target" "deps-satisfied?" "try-client-route" "bind-client-route-link" "process-sse" "bind-sse" "bind-sse-swap" "bind-inline-handlers" "bind-preload-for" "do-preload" "VERB_SELECTOR" "process-elements" "process-one" "process-emit-elements" "save-scroll-position" "handle-popstate" "engine-init")}
|
||||||
|
"hs-tokenizer" {:file "hs-tokenizer.sxbc" :deps () :exports ("hs-make-token" "hs-digit?" "hs-letter?" "hs-ident-start?" "hs-ident-char?" "hs-ws?" "hs-keywords" "hs-keyword?" "hs-tokenize")}
|
||||||
|
"hs-parser" {:file "hs-parser.sxbc" :deps ("hs-tokenizer") :exports ("hs-parse" "hs-compile")}
|
||||||
|
"hs-compiler" {:file "hs-compiler.sxbc" :deps ("hs-tokenizer" "hs-parser") :exports ("hs-to-sx" "hs-to-sx-from-source")}
|
||||||
|
"hs-runtime" {:file "hs-runtime.sxbc" :deps ("hs-tokenizer" "hs-parser" "hs-compiler") :exports ("hs-each" "hs-on" "hs-on-every" "hs-init" "hs-wait" "hs-wait-for" "hs-settle" "hs-toggle-class!" "hs-toggle-between!" "hs-toggle-style!" "hs-take!" "hs-put!" "hs-navigate!" "hs-scroll!" "hs-halt!" "hs-select!" "hs-reset!" "hs-next" "hs-previous" "hs-query-all" "hs-query-first" "hs-query-last" "hs-first" "hs-last" "hs-repeat-times" "hs-repeat-forever" "hs-fetch" "hs-fetch-gql" "hs-coerce" "hs-add" "hs-make" "hs-install" "hs-measure" "hs-transition" "hs-transition-from" "hs-type-check" "hs-type-check-strict" "hs-strict-eq" "hs-eq-ignore-case" "hs-contains-ignore-case?" "hs-falsy?" "hs-matches?" "hs-matches-ignore-case?" "hs-contains?" "precedes?" "follows?" "hs-empty?" "hs-empty-target!" "hs-open!" "hs-close!" "hs-hide!" "hs-show!" "hs-first" "hs-last" "hs-template" "hs-make-object" "hs-method-call" "hs-beep" "hs-prop-is" "hs-slice" "hs-sorted-by" "hs-sorted-by-desc" "hs-split-by" "hs-joined-by" "hs-sorted-by" "hs-sorted-by-desc")}
|
||||||
|
"hs-integration" {:file "hs-integration.sxbc" :deps ("hs-tokenizer" "hs-parser" "hs-compiler" "hs-runtime") :exports ("hs-handler" "hs-activate!" "hs-boot!" "hs-boot-subtree!")}
|
||||||
|
"hs-htmx" {:file "hs-htmx.sxbc" :deps ("hs-tokenizer" "hs-parser" "hs-compiler" "hs-runtime" "hs-integration") :exports ("HX-CONFIG-DEFAULTS" "HX-REQUEST-CLASS" "url-encode-params" "sx-url-with-params" "hx-element-config" "hx-walk-inherited" "hx-resolve-attr" "hx-verb-info" "hx-default-trigger" "hx-parse-time" "hx-parse-trigger" "hx-resolve-target" "hx-normalize-swap-mode" "hx-parse-swap-spec" "hx-swap!" "hx-select-fragment" "hx-element-source-id" "hx-form-values" "hx-collect-params" "hx-build-headers" "hx-request" "hx-process-oob!" "hx-process-partials!" "hx-parse-status-modifiers" "hx-status-matches?" "hx-parse-status-rules" "hx-match-status" "hx-handle-history!" "hx-indicator-on!" "hx-indicator-off!" "hx-disable-inputs!" "hx-enable-inputs!" "hx-confirm?" "hx-validate-form?" "hx-parse-sync-spec" "hx-sync-resolve-target" "hx-sync-check!" "hx-sync-complete!" "hx-dispatch!" "hx-strip-outer" "hx-do-swap" "hx-make-handler" "hx-wrap-debounce" "hx-wrap-throttle" "hx-wrap-changed" "hx-register-trigger!" "htmx-activate!" "HX-VERB-SELECTORS" "htmx-boot!" "hx-preload-cache" "hx-preload-register!" "hx-parse-sse-swap" "hx-sse-connect!" "htmx-boot-subtree!" "hx-boost-link!" "hx-boost-form!" "hx-boost-subtree!")}
|
||||||
|
"_entry" {:file "boot.sxbc" :deps ("sx dom" "sx browser" "web boot-helpers" "web adapter-dom" "sx signals" "sx signals-web" "web router" "web page-helpers" "web orchestration" "sx render" "sx text-layout") :lazy-deps ("sx bytecode" "hs-tokenizer" "hs-parser" "hs-compiler" "hs-runtime" "hs-integration" "hs-htmx")}
|
||||||
|
}
|
||||||
1
shared/static/wasm/sx/tw-layout.sxbc.json
Normal file
1
shared/static/wasm/sx/tw-layout.sxbc.json
Normal file
File diff suppressed because one or more lines are too long
1
shared/static/wasm/sx/tw-type.sxbc.json
Normal file
1
shared/static/wasm/sx/tw-type.sxbc.json
Normal file
File diff suppressed because one or more lines are too long
1
shared/static/wasm/sx/tw.sxbc.json
Normal file
1
shared/static/wasm/sx/tw.sxbc.json
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1792,7 +1792,7 @@
|
|||||||
blake2_js_for_wasm_create: blake2_js_for_wasm_create};
|
blake2_js_for_wasm_create: blake2_js_for_wasm_create};
|
||||||
}
|
}
|
||||||
(globalThis))
|
(globalThis))
|
||||||
({"link":[["runtime-0db9b496",0],["prelude-d7e4b000",0],["stdlib-23ce0836",[]],["re-9a0de245",[2]],["sx-5ce001fe",[2,3]],["jsoo_runtime-f96b44a8",[2]],["js_of_ocaml-651f6707",[2,5]],["dune__exe__Sx_browser-8c3734f6",[2,4,6]],["std_exit-10fb8830",[2]],["start-f808dbe1",0]],"generated":(b=>{var
|
({"link":[["runtime-0db9b496",0],["prelude-d7e4b000",0],["stdlib-23ce0836",[]],["re-9a0de245",[2]],["sx-5ce001fe",[2,3]],["jsoo_runtime-f96b44a8",[2]],["js_of_ocaml-651f6707",[2,5]],["dune__exe__Sx_browser-8afc1869",[2,4,6]],["std_exit-10fb8830",[2]],["start-f808dbe1",0]],"generated":(b=>{var
|
||||||
c=b,a=b?.module?.export||b;return{"env":{"caml_ba_kind_of_typed_array":()=>{throw new
|
c=b,a=b?.module?.export||b;return{"env":{"caml_ba_kind_of_typed_array":()=>{throw new
|
||||||
Error("caml_ba_kind_of_typed_array not implemented")},"caml_exn_with_js_backtrace":()=>{throw new
|
Error("caml_ba_kind_of_typed_array not implemented")},"caml_exn_with_js_backtrace":()=>{throw new
|
||||||
Error("caml_exn_with_js_backtrace not implemented")},"caml_int64_create_lo_mi_hi":()=>{throw new
|
Error("caml_exn_with_js_backtrace not implemented")},"caml_int64_create_lo_mi_hi":()=>{throw new
|
||||||
|
|||||||
Reference in New Issue
Block a user