Files
rose-ash/shared/static/wasm/sx/harness-reactive.sxbc.json
giles 683e334546 Fix keyboard shortcuts + trigger filter + sx-on event mapping
1. parse-trigger-spec: strip [condition] from event names, store as
   "filter" modifier
2. bind-event: native SX filter for key=='X' patterns (extracts key
   char and checks event.key + not-input guard)
3. bind-event from: modifier: resolve "body"/"document"/"window" to
   direct DOM references instead of dom-query
4. sx-platform-2.js: global keyboard dispatch — WASM host-callbacks
   on document/body don't fire, so keyboard triggers with from:body
   are handled from JS, calling execute-request via K.eval
5. bind-inline-handlers: map afterSwap/beforeRequest to sx: prefix,
   eval JS bodies via Function constructor

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 23:19:25 +00:00

1 line
4.9 KiB
JSON

{"magic":"SXBC","version":1,"hash":"f1f561c2cbe0aa76","module":{"arity":0,"bytecode":[51,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,50],"constants":[{"t":"s","v":"assert-signal-value"},{"t":"code","v":{"arity":0,"upvalue-count":0,"bytecode":[20,0,0,20,1,0,48,1,17,2,20,2,0,20,3,0,20,4,0,1,6,0,20,4,0,1,7,0,20,3,0,52,5,0,4,49,3,50],"constants":[{"t":"s","v":"deref"},{"t":"s","v":"sig"},{"t":"s","v":"assert="},{"t":"s","v":"actual"},{"t":"s","v":"expected"},{"t":"s","v":"str"},{"t":"s","v":"Expected signal value "},{"t":"s","v":", got "}]}},{"t":"s","v":"assert-signal-has-subscribers"},{"t":"code","v":{"arity":0,"upvalue-count":0,"bytecode":[20,0,0,20,3,0,20,4,0,48,1,52,2,0,1,1,5,0,52,1,0,2,1,6,0,49,2,50],"constants":[{"t":"s","v":"assert"},{"t":"s","v":">"},{"t":"s","v":"len"},{"t":"s","v":"signal-subscribers"},{"t":"s","v":"sig"},{"t":"n","v":0},{"t":"s","v":"Expected signal to have subscribers"}]}},{"t":"s","v":"assert-signal-no-subscribers"},{"t":"code","v":{"arity":0,"upvalue-count":0,"bytecode":[20,0,0,20,3,0,20,4,0,48,1,52,2,0,1,1,5,0,52,1,0,2,1,6,0,49,2,50],"constants":[{"t":"s","v":"assert"},{"t":"s","v":"="},{"t":"s","v":"len"},{"t":"s","v":"signal-subscribers"},{"t":"s","v":"sig"},{"t":"n","v":0},{"t":"s","v":"Expected signal to have no subscribers"}]}},{"t":"s","v":"assert-signal-subscriber-count"},{"t":"code","v":{"arity":0,"upvalue-count":0,"bytecode":[20,1,0,20,2,0,48,1,52,0,0,1,17,2,20,3,0,20,4,0,20,5,0,1,7,0,20,5,0,1,8,0,20,4,0,52,6,0,4,49,3,50],"constants":[{"t":"s","v":"len"},{"t":"s","v":"signal-subscribers"},{"t":"s","v":"sig"},{"t":"s","v":"assert="},{"t":"s","v":"actual"},{"t":"s","v":"n"},{"t":"s","v":"str"},{"t":"s","v":"Expected "},{"t":"s","v":" subscribers, got "}]}},{"t":"s","v":"simulate-signal-set!"},{"t":"code","v":{"arity":0,"upvalue-count":0,"bytecode":[20,0,0,20,1,0,20,2,0,49,2,50],"constants":[{"t":"s","v":"reset!"},{"t":"s","v":"sig"},{"t":"s","v":"value"}]}},{"t":"s","v":"simulate-signal-swap!"},{"t":"code","v":{"arity":0,"upvalue-count":0,"bytecode":[20,0,0,20,1,0,20,2,0,49,2,50],"constants":[{"t":"s","v":"swap!"},{"t":"s","v":"sig"},{"t":"s","v":"f"}]}},{"t":"s","v":"assert-computed-dep-count"},{"t":"code","v":{"arity":0,"upvalue-count":0,"bytecode":[20,1,0,20,2,0,48,1,52,0,0,1,17,2,20,3,0,20,4,0,20,5,0,1,7,0,20,5,0,1,8,0,20,4,0,52,6,0,4,49,3,50],"constants":[{"t":"s","v":"len"},{"t":"s","v":"signal-deps"},{"t":"s","v":"sig"},{"t":"s","v":"assert="},{"t":"s","v":"actual"},{"t":"s","v":"n"},{"t":"s","v":"str"},{"t":"s","v":"Expected "},{"t":"s","v":" deps, got "}]}},{"t":"s","v":"assert-computed-depends-on"},{"t":"code","v":{"arity":0,"upvalue-count":0,"bytecode":[20,0,0,20,2,0,20,3,0,48,1,20,4,0,52,1,0,2,1,5,0,49,2,50],"constants":[{"t":"s","v":"assert"},{"t":"s","v":"contains?"},{"t":"s","v":"signal-deps"},{"t":"s","v":"computed-sig"},{"t":"s","v":"dep-sig"},{"t":"s","v":"Expected computed to depend on the given signal"}]}},{"t":"s","v":"count-effect-runs"},{"t":"code","v":{"arity":0,"upvalue-count":0,"bytecode":[20,0,0,1,1,0,48,1,17,1,20,2,0,51,3,0,48,1,5,1,1,0,17,2,20,2,0,51,4,0,48,1,17,3,20,5,0,50],"constants":[{"t":"s","v":"signal"},{"t":"n","v":0},{"t":"s","v":"effect"},{"t":"code","v":{"arity":0,"upvalue-count":0,"bytecode":[20,0,0,20,1,0,49,1,50],"constants":[{"t":"s","v":"deref"},{"t":"s","v":"count"}]}},{"t":"code","v":{"arity":0,"upvalue-count":0,"bytecode":[20,1,0,1,2,0,52,0,0,2,21,1,0,5,20,3,0,20,4,0,2,49,2,50],"constants":[{"t":"s","v":"+"},{"t":"s","v":"run-count"},{"t":"n","v":1},{"t":"s","v":"cek-call"},{"t":"s","v":"thunk"}]}},{"t":"s","v":"run-count"}]}},{"t":"s","v":"make-test-signal"},{"t":"code","v":{"arity":0,"upvalue-count":0,"bytecode":[20,0,0,20,1,0,48,1,17,1,52,2,0,0,17,2,20,3,0,51,4,0,48,1,5,1,0,0,20,5,0,1,6,0,20,6,0,65,2,0,50],"constants":[{"t":"s","v":"signal"},{"t":"s","v":"initial-value"},{"t":"s","v":"list"},{"t":"s","v":"effect"},{"t":"code","v":{"arity":0,"upvalue-count":0,"bytecode":[20,0,0,20,1,0,20,2,0,20,3,0,48,1,49,2,50],"constants":[{"t":"s","v":"append!"},{"t":"s","v":"history"},{"t":"s","v":"deref"},{"t":"s","v":"sig"}]}},{"t":"s","v":"sig"},{"t":"s","v":"history"}]}},{"t":"s","v":"assert-batch-coalesces"},{"t":"code","v":{"arity":0,"upvalue-count":0,"bytecode":[1,0,0,17,2,20,1,0,1,0,0,48,1,17,3,20,2,0,51,3,0,48,1,5,1,0,0,21,4,0,5,20,5,0,20,6,0,48,1,5,20,7,0,20,4,0,20,8,0,1,10,0,20,8,0,1,11,0,20,4,0,52,9,0,4,49,3,50],"constants":[{"t":"n","v":0},{"t":"s","v":"signal"},{"t":"s","v":"effect"},{"t":"code","v":{"arity":0,"upvalue-count":0,"bytecode":[20,0,0,20,1,0,48,1,5,20,3,0,1,4,0,52,2,0,2,21,3,0,50],"constants":[{"t":"s","v":"deref"},{"t":"s","v":"sig"},{"t":"s","v":"+"},{"t":"s","v":"notify-count"},{"t":"n","v":1}]}},{"t":"s","v":"notify-count"},{"t":"s","v":"batch"},{"t":"s","v":"thunk"},{"t":"s","v":"assert="},{"t":"s","v":"expected-notify-count"},{"t":"s","v":"str"},{"t":"s","v":"Expected "},{"t":"s","v":" notifications, got "}]}}]}}