Files
rose-ash/shared/static/wasm/sx/adapter-sx.sxbc.json
giles c923a34fa8 Fix WASM browser click handlers: 8 bugs, 50 new VM tests
The sx-get links were doing full page refreshes because click handlers
never attached. Root causes: VM frame management bug, missing primitives,
CEK/VM type dispatch mismatch, and silent error swallowing.

Fixes:
- VM frame exhaustion: frames <- [] now properly pops to rest_frames
- length primitive: add alias for len in OCaml primitives
- call_sx_fn: use sx_call directly instead of eval_expr (CEK checks
  for type "lambda" but VmClosure reports "function")
- Boot error surfacing: Sx.init() now has try/catch + failure summary
- Callback error surfacing: catch-all handler for non-Eval_error exceptions
- Silent JIT failures: log before CEK fallback instead of swallowing
- vm→env sync: loadModule now calls sync_vm_to_env()
- sx_build_bytecode MCP tool added for bytecode compilation

Tests: 50 new tests across test-vm.sx and test-vm-primitives.sx covering
nested VM calls, frame integrity, CEK bridge, primitive availability,
cross-module symbol resolution, and callback dispatch.

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

1 line
23 KiB
JSON

{"magic":"SXBC","version":1,"hash":"13762a3a91f6b00d","module":{"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,1,16,0,1,17,0,1,18,0,1,19,0,1,20,0,1,21,0,1,22,0,1,23,0,1,24,0,1,25,0,1,26,0,1,27,0,1,28,0,1,29,0,1,30,0,1,31,0,1,32,0,1,33,0,1,34,0,1,35,0,1,36,0,1,37,0,1,38,0,1,39,0,1,40,0,1,41,0,1,42,0,1,43,0,1,44,0,1,45,0,1,46,0,1,47,0,1,48,0,1,49,0,1,50,0,52,15,0,35,128,14,0,5,1,52,0,1,53,0,1,54,0,1,55,0,1,56,0,1,57,0,1,58,0,52,15,0,7,128,51,0,5,51,60,0,128,59,0,5,51,62,0,128,61,0,5,51,64,0,128,63,0,5,51,66,0,128,65,0,50],"constants":[{"t":"s","v":"render-to-sx"},{"t":"code","v":{"bytecode":[20,0,0,16,0,16,1,48,2,17,2,16,2,52,2,0,1,1,3,0,52,1,0,2,33,10,0,20,4,0,16,2,49,1,32,27,0,16,2,52,2,0,1,1,5,0,52,1,0,2,33,5,0,16,2,32,6,0,16,2,52,6,0,1,50],"constants":[{"t":"s","v":"aser"},{"t":"s","v":"="},{"t":"s","v":"type-of"},{"t":"s","v":"sx-expr"},{"t":"s","v":"sx-expr-source"},{"t":"s","v":"string"},{"t":"s","v":"serialize"}],"arity":2}},{"t":"s","v":"aser"},{"t":"code","v":{"bytecode":[20,0,0,3,48,1,5,16,0,52,1,0,1,6,1,2,0,52,3,0,2,33,6,0,5,16,0,32,16,1,6,1,4,0,52,3,0,2,33,6,0,5,16,0,32,255,0,6,1,5,0,52,3,0,2,33,6,0,5,16,0,32,238,0,6,1,6,0,52,3,0,2,33,5,0,5,2,32,222,0,6,1,7,0,52,3,0,2,33,116,0,5,20,8,0,16,0,48,1,17,3,20,9,0,16,1,16,3,48,2,33,12,0,20,10,0,16,1,16,3,48,2,32,79,0,16,3,52,11,0,1,33,9,0,16,3,52,12,0,1,32,61,0,16,3,1,13,0,52,3,0,2,33,4,0,3,32,45,0,16,3,1,14,0,52,3,0,2,33,4,0,4,32,29,0,16,3,1,6,0,52,3,0,2,33,4,0,2,32,13,0,1,17,0,16,3,52,16,0,2,52,15,0,1,32,95,0,6,1,18,0,52,3,0,2,33,11,0,5,20,19,0,16,0,48,1,32,73,0,6,1,20,0,52,3,0,2,33,29,0,5,16,0,52,21,0,1,33,7,0,52,20,0,0,32,9,0,20,22,0,16,0,16,1,48,2,32,33,0,6,1,23,0,52,3,0,2,33,19,0,5,1,25,0,16,0,52,26,0,1,52,24,0,2,5,2,32,3,0,5,16,0,17,2,16,2,52,27,0,1,33,18,0,1,25,0,16,2,52,26,0,1,52,24,0,2,5,2,32,2,0,16,2,50],"constants":[{"t":"s","v":"set-render-active!"},{"t":"s","v":"type-of"},{"t":"s","v":"number"},{"t":"s","v":"="},{"t":"s","v":"string"},{"t":"s","v":"boolean"},{"t":"s","v":"nil"},{"t":"s","v":"symbol"},{"t":"s","v":"symbol-name"},{"t":"s","v":"env-has?"},{"t":"s","v":"env-get"},{"t":"s","v":"primitive?"},{"t":"s","v":"get-primitive"},{"t":"s","v":"true"},{"t":"s","v":"false"},{"t":"s","v":"error"},{"t":"s","v":"str"},{"t":"s","v":"Undefined symbol: "},{"t":"s","v":"keyword"},{"t":"s","v":"keyword-name"},{"t":"s","v":"list"},{"t":"s","v":"empty?"},{"t":"s","v":"aser-list"},{"t":"s","v":"spread"},{"t":"s","v":"scope-emit!"},{"t":"s","v":"element-attrs"},{"t":"s","v":"spread-attrs"},{"t":"s","v":"spread?"}],"arity":2}},{"t":"s","v":"aser-list"},{"t":"code","v":{"bytecode":[16,0,52,0,0,1,17,2,16,0,52,1,0,1,17,3,16,2,52,4,0,1,1,5,0,52,3,0,2,52,2,0,1,33,14,0,51,7,0,1,1,16,0,52,6,0,2,32,136,2,20,8,0,16,2,48,1,17,4,16,4,1,9,0,52,3,0,2,33,12,0,20,10,0,16,3,16,1,49,2,32,103,2,16,4,1,11,0,52,3,0,2,33,15,0,20,12,0,1,11,0,16,3,16,1,49,3,32,76,2,16,4,1,14,0,52,13,0,2,33,196,0,20,15,0,16,1,16,4,48,2,33,12,0,20,16,0,16,1,16,4,48,2,32,1,0,2,17,5,20,15,0,16,1,1,17,0,48,2,33,8,0,20,17,0,48,0,32,1,0,4,17,6,16,5,6,33,7,0,5,16,5,52,18,0,1,33,21,0,20,19,0,20,20,0,16,5,16,3,16,1,48,3,16,1,49,2,32,105,0,16,5,6,33,71,0,5,16,5,52,21,0,1,6,33,60,0,5,16,5,52,22,0,1,52,2,0,1,6,33,45,0,5,16,6,6,34,15,0,5,20,23,0,16,5,48,1,1,24,0,52,3,0,2,6,33,19,0,5,20,23,0,16,5,48,1,1,25,0,52,3,0,2,52,2,0,1,33,14,0,20,26,0,16,5,16,3,16,1,49,3,32,11,0,20,12,0,16,4,16,3,16,1,49,3,32,124,1,16,4,1,27,0,52,3,0,2,33,14,0,20,12,0,16,4,16,3,16,1,49,3,32,98,1,16,4,1,28,0,52,3,0,2,33,14,0,20,12,0,16,4,16,3,16,1,49,3,32,72,1,20,30,0,16,4,52,29,0,2,33,14,0,20,12,0,16,4,16,3,16,1,49,3,32,46,1,20,31,0,16,4,48,1,6,34,8,0,5,20,32,0,16,4,48,1,33,14,0,20,33,0,16,4,16,0,16,1,49,3,32,10,1,20,15,0,16,1,16,4,48,2,6,33,14,0,5,20,16,0,16,1,16,4,48,2,52,18,0,1,33,28,0,20,19,0,20,20,0,20,16,0,16,1,16,4,48,2,16,3,16,1,48,3,16,1,49,2,32,208,0,20,34,0,20,35,0,16,2,16,1,48,2,48,1,17,5,51,36,0,1,1,16,3,52,6,0,2,17,6,20,37,0,16,5,48,1,6,33,41,0,5,16,5,52,38,0,1,52,2,0,1,6,33,26,0,5,16,5,52,21,0,1,52,2,0,1,6,33,11,0,5,16,5,52,22,0,1,52,2,0,1,33,11,0,16,5,16,6,52,39,0,2,32,113,0,16,5,52,38,0,1,33,19,0,20,34,0,20,40,0,16,5,16,6,16,1,48,3,49,1,32,85,0,16,5,52,21,0,1,33,25,0,20,12,0,1,14,0,16,5,52,42,0,1,52,41,0,2,16,3,16,1,49,3,32,51,0,16,5,52,22,0,1,33,25,0,20,12,0,1,14,0,16,5,52,42,0,1,52,41,0,2,16,3,16,1,49,3,32,17,0,1,44,0,16,5,52,45,0,1,52,41,0,2,52,43,0,1,50],"constants":[{"t":"s","v":"first"},{"t":"s","v":"rest"},{"t":"s","v":"not"},{"t":"s","v":"="},{"t":"s","v":"type-of"},{"t":"s","v":"symbol"},{"t":"s","v":"map"},{"t":"code","v":{"bytecode":[20,0,0,16,0,18,0,49,2,50],"constants":[{"t":"s","v":"aser"}],"arity":1,"upvalue-count":1}},{"t":"s","v":"symbol-name"},{"t":"s","v":"<>"},{"t":"s","v":"aser-fragment"},{"t":"s","v":"raw!"},{"t":"s","v":"aser-call"},{"t":"s","v":"starts-with?"},{"t":"s","v":"~"},{"t":"s","v":"env-has?"},{"t":"s","v":"env-get"},{"t":"s","v":"expand-components?"},{"t":"s","v":"macro?"},{"t":"s","v":"aser"},{"t":"s","v":"expand-macro"},{"t":"s","v":"component?"},{"t":"s","v":"island?"},{"t":"s","v":"component-affinity"},{"t":"s","v":"server"},{"t":"s","v":"client"},{"t":"s","v":"aser-expand-component"},{"t":"s","v":"lake"},{"t":"s","v":"marsh"},{"t":"s","v":"contains?"},{"t":"s","v":"HTML_TAGS"},{"t":"s","v":"special-form?"},{"t":"s","v":"ho-form?"},{"t":"s","v":"aser-special"},{"t":"s","v":"trampoline"},{"t":"s","v":"eval-expr"},{"t":"code","v":{"bytecode":[20,0,0,20,1,0,16,0,18,0,48,2,49,1,50],"constants":[{"t":"s","v":"trampoline"},{"t":"s","v":"eval-expr"}],"arity":1,"upvalue-count":1}},{"t":"s","v":"callable?"},{"t":"s","v":"lambda?"},{"t":"s","v":"apply"},{"t":"s","v":"call-lambda"},{"t":"s","v":"str"},{"t":"s","v":"component-name"},{"t":"s","v":"error"},{"t":"s","v":"Not callable: "},{"t":"s","v":"inspect"}],"arity":2}},{"t":"s","v":"aser-reserialize"},{"t":"code","v":{"bytecode":[16,0,52,2,0,1,1,3,0,52,1,0,2,52,0,0,1,33,9,0,16,0,52,4,0,1,32,122,0,16,0,52,5,0,1,33,6,0,1,6,0,32,107,0,16,0,52,7,0,1,17,1,16,1,52,2,0,1,1,8,0,52,1,0,2,52,0,0,1,33,9,0,16,0,52,4,0,1,32,70,0,20,9,0,16,1,48,1,17,2,16,2,52,3,0,1,17,3,16,0,52,10,0,1,17,4,4,17,5,1,11,0,17,6,51,13,0,1,5,1,6,1,4,1,3,16,4,52,12,0,2,5,1,15,0,1,17,0,16,3,52,16,0,2,1,18,0,52,14,0,3,50],"constants":[{"t":"s","v":"not"},{"t":"s","v":"="},{"t":"s","v":"type-of"},{"t":"s","v":"list"},{"t":"s","v":"serialize"},{"t":"s","v":"empty?"},{"t":"s","v":"()"},{"t":"s","v":"first"},{"t":"s","v":"symbol"},{"t":"s","v":"symbol-name"},{"t":"s","v":"rest"},{"t":"n","v":0},{"t":"s","v":"for-each"},{"t":"code","v":{"bytecode":[18,0,33,15,0,4,19,0,5,18,1,52,0,0,1,19,1,32,116,1,16,0,52,2,0,1,1,3,0,52,1,0,2,6,33,17,1,5,18,1,52,0,0,1,18,2,52,5,0,1,52,4,0,2,6,33,252,0,5,16,0,1,8,0,52,7,0,2,52,6,0,1,6,33,234,0,5,16,0,1,10,0,52,9,0,2,6,34,220,0,5,16,0,1,11,0,52,9,0,2,6,34,206,0,5,16,0,1,12,0,52,9,0,2,6,34,192,0,5,16,0,1,13,0,52,9,0,2,6,34,178,0,5,16,0,1,14,0,52,9,0,2,6,34,164,0,5,16,0,1,15,0,52,9,0,2,6,34,150,0,5,16,0,1,16,0,52,9,0,2,6,34,136,0,5,16,0,1,17,0,52,9,0,2,6,34,122,0,5,16,0,1,18,0,52,9,0,2,6,34,108,0,5,16,0,1,19,0,52,9,0,2,6,34,94,0,5,16,0,1,20,0,52,9,0,2,6,34,80,0,5,16,0,1,21,0,52,9,0,2,6,34,66,0,5,16,0,1,22,0,52,9,0,2,6,34,52,0,5,16,0,1,23,0,52,9,0,2,6,34,38,0,5,16,0,1,24,0,52,9,0,2,6,34,24,0,5,16,0,1,25,0,52,9,0,2,6,34,10,0,5,16,0,1,26,0,52,9,0,2,33,56,0,20,27,0,18,3,1,29,0,16,0,52,28,0,2,48,2,5,20,27,0,18,3,18,2,18,1,52,0,0,1,52,31,0,2,52,30,0,1,48,2,5,3,19,0,5,18,1,52,0,0,1,19,1,32,23,0,20,27,0,18,3,20,32,0,16,0,48,1,48,2,5,18,1,52,0,0,1,19,1,50],"constants":[{"t":"s","v":"inc"},{"t":"s","v":"="},{"t":"s","v":"type-of"},{"t":"s","v":"string"},{"t":"s","v":"<"},{"t":"s","v":"len"},{"t":"s","v":"not"},{"t":"s","v":"contains?"},{"t":"s","v":" "},{"t":"s","v":"starts-with?"},{"t":"s","v":"class"},{"t":"s","v":"id"},{"t":"s","v":"sx-"},{"t":"s","v":"data-"},{"t":"s","v":"style"},{"t":"s","v":"href"},{"t":"s","v":"src"},{"t":"s","v":"type"},{"t":"s","v":"name"},{"t":"s","v":"value"},{"t":"s","v":"placeholder"},{"t":"s","v":"action"},{"t":"s","v":"method"},{"t":"s","v":"target"},{"t":"s","v":"role"},{"t":"s","v":"for"},{"t":"s","v":"on"},{"t":"s","v":"append!"},{"t":"s","v":"str"},{"t":"s","v":":"},{"t":"s","v":"serialize"},{"t":"s","v":"nth"},{"t":"s","v":"aser-reserialize"}],"arity":1,"upvalue-count":4}},{"t":"s","v":"str"},{"t":"s","v":"("},{"t":"s","v":"join"},{"t":"s","v":" "},{"t":"s","v":")"}],"arity":1}},{"t":"s","v":"aser-fragment"},{"t":"code","v":{"bytecode":[52,0,0,0,17,2,51,2,0,1,1,1,2,16,0,52,1,0,2,5,16,2,52,3,0,1,33,6,0,1,4,0,32,54,0,16,2,52,6,0,1,1,7,0,52,5,0,2,33,14,0,20,8,0,16,2,52,9,0,1,49,1,32,24,0,20,8,0,1,11,0,1,13,0,16,2,52,12,0,2,1,14,0,52,10,0,3,49,1,50],"constants":[{"t":"s","v":"list"},{"t":"s","v":"for-each"},{"t":"code","v":{"bytecode":[20,0,0,16,0,18,0,48,2,17,1,16,1,52,1,0,1,33,4,0,2,32,76,0,16,1,52,3,0,1,1,4,0,52,2,0,2,33,17,0,20,5,0,18,1,20,6,0,16,1,48,1,49,2,32,43,0,16,1,52,3,0,1,1,7,0,52,2,0,2,33,14,0,51,9,0,0,1,16,1,52,8,0,2,32,13,0,20,5,0,18,1,16,1,52,10,0,1,49,2,50],"constants":[{"t":"s","v":"aser"},{"t":"s","v":"nil?"},{"t":"s","v":"="},{"t":"s","v":"type-of"},{"t":"s","v":"sx-expr"},{"t":"s","v":"append!"},{"t":"s","v":"sx-expr-source"},{"t":"s","v":"list"},{"t":"s","v":"for-each"},{"t":"code","v":{"bytecode":[16,0,52,1,0,1,52,0,0,1,33,50,0,16,0,52,3,0,1,1,4,0,52,2,0,2,33,17,0,20,5,0,18,0,20,6,0,16,0,48,1,49,2,32,14,0,20,5,0,18,0,20,7,0,16,0,48,1,49,2,32,1,0,2,50],"constants":[{"t":"s","v":"not"},{"t":"s","v":"nil?"},{"t":"s","v":"="},{"t":"s","v":"type-of"},{"t":"s","v":"sx-expr"},{"t":"s","v":"append!"},{"t":"s","v":"sx-expr-source"},{"t":"s","v":"aser-reserialize"}],"arity":1,"upvalue-count":1}},{"t":"s","v":"serialize"}],"arity":1,"upvalue-count":2}},{"t":"s","v":"empty?"},{"t":"s","v":""},{"t":"s","v":"="},{"t":"s","v":"len"},{"t":"n","v":1},{"t":"s","v":"make-sx-expr"},{"t":"s","v":"first"},{"t":"s","v":"str"},{"t":"s","v":"(<> "},{"t":"s","v":"join"},{"t":"s","v":" "},{"t":"s","v":")"}],"arity":2}},{"t":"s","v":"aser-call"},{"t":"code","v":{"bytecode":[52,0,0,0,17,3,52,0,0,0,17,4,4,17,5,1,1,0,17,6,1,3,0,2,52,2,0,2,5,51,5,0,1,5,1,6,1,1,1,2,1,3,1,4,16,1,52,4,0,2,5,51,6,0,1,3,1,3,0,52,7,0,1,52,4,0,2,5,1,3,0,52,8,0,1,5,16,0,52,0,0,1,16,3,16,4,52,9,0,3,17,7,20,10,0,1,12,0,1,14,0,16,7,52,13,0,2,1,15,0,52,11,0,3,49,1,50],"constants":[{"t":"s","v":"list"},{"t":"n","v":0},{"t":"s","v":"scope-push!"},{"t":"s","v":"element-attrs"},{"t":"s","v":"for-each"},{"t":"code","v":{"bytecode":[18,0,33,15,0,4,19,0,5,18,1,52,0,0,1,19,1,32,16,1,16,0,52,2,0,1,1,3,0,52,1,0,2,6,33,17,0,5,18,1,52,0,0,1,18,2,52,5,0,1,52,4,0,2,33,122,0,20,6,0,18,2,18,1,52,0,0,1,52,7,0,2,18,3,48,2,17,1,16,1,52,9,0,1,52,8,0,1,33,71,0,20,10,0,18,4,1,12,0,20,13,0,16,0,48,1,52,11,0,2,48,2,5,16,1,52,2,0,1,1,14,0,52,1,0,2,33,17,0,20,10,0,18,4,20,15,0,16,1,48,1,48,2,32,13,0,20,10,0,18,4,16,1,52,16,0,1,48,2,32,1,0,2,5,3,19,0,5,18,1,52,0,0,1,19,1,32,113,0,20,6,0,16,0,18,3,48,2,17,1,16,1,52,9,0,1,52,8,0,1,33,79,0,16,1,52,2,0,1,1,14,0,52,1,0,2,33,17,0,20,10,0,18,5,20,15,0,16,1,48,1,48,2,32,43,0,16,1,52,2,0,1,1,17,0,52,1,0,2,33,14,0,51,19,0,0,5,16,1,52,18,0,2,32,13,0,20,10,0,18,5,16,1,52,16,0,1,48,2,32,1,0,2,5,18,1,52,0,0,1,19,1,50],"constants":[{"t":"s","v":"inc"},{"t":"s","v":"="},{"t":"s","v":"type-of"},{"t":"s","v":"keyword"},{"t":"s","v":"<"},{"t":"s","v":"len"},{"t":"s","v":"aser"},{"t":"s","v":"nth"},{"t":"s","v":"not"},{"t":"s","v":"nil?"},{"t":"s","v":"append!"},{"t":"s","v":"str"},{"t":"s","v":":"},{"t":"s","v":"keyword-name"},{"t":"s","v":"sx-expr"},{"t":"s","v":"sx-expr-source"},{"t":"s","v":"serialize"},{"t":"s","v":"list"},{"t":"s","v":"for-each"},{"t":"code","v":{"bytecode":[16,0,52,1,0,1,52,0,0,1,33,49,0,16,0,52,3,0,1,1,4,0,52,2,0,2,33,17,0,20,5,0,18,0,20,6,0,16,0,48,1,49,2,32,13,0,20,5,0,18,0,16,0,52,7,0,1,49,2,32,1,0,2,50],"constants":[{"t":"s","v":"not"},{"t":"s","v":"nil?"},{"t":"s","v":"="},{"t":"s","v":"type-of"},{"t":"s","v":"sx-expr"},{"t":"s","v":"append!"},{"t":"s","v":"sx-expr-source"},{"t":"s","v":"serialize"}],"arity":1,"upvalue-count":1}}],"arity":1,"upvalue-count":6}},{"t":"code","v":{"bytecode":[51,1,0,1,0,0,0,16,0,52,2,0,1,52,0,0,2,50],"constants":[{"t":"s","v":"for-each"},{"t":"code","v":{"bytecode":[18,0,16,0,52,0,0,2,17,1,20,1,0,18,1,1,3,0,16,0,52,2,0,2,48,2,5,20,1,0,18,1,16,1,52,4,0,1,49,2,50],"constants":[{"t":"s","v":"dict-get"},{"t":"s","v":"append!"},{"t":"s","v":"str"},{"t":"s","v":":"},{"t":"s","v":"serialize"}],"arity":1,"upvalue-count":2}},{"t":"s","v":"keys"}],"arity":1,"upvalue-count":1}},{"t":"s","v":"scope-peek"},{"t":"s","v":"scope-pop!"},{"t":"s","v":"concat"},{"t":"s","v":"make-sx-expr"},{"t":"s","v":"str"},{"t":"s","v":"("},{"t":"s","v":"join"},{"t":"s","v":" "},{"t":"s","v":")"}],"arity":3}},{"t":"s","v":"aser-expand-component"},{"t":"code","v":{"bytecode":[16,0,52,0,0,1,17,3,20,1,0,16,2,16,0,52,2,0,1,48,2,17,4,1,3,0,17,5,4,17,6,52,4,0,0,17,7,51,6,0,1,4,16,3,52,5,0,2,5,51,7,0,1,6,1,5,1,1,1,4,1,2,1,7,16,1,52,5,0,2,5,20,8,0,16,0,48,1,33,53,0,51,10,0,1,2,16,7,52,9,0,2,17,8,20,11,0,16,4,1,12,0,16,8,52,14,0,1,1,15,0,52,13,0,2,33,9,0,16,8,52,16,0,1,32,2,0,16,8,48,3,32,1,0,2,5,20,17,0,16,0,52,18,0,1,16,4,49,2,50],"constants":[{"t":"s","v":"component-params"},{"t":"s","v":"env-merge"},{"t":"s","v":"component-closure"},{"t":"n","v":0},{"t":"s","v":"list"},{"t":"s","v":"for-each"},{"t":"code","v":{"bytecode":[20,0,0,18,0,16,0,2,49,3,50],"constants":[{"t":"s","v":"env-bind!"}],"arity":1,"upvalue-count":1}},{"t":"code","v":{"bytecode":[18,0,33,15,0,4,19,0,5,18,1,52,0,0,1,19,1,32,104,0,16,0,52,2,0,1,1,3,0,52,1,0,2,6,33,17,0,5,18,1,52,0,0,1,18,2,52,5,0,1,52,4,0,2,33,49,0,20,6,0,18,3,20,7,0,16,0,48,1,20,8,0,18,2,18,1,52,0,0,1,52,9,0,2,18,4,48,2,48,3,5,3,19,0,5,18,1,52,0,0,1,19,1,32,18,0,20,10,0,18,5,16,0,48,2,5,18,1,52,0,0,1,19,1,50],"constants":[{"t":"s","v":"inc"},{"t":"s","v":"="},{"t":"s","v":"type-of"},{"t":"s","v":"keyword"},{"t":"s","v":"<"},{"t":"s","v":"len"},{"t":"s","v":"env-bind!"},{"t":"s","v":"keyword-name"},{"t":"s","v":"aser"},{"t":"s","v":"nth"},{"t":"s","v":"append!"}],"arity":1,"upvalue-count":6}},{"t":"s","v":"component-has-children"},{"t":"s","v":"map"},{"t":"code","v":{"bytecode":[20,0,0,16,0,18,0,49,2,50],"constants":[{"t":"s","v":"aser"}],"arity":1,"upvalue-count":1}},{"t":"s","v":"env-bind!"},{"t":"s","v":"children"},{"t":"s","v":"="},{"t":"s","v":"len"},{"t":"n","v":1},{"t":"s","v":"first"},{"t":"s","v":"aser"},{"t":"s","v":"component-body"}],"arity":3}},{"t":"s","v":"SPECIAL_FORM_NAMES"},{"t":"s","v":"list"},{"t":"s","v":"if"},{"t":"s","v":"when"},{"t":"s","v":"cond"},{"t":"s","v":"case"},{"t":"s","v":"and"},{"t":"s","v":"or"},{"t":"s","v":"let"},{"t":"s","v":"let*"},{"t":"s","v":"lambda"},{"t":"s","v":"fn"},{"t":"s","v":"define"},{"t":"s","v":"defcomp"},{"t":"s","v":"defmacro"},{"t":"s","v":"defstyle"},{"t":"s","v":"defhandler"},{"t":"s","v":"defpage"},{"t":"s","v":"defquery"},{"t":"s","v":"defaction"},{"t":"s","v":"defrelation"},{"t":"s","v":"begin"},{"t":"s","v":"do"},{"t":"s","v":"quote"},{"t":"s","v":"quasiquote"},{"t":"s","v":"->"},{"t":"s","v":"set!"},{"t":"s","v":"letrec"},{"t":"s","v":"dynamic-wind"},{"t":"s","v":"defisland"},{"t":"s","v":"deftype"},{"t":"s","v":"defeffect"},{"t":"s","v":"scope"},{"t":"s","v":"provide"},{"t":"s","v":"context"},{"t":"s","v":"emit!"},{"t":"s","v":"emitted"},{"t":"s","v":"HO_FORM_NAMES"},{"t":"s","v":"map"},{"t":"s","v":"map-indexed"},{"t":"s","v":"filter"},{"t":"s","v":"reduce"},{"t":"s","v":"some"},{"t":"s","v":"every?"},{"t":"s","v":"for-each"},{"t":"s","v":"special-form?"},{"t":"code","v":{"bytecode":[20,1,0,16,0,52,0,0,2,50],"constants":[{"t":"s","v":"contains?"},{"t":"s","v":"SPECIAL_FORM_NAMES"}],"arity":1}},{"t":"s","v":"ho-form?"},{"t":"code","v":{"bytecode":[20,1,0,16,0,52,0,0,2,50],"constants":[{"t":"s","v":"contains?"},{"t":"s","v":"HO_FORM_NAMES"}],"arity":1}},{"t":"s","v":"aser-special"},{"t":"code","v":{"bytecode":[16,1,52,0,0,1,17,3,16,0,1,2,0,52,1,0,2,33,79,0,20,3,0,20,4,0,16,3,52,5,0,1,16,2,48,2,48,1,33,19,0,20,6,0,16,3,1,8,0,52,7,0,2,16,2,49,2,32,36,0,16,3,52,10,0,1,1,11,0,52,9,0,2,33,19,0,20,6,0,16,3,1,11,0,52,7,0,2,16,2,49,2,32,1,0,2,32,34,5,16,0,1,12,0,52,1,0,2,33,55,0,20,3,0,20,4,0,16,3,52,5,0,1,16,2,48,2,48,1,52,13,0,1,33,4,0,2,32,23,0,2,17,4,51,15,0,1,4,1,2,16,3,52,0,0,1,52,14,0,2,5,16,4,32,223,4,16,0,1,16,0,52,1,0,2,33,32,0,20,17,0,16,3,16,2,48,2,17,4,16,4,33,12,0,20,6,0,16,4,16,2,49,2,32,1,0,2,32,179,4,16,0,1,18,0,52,1,0,2,33,42,0,20,3,0,20,4,0,16,3,52,5,0,1,16,2,48,2,48,1,17,4,16,3,52,0,0,1,17,5,20,19,0,16,4,16,5,16,2,49,3,32,125,4,16,0,1,20,0,52,1,0,2,6,34,10,0,5,16,0,1,21,0,52,1,0,2,33,41,0,20,22,0,16,3,52,5,0,1,16,2,48,2,17,4,2,17,5,51,15,0,1,5,1,4,16,3,52,0,0,1,52,14,0,2,5,16,5,32,58,4,16,0,1,23,0,52,1,0,2,6,34,10,0,5,16,0,1,24,0,52,1,0,2,33,22,0,2,17,4,51,15,0,1,4,1,2,16,3,52,14,0,2,5,16,4,32,10,4,16,0,1,25,0,52,1,0,2,33,22,0,3,17,4,51,27,0,1,4,1,2,16,3,52,26,0,2,5,16,4,32,232,3,16,0,1,28,0,52,1,0,2,33,22,0,4,17,4,51,29,0,1,4,1,2,16,3,52,26,0,2,5,16,4,32,198,3,16,0,1,30,0,52,1,0,2,33,59,0,20,3,0,20,4,0,16,3,52,5,0,1,16,2,48,2,48,1,17,4,20,3,0,20,4,0,16,3,1,8,0,52,7,0,2,16,2,48,2,48,1,17,5,51,31,0,1,4,1,2,16,5,52,30,0,2,32,127,3,16,0,1,32,0,52,1,0,2,33,59,0,20,3,0,20,4,0,16,3,52,5,0,1,16,2,48,2,48,1,17,4,20,3,0,20,4,0,16,3,1,8,0,52,7,0,2,16,2,48,2,48,1,17,5,51,33,0,1,4,1,2,16,5,52,32,0,2,32,56,3,16,0,1,14,0,52,1,0,2,33,83,0,20,3,0,20,4,0,16,3,52,5,0,1,16,2,48,2,48,1,17,4,20,3,0,20,4,0,16,3,1,8,0,52,7,0,2,16,2,48,2,48,1,17,5,52,34,0,0,17,6,51,35,0,1,4,1,2,1,6,16,5,52,14,0,2,5,16,6,52,36,0,1,33,4,0,2,32,2,0,16,6,32,217,2,16,0,1,37,0,52,1,0,2,33,24,0,20,3,0,20,4,0,16,1,16,2,48,2,48,1,5,16,1,52,38,0,1,32,181,2,16,0,1,39,0,52,1,0,2,6,34,136,0,5,16,0,1,40,0,52,1,0,2,6,34,122,0,5,16,0,1,41,0,52,1,0,2,6,34,108,0,5,16,0,1,42,0,52,1,0,2,6,34,94,0,5,16,0,1,43,0,52,1,0,2,6,34,80,0,5,16,0,1,44,0,52,1,0,2,6,34,66,0,5,16,0,1,45,0,52,1,0,2,6,34,52,0,5,16,0,1,46,0,52,1,0,2,6,34,38,0,5,16,0,1,47,0,52,1,0,2,6,34,24,0,5,16,0,1,48,0,52,1,0,2,6,34,10,0,5,16,0,1,49,0,52,1,0,2,33,19,0,20,3,0,20,4,0,16,1,16,2,48,2,48,1,5,2,32,10,2,16,0,1,50,0,52,1,0,2,33,176,0,20,3,0,20,4,0,16,3,52,5,0,1,16,2,48,2,48,1,17,4,16,3,52,0,0,1,17,5,2,17,6,2,17,7,16,5,52,10,0,1,1,11,0,52,51,0,2,6,33,41,0,5,16,5,52,5,0,1,52,52,0,1,1,53,0,52,1,0,2,6,33,19,0,5,20,54,0,16,5,52,5,0,1,48,1,1,55,0,52,1,0,2,33,38,0,20,3,0,20,4,0,16,5,1,8,0,52,7,0,2,16,2,48,2,48,1,17,6,5,16,5,1,11,0,52,56,0,2,17,7,32,4,0,16,5,17,7,5,16,4,16,6,52,57,0,2,5,2,17,8,51,15,0,1,8,1,2,16,7,52,14,0,2,5,16,4,52,58,0,1,5,16,8,32,78,1,16,0,1,59,0,52,1,0,2,33,88,0,20,3,0,20,4,0,16,3,52,5,0,1,16,2,48,2,48,1,17,4,20,3,0,20,4,0,16,3,1,8,0,52,7,0,2,16,2,48,2,48,1,17,5,2,17,6,16,4,16,5,52,57,0,2,5,51,15,0,1,6,1,2,16,3,1,11,0,52,56,0,2,52,14,0,2,5,16,4,52,58,0,1,5,16,6,32,234,0,16,0,1,60,0,52,1,0,2,33,90,0,20,3,0,20,4,0,16,3,52,5,0,1,16,2,48,2,48,1,17,4,16,3,52,10,0,1,1,11,0,52,51,0,2,33,24,0,20,3,0,20,4,0,16,3,1,8,0,52,7,0,2,16,2,48,2,48,1,32,1,0,2,17,5,16,4,52,61,0,1,17,6,16,6,52,62,0,1,33,5,0,16,5,32,2,0,16,6,32,132,0,16,0,1,63,0,52,1,0,2,33,56,0,20,3,0,20,4,0,16,3,52,5,0,1,16,2,48,2,48,1,17,4,20,3,0,20,4,0,16,3,1,8,0,52,7,0,2,16,2,48,2,48,1,17,5,16,4,16,5,52,64,0,2,5,2,32,64,0,16,0,1,65,0,52,1,0,2,33,38,0,20,3,0,20,4,0,16,3,52,5,0,1,16,2,48,2,48,1,17,4,16,4,52,61,0,1,6,34,5,0,5,52,34,0,0,32,14,0,20,3,0,20,4,0,16,1,16,2,48,2,49,1,50],"constants":[{"t":"s","v":"rest"},{"t":"s","v":"="},{"t":"s","v":"if"},{"t":"s","v":"trampoline"},{"t":"s","v":"eval-expr"},{"t":"s","v":"first"},{"t":"s","v":"aser"},{"t":"s","v":"nth"},{"t":"n","v":1},{"t":"s","v":">"},{"t":"s","v":"len"},{"t":"n","v":2},{"t":"s","v":"when"},{"t":"s","v":"not"},{"t":"s","v":"for-each"},{"t":"code","v":{"bytecode":[20,0,0,16,0,18,1,48,2,19,0,50],"constants":[{"t":"s","v":"aser"}],"arity":1,"upvalue-count":2}},{"t":"s","v":"cond"},{"t":"s","v":"eval-cond"},{"t":"s","v":"case"},{"t":"s","v":"eval-case-aser"},{"t":"s","v":"let"},{"t":"s","v":"let*"},{"t":"s","v":"process-bindings"},{"t":"s","v":"begin"},{"t":"s","v":"do"},{"t":"s","v":"and"},{"t":"s","v":"some"},{"t":"code","v":{"bytecode":[20,0,0,20,1,0,16,0,18,1,48,2,48,1,19,0,5,18,0,52,2,0,1,50],"constants":[{"t":"s","v":"trampoline"},{"t":"s","v":"eval-expr"},{"t":"s","v":"not"}],"arity":1,"upvalue-count":2}},{"t":"s","v":"or"},{"t":"code","v":{"bytecode":[20,0,0,20,1,0,16,0,18,1,48,2,48,1,19,0,5,18,0,50],"constants":[{"t":"s","v":"trampoline"},{"t":"s","v":"eval-expr"}],"arity":1,"upvalue-count":2}},{"t":"s","v":"map"},{"t":"code","v":{"bytecode":[18,0,52,0,0,1,33,51,0,20,1,0,18,0,52,2,0,1,18,1,48,2,17,1,20,3,0,16,1,18,0,52,5,0,1,52,4,0,1,16,0,48,3,5,20,6,0,18,0,52,7,0,1,16,1,49,2,32,13,0,20,8,0,18,0,16,0,52,9,0,1,49,2,50],"constants":[{"t":"s","v":"lambda?"},{"t":"s","v":"env-merge"},{"t":"s","v":"lambda-closure"},{"t":"s","v":"env-bind!"},{"t":"s","v":"first"},{"t":"s","v":"lambda-params"},{"t":"s","v":"aser"},{"t":"s","v":"lambda-body"},{"t":"s","v":"cek-call"},{"t":"s","v":"list"}],"arity":1,"upvalue-count":2}},{"t":"s","v":"map-indexed"},{"t":"code","v":{"bytecode":[18,0,52,0,0,1,33,74,0,20,1,0,18,0,52,2,0,1,18,1,48,2,17,2,20,3,0,16,2,18,0,52,5,0,1,52,4,0,1,16,0,48,3,5,20,3,0,16,2,18,0,52,5,0,1,1,7,0,52,6,0,2,16,1,48,3,5,20,8,0,18,0,52,9,0,1,16,2,49,2,32,15,0,20,10,0,18,0,16,0,16,1,52,11,0,2,49,2,50],"constants":[{"t":"s","v":"lambda?"},{"t":"s","v":"env-merge"},{"t":"s","v":"lambda-closure"},{"t":"s","v":"env-bind!"},{"t":"s","v":"first"},{"t":"s","v":"lambda-params"},{"t":"s","v":"nth"},{"t":"n","v":1},{"t":"s","v":"aser"},{"t":"s","v":"lambda-body"},{"t":"s","v":"cek-call"},{"t":"s","v":"list"}],"arity":2,"upvalue-count":2}},{"t":"s","v":"list"},{"t":"code","v":{"bytecode":[18,0,52,0,0,1,33,58,0,20,1,0,18,0,52,2,0,1,18,1,48,2,17,1,20,3,0,16,1,18,0,52,5,0,1,52,4,0,1,16,0,48,3,5,20,6,0,18,2,20,7,0,18,0,52,8,0,1,16,1,48,2,49,2,32,13,0,20,9,0,18,0,16,0,52,10,0,1,49,2,50],"constants":[{"t":"s","v":"lambda?"},{"t":"s","v":"env-merge"},{"t":"s","v":"lambda-closure"},{"t":"s","v":"env-bind!"},{"t":"s","v":"first"},{"t":"s","v":"lambda-params"},{"t":"s","v":"append!"},{"t":"s","v":"aser"},{"t":"s","v":"lambda-body"},{"t":"s","v":"cek-call"},{"t":"s","v":"list"}],"arity":1,"upvalue-count":3}},{"t":"s","v":"empty?"},{"t":"s","v":"defisland"},{"t":"s","v":"serialize"},{"t":"s","v":"define"},{"t":"s","v":"defcomp"},{"t":"s","v":"defmacro"},{"t":"s","v":"defstyle"},{"t":"s","v":"defhandler"},{"t":"s","v":"defpage"},{"t":"s","v":"defquery"},{"t":"s","v":"defaction"},{"t":"s","v":"defrelation"},{"t":"s","v":"deftype"},{"t":"s","v":"defeffect"},{"t":"s","v":"scope"},{"t":"s","v":">="},{"t":"s","v":"type-of"},{"t":"s","v":"keyword"},{"t":"s","v":"keyword-name"},{"t":"s","v":"value"},{"t":"s","v":"slice"},{"t":"s","v":"scope-push!"},{"t":"s","v":"scope-pop!"},{"t":"s","v":"provide"},{"t":"s","v":"context"},{"t":"s","v":"scope-peek"},{"t":"s","v":"nil?"},{"t":"s","v":"emit!"},{"t":"s","v":"scope-emit!"},{"t":"s","v":"emitted"}],"arity":3}},{"t":"s","v":"eval-case-aser"},{"t":"code","v":{"bytecode":[16,1,52,1,0,1,1,2,0,52,0,0,2,33,4,0,2,32,175,0,16,1,52,3,0,1,17,3,16,1,1,5,0,52,4,0,2,17,4,16,3,52,7,0,1,1,8,0,52,6,0,2,6,33,15,0,5,20,9,0,16,3,48,1,1,10,0,52,6,0,2,6,34,52,0,5,16,3,52,7,0,1,1,11,0,52,6,0,2,6,33,34,0,5,20,12,0,16,3,48,1,1,13,0,52,6,0,2,6,34,15,0,5,20,12,0,16,3,48,1,1,10,0,52,6,0,2,33,12,0,20,14,0,16,4,16,2,49,2,32,53,0,16,0,20,15,0,20,16,0,16,3,16,2,48,2,48,1,52,6,0,2,33,12,0,20,14,0,16,4,16,2,49,2,32,18,0,20,17,0,16,0,16,1,1,2,0,52,18,0,2,16,2,49,3,50],"constants":[{"t":"s","v":"<"},{"t":"s","v":"len"},{"t":"n","v":2},{"t":"s","v":"first"},{"t":"s","v":"nth"},{"t":"n","v":1},{"t":"s","v":"="},{"t":"s","v":"type-of"},{"t":"s","v":"keyword"},{"t":"s","v":"keyword-name"},{"t":"s","v":"else"},{"t":"s","v":"symbol"},{"t":"s","v":"symbol-name"},{"t":"s","v":":else"},{"t":"s","v":"aser"},{"t":"s","v":"trampoline"},{"t":"s","v":"eval-expr"},{"t":"s","v":"eval-case-aser"},{"t":"s","v":"slice"}],"arity":3}}]}}