jz 0.8.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/README.md +56 -9
  2. package/bench/README.md +121 -50
  3. package/bench/bench.svg +27 -27
  4. package/cli.js +3 -1
  5. package/dist/interop.js +1 -1
  6. package/dist/jz.js +7541 -6178
  7. package/index.js +165 -74
  8. package/interop.js +189 -17
  9. package/jzify/arguments.js +32 -1
  10. package/jzify/async.js +409 -0
  11. package/jzify/classes.js +136 -18
  12. package/jzify/generators.js +639 -0
  13. package/jzify/hoist-vars.js +73 -1
  14. package/jzify/index.js +123 -4
  15. package/jzify/names.js +1 -0
  16. package/jzify/transform.js +239 -1
  17. package/layout.js +48 -3
  18. package/module/array.js +318 -43
  19. package/module/atomics.js +144 -0
  20. package/module/collection.js +1429 -155
  21. package/module/core.js +431 -40
  22. package/module/date.js +142 -120
  23. package/module/fs.js +144 -0
  24. package/module/function.js +6 -3
  25. package/module/index.js +4 -1
  26. package/module/json.js +270 -49
  27. package/module/math.js +1032 -145
  28. package/module/number.js +532 -163
  29. package/module/object.js +353 -95
  30. package/module/regex.js +157 -7
  31. package/module/schema.js +100 -2
  32. package/module/string.js +428 -93
  33. package/module/typedarray.js +264 -72
  34. package/module/web.js +36 -0
  35. package/package.json +5 -5
  36. package/src/abi/string.js +82 -11
  37. package/src/ast.js +11 -5
  38. package/src/autoload.js +28 -1
  39. package/src/bridge.js +7 -2
  40. package/src/compile/analyze-scans.js +22 -7
  41. package/src/compile/analyze.js +136 -30
  42. package/src/compile/dyn-closure-tables.js +277 -0
  43. package/src/compile/emit-assign.js +281 -15
  44. package/src/compile/emit.js +1055 -70
  45. package/src/compile/index.js +277 -29
  46. package/src/compile/infer.js +42 -4
  47. package/src/compile/inplace-store.js +329 -0
  48. package/src/compile/loop-recurrence.js +167 -0
  49. package/src/compile/narrow.js +555 -18
  50. package/src/compile/peel-stencil.js +5 -0
  51. package/src/compile/plan/index.js +45 -3
  52. package/src/compile/plan/inline.js +8 -1
  53. package/src/compile/plan/literals.js +39 -0
  54. package/src/compile/plan/scope.js +430 -23
  55. package/src/compile/program-facts.js +732 -38
  56. package/src/ctx.js +64 -9
  57. package/src/helper-counters.js +7 -1
  58. package/src/ir.js +113 -5
  59. package/src/kind-traits.js +66 -3
  60. package/src/kind.js +84 -12
  61. package/src/op-policy.js +7 -4
  62. package/src/optimize/index.js +1179 -704
  63. package/src/optimize/recurse.js +2 -2
  64. package/src/optimize/vectorize.js +982 -67
  65. package/src/prepare/index.js +809 -67
  66. package/src/prepare/math-kernel.js +331 -0
  67. package/src/prepare/pre-eval.js +714 -0
  68. package/src/snapshot.js +194 -0
  69. package/src/type.js +1170 -56
  70. package/src/wat/assemble.js +403 -65
  71. package/src/wat/codegen.js +74 -14
  72. package/transform.js +113 -4
  73. package/wasi.js +3 -0
package/dist/interop.js CHANGED
@@ -1 +1 @@
1
- var ge=new TextDecoder;function ne(t={}){let e=null,a=(i,f)=>{let m=i===1?globalThis.process?.stdout:globalThis.process?.stderr;if(m&&typeof m.write=="function")try{m.write(f);return}catch{}let d=f.replace(/\n$/,"");(i===1?console.log:console.warn)(d)},u=t.write||a;return{wasi_snapshot_preview1:{fd_read(i,f,m,d){let x=new DataView(e.buffer),A=0;for(let h=0;h<m;h++){let _=x.getUint32(f+h*8,!0),S=x.getUint32(f+h*8+4,!0),E=new Uint8Array(e.buffer,_,S);A+=t.read&&t.read(i,E)||0}return x.setUint32(d,A,!0),0},fd_write(i,f,m,d){let x=new DataView(e.buffer),A=0;for(let h=0;h<m;h++){let _=x.getUint32(f+h*8,!0),S=x.getUint32(f+h*8+4,!0);u(i,ge.decode(new Uint8Array(e.buffer,_,S))),A+=S}return x.setUint32(d,A,!0),0},clock_time_get(i,f,m){let d=new DataView(e.buffer),x=BigInt(Math.round(i===0?Date.now()*1e6:performance.now()*1e6));return d.setBigInt64(m,x,!0),0},random_get(i,f){let m=new Uint8Array(e.buffer,i,f);if(globalThis.crypto?.getRandomValues)globalThis.crypto.getRandomValues(m);else for(let d=0;d<f;d++)m[d]=Math.random()*256|0;return 0},proc_exit(){},environ_sizes_get(i,f){let m=new DataView(e.buffer);return m.setUint32(i,0,!0),m.setUint32(f,0,!0),0},environ_get(){return 0}},_setMemory(i){e=i}}}var re=t=>{if(!t.exports.__timer_tick)return;let e=t.exports.__timer_tick,a=!1,u=setInterval(()=>{let i=e();i>0&&(a=!0),a&&i<=0&&clearInterval(u)},1)};var N={PTR_ADDR:1020,START:1024},T={TAG_SHIFT:47,TAG_MASK:15,AUX_SHIFT:32,AUX_MASK:32767,OFFSET_MASK:4294967295,NAN_PREFIX:32760,NAN_PREFIX_BITS:0x7FF8000000000000n,SSO_BIT:16384,SLICE_BIT:8192,SLICE_LEN_MASK:8191},U={ATOM:0,ARRAY:1,BUFFER:2,TYPED:3,STRING:4,OBJECT:6,HASH:7,SET:8,MAP:9,CLOSURE:10,EXTERNAL:11},B={NULL:1,UNDEF:2,FALSE:4,TRUE:5},Ne=1<<U.ARRAY|1<<U.HASH|1<<U.SET|1<<U.MAP,Oe=BigInt(T.TAG_SHIFT),Re=BigInt(T.TAG_MASK),Le=BigInt(T.AUX_SHIFT),De=BigInt(T.AUX_MASK),Pe=BigInt(T.OFFSET_MASK);var P=(t,e)=>(T.NAN_PREFIX<<16|(t&T.TAG_MASK)<<T.TAG_SHIFT-32|e&T.AUX_MASK)>>>0,oe=t=>t>>>T.TAG_SHIFT-32&T.TAG_MASK,J=t=>t&T.AUX_MASK;var W={[B.NULL]:P(U.ATOM,B.NULL),[B.UNDEF]:P(U.ATOM,B.UNDEF),[B.FALSE]:P(U.ATOM,B.FALSE),[B.TRUE]:P(U.ATOM,B.TRUE)};var Q=new TextEncoder,Ae=new TextDecoder,de=(t,e)=>{let a=WebAssembly.Module.imports(t).some(u=>u.module==="wasi_snapshot_preview1");return{needsWasi:a,wasiImports:a?ne(e):null}},xe=t=>new Set(WebAssembly.Module.imports(t).filter(e=>e.module==="env"&&e.kind==="function").map(e=>e.name)),Ie=(t,e)=>{let a=()=>new DataView(t.buffer),u=e?()=>e.value:()=>a().getInt32(N.PTR_ADDR,!0),i=e?A=>{e.value=A}:A=>a().setInt32(N.PTR_ADDR,A,!0),f=e?e.value:N.START;return{alloc:A=>{let h=u()+7&-8,_=h+A;return _>t.buffer.byteLength&&t.grow(Math.ceil((_-t.buffer.byteLength)/65536)),i(_),h},reset:()=>i(f),initHeapPtr:()=>{if(e)return;let A=a();A.getInt32(N.PTR_ADDR,!0)<N.START&&A.setInt32(N.PTR_ADDR,N.START,!0)}}},V=(t,e)=>{let a=WebAssembly.Module.customSections(t,e);return a.length?new Uint8Array(a[0]):null},we=t=>{let e=new TextDecoder,a=0;return{pos:()=>a,seek:u=>{a=u},eof:()=>a>=t.length,u8:()=>t[a++],varint:()=>{let u=0,i=0;for(;;){let f=t[a++];if(u|=(f&127)<<i,!(f&128))return u;i+=7}},str:u=>{let i=e.decode(t.subarray(a,a+u));return a+=u,i},bytes:u=>{let i=t.subarray(a,a+u);return a+=u,i}}},H=0xffffffffn,ae=new ArrayBuffer(8),z=new Uint32Array(ae),fe=new Float64Array(ae),C=t=>(fe[0]=t,BigInt(z[1])<<32n|BigInt(z[0]>>>0)),D=t=>(z[0]=Number(t&H),z[1]=Number(t>>32n&H),fe[0]),Y=t=>Number(t>>32n&H),Z=t=>(Y(t)&2146959360)===2146959360,R=t=>typeof t=="bigint"?t:C(t),le=BigInt(W[B.NULL])<<32n,$=BigInt(W[B.UNDEF])<<32n,he=BigInt(W[B.FALSE])<<32n,_e=BigInt(W[B.TRUE])<<32n,O=t=>t===null?le:t===void 0?$:t,be=t=>{let e=0n;for(let a=0;a<t.length;a++)e|=BigInt(t.charCodeAt(a))<<BigInt(a*7);return e|=BigInt(t.length)<<42n,M(4,Number(e>>32n)|T.SSO_BIT,Number(e&0xFFFFFFFFn))},te=t=>typeof t=="bigint"?t:C(t),M=(t,e,a)=>BigInt(P(t,e))<<32n|BigInt(a>>>0),L=t=>Number(te(t)&H),ee=t=>oe(Y(te(t))),v=t=>J(Y(te(t))),ue=t=>{let e=J(Y(t)),a=e>>>10&7,u=BigInt(e)<<32n|BigInt(Number(t&H)),i="";for(let f=0;f<a;f++)i+=String.fromCharCode(Number(u>>BigInt(f*7)&0x7fn));return i},j=t=>{if(Array.isArray(t))return t.map(j);if(typeof t=="number"){if(t===t)return t;t=C(t)}else if(typeof t!="bigint")return t;if(!Z(t))return D(t);if(ee(t)===4&&v(t)&T.SSO_BIT)return ue(t);if(L(t)===0){if(t===le)return null;if(t===$)return;if(t===he)return!1;if(t===_e)return!0}return D(t)},q=(t,e)=>t.mem?t.mem.read(e):j(e),X={Int8Array:[0,1,"getInt8","setInt8"],Uint8Array:[1,1,"getUint8","setUint8"],Int16Array:[2,2,"getInt16","setInt16"],Uint16Array:[3,2,"getUint16","setUint16"],Int32Array:[4,4,"getInt32","setInt32"],Uint32Array:[5,4,"getUint32","setUint32"],Float32Array:[6,4,"getFloat32","setFloat32"],Float64Array:[7,8,"getFloat64","setFloat64"]},se=Object.values(X),K=new WeakSet,G=t=>{if(t instanceof WebAssembly.Memory&&K.has(t))return t;if(!t||typeof t=="object"&&!(t instanceof WebAssembly.Memory)&&!t.instance&&!t.exports&&!t.memory){let r=new WebAssembly.Memory({initial:t?.initial||1,...t?.maximum?{maximum:t.maximum}:{},...t?.shared?{shared:t.shared}:{}});return G(r)}let e,a,u,i;if(t instanceof WebAssembly.Memory)e=t,a=null,u=null,i=null;else{let r=t?.instance?.exports||t?.exports||t;if(e=t?.exports?.memory||r.memory,!e)return{read:j,wrapVal:O,scalar:!0};a={...r,memory:e},u=t.extMap||null,i=t.module||null}let f=()=>new DataView(e.buffer),{alloc:m,reset:d,initHeapPtr:x}=Ie(e,a?.__heap),A=a?._alloc||m;x();let h=(r,s,p)=>{let y=A(16+p),n=f();return n.setBigInt64(y,0n,!0),n.setInt32(y+8,r,!0),n.setInt32(y+12,s,!0),y+16},_=e.schemas||[],S=i&&V(i,"jz:schema");if(S){let r=we(S),s=()=>{let n=r.u8();return n===0?null:n===1?[null,s()]:r.str(r.varint())},p=r.varint(),y=[];for(let n=0;n<p;n++){let o=r.varint(),c=[];for(let l=0;l<o;l++)c.push(s());y.push(c)}for(let n of y){let o=n.join(",");_.some(c=>c.join(",")===o)||_.push(n)}}if(K.has(e))return e.schemas=_,a?._alloc&&(A=a._alloc,e.alloc=A),e.reset=d,u&&(e._extMap=u),e;e.schemas=_,e._extMap=u,e.Array=r=>{let s=r.length,p=h(s,s,s*8),y=new BigInt64Array(s);for(let o=0;o<s;o++)y[o]=R(e.wrapVal(r[o]));let n=new BigInt64Array(e.buffer,p,s);for(let o=0;o<s;o++)n[o]=y[o];return M(1,0,p)},e.String=r=>{if(r.length<=6&&/^[\x00-\x7f]*$/.test(r)){let c=0n;for(let l=0;l<r.length;l++)c|=BigInt(r.charCodeAt(l))<<BigInt(l*7);return c|=BigInt(r.length)<<42n,M(4,Number(c>>32n)|T.SSO_BIT,Number(c&0xFFFFFFFFn))}let s=Q.encode(r),p=s.length,y=A(4+p),n=f();n.setInt32(y,p,!0);let o=y+4;return s.forEach((c,l)=>n.setUint8(o+l,c)),M(4,0,o)},e.Buffer=r=>{let s=r instanceof ArrayBuffer?new Uint8Array(r):ArrayBuffer.isView(r)?new Uint8Array(r.buffer,r.byteOffset,r.byteLength):new Uint8Array(r),p=s.length,y=h(p,p,p);return new Uint8Array(e.buffer).set(s,y),M(2,0,y)},e.wrapVal=function(r){if(r==null)return O(r);if(typeof r=="number"||typeof r=="boolean")return Number(r);if(typeof r=="string")return e.String(r);if(typeof r=="bigint")return Z(r)?r:e.String(r.toString());if(Array.isArray(r))return e.Array(r);if(r instanceof ArrayBuffer)return e.Buffer(r);if(r instanceof DataView)return e.Buffer(r.buffer);let s=r?.constructor?.name;return s&&X[s]?e[s](r):typeof r=="object"||typeof r=="function"?e.External(r):$},e.External=function(r){if(r==null)return O(r);let s=e._extMap;if(!s)return $;let p=s.indexOf(r);return p===-1&&(p=s.length,s.push(r)),M(11,0,p)},e.Object=function(r){let s=Object.keys(r),p=s.join(","),y=e.schemas,n=y.findIndex(I=>I.join(",")===p);if(n===-1){let I=y.reduce((b,F,pe)=>F.length===s.length&&s.every(ye=>F.includes(ye))?b.concat(pe):b,[]);if(I.length===1)n=I[0];else{if(I.length>1)throw Error(`Ambiguous schema for {${p}} \u2014 pass keys in schema order`);if(e._extMap)return e.External(r);throw Error(`No schema for {${p}}`)}}let o=y[n],c=o.length,l=A(c*8),g=new BigInt64Array(c);for(let I=0;I<c;I++){let b=r[o[I]];b==null?b=O(b):typeof b=="string"?b=e.String(b):Array.isArray(b)&&(b=e.Array(b)),g[I]=R(b)}let w=new BigInt64Array(e.buffer,l,c);for(let I=0;I<c;I++)w[I]=g[I];return M(6,n,l)},e.read=function(r){if(Array.isArray(r))return r.map(o=>e.read(o));if(typeof r=="number"){if(r===r)return r;r=C(r)}else if(typeof r!="bigint")return r;if(!Z(r))return D(r);let s=f(),p=ee(r),y=v(r),n=L(r);if(p===0&&n===0){if(y===1)return null;if(y===2)return;if(y===4)return!1;if(y===5)return!0}if(p===11&&e._extMap)return e._extMap[n];if(p===1){let o=n;for(;s.getInt32(o-4,!0)===-1;)o=s.getInt32(o-8,!0);let c=s.getInt32(o-8,!0),l=new Array(c);for(let g=0;g<c;g++)l[g]=e.read(s.getBigInt64(o+g*8,!0));return l}if(p===3){let o=y&7,[,c]=se[o],l=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][o];if(y&8){let w=s.getInt32(n,!0),I=s.getInt32(n+4,!0);return new l(e.buffer,I,w/c)}let g=s.getInt32(n-8,!0);return new l(e.buffer,n,g/c)}if(p===2){let o=s.getInt32(n-8,!0),c=new ArrayBuffer(o);return new Uint8Array(c).set(new Uint8Array(e.buffer,n,o)),c}if(p===4){if(y&T.SSO_BIT)return ue(r);let o=s.getInt32(n-4,!0);return Ae.decode(new Uint8Array(e.buffer,n,o))}if(p===6){let o=e.schemas[y];if(!o)return r;let c={};for(let l=0;l<o.length;l++)c[o[l]]=e.read(s.getBigInt64(n+l*8,!0));return c}if(p===7){let o=s.getInt32(n-8,!0),c=s.getInt32(n-4,!0),l={};for(let g=0,w=0;g<c&&w<o;g++)s.getBigInt64(n+g*24,!0)!==0n&&(l[e.read(s.getBigInt64(n+g*24+8,!0))]=e.read(s.getBigInt64(n+g*24+16,!0)),w++);return l}if(p===8){let o=s.getInt32(n-8,!0),c=s.getInt32(n-4,!0),l=new Set;for(let g=0;g<c&&l.size<o;g++)s.getBigInt64(n+g*16,!0)!==0n&&l.add(e.read(s.getBigInt64(n+g*16+8,!0)));return l}if(p===9){let o=s.getInt32(n-8,!0),c=s.getInt32(n-4,!0),l=new Map;for(let g=0;g<c&&l.size<o;g++)s.getBigInt64(n+g*24,!0)!==0n&&l.set(e.read(s.getBigInt64(n+g*24+8,!0)),e.read(s.getBigInt64(n+g*24+16,!0)));return l}return D(r)},e.write=function(r,s){let p=ee(r),y=L(r),n=f();if(p===1){let o=n.getInt32(y-4,!0);if(s.length>o)throw Error(`write: ${s.length} exceeds capacity ${o}`);n.setInt32(y-8,s.length,!0);for(let c=0;c<s.length;c++)n.setBigInt64(y+c*8,R(O(s[c])),!0)}else if(p===3){let o=v(r),c=o&7,[,l,,g]=se[c],w=s.length*l;if(o&8){let I=n.getInt32(y,!0),b=n.getInt32(y+4,!0);if(w>I)throw Error(`write: ${w} bytes exceeds view size ${I}`);for(let F=0;F<s.length;F++)n[g](b+F*l,s[F],!0)}else{let I=n.getInt32(y-4,!0);if(w>I)throw Error(`write: ${w} bytes exceeds capacity ${I}`);n.setInt32(y-8,w,!0);for(let b=0;b<s.length;b++)n[g](y+b*l,s[b],!0)}}else if(p===6){let o=e.schemas[v(r)];if(!o)throw Error("write: unknown schema");for(let c of Object.keys(s)){let l=o.indexOf(c);l>=0&&n.setBigInt64(y+l*8,R(O(s[c])),!0)}}else throw Error(`write: unsupported type ${p}`)},e.alloc=A,e.reset=d;let E=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];for(let[r,[s,p,,y]]of Object.entries(X))e[r]=n=>{let o=n.length,c=o*p,l=h(c,c,c);if(E[s]&&n instanceof E[s])new E[s](e.buffer,l,o).set(n);else{let g=f();for(let w=0;w<o;w++)g[y](l+w*p,n[w],!0)}return M(3,s,l)};return e.allocTyped=(r,s)=>{let p=X[r?.name];if(!p)throw Error(`allocTyped: unsupported type ${r?.name??r}`);let[y,n]=p,o=s*n,c=h(o,o,o);return{view:new r(e.buffer,c,s),box:M(3,y,c)}},K.add(e),e},Te=(t,e)=>{let a=new Map,u=e?t:t.module||t,i=e||t.instance||t,f=new TextDecoder,m=V(u,"jz:rest");if(m)try{for(let n of JSON.parse(f.decode(m)))a.set(typeof n=="string"?n:n.name,typeof n=="string"?0:n.fixed)}catch{}let d=new Map,x=V(u,"jz:extparam");if(x)try{for(let n of JSON.parse(f.decode(x))){let o=new Set(n.p);n.d&&(o.def=new Map(Object.entries(n.d).map(([c,l])=>[Number(c),l]))),d.set(n.name,o)}}catch{}let A=new Map,h=V(u,"jz:i64exp");if(h)try{for(let n of JSON.parse(f.decode(h)))A.set(n.name,{p:new Set(n.p||[]),r:!!n.r})}catch{}let _=G(t),S=i.exports.__jz_last_err_bits,E=n=>{if(!(n instanceof WebAssembly.Exception)||!S)throw n;let o=S.value,c=_?_.read(o):j(o);if(c instanceof Error)throw c;let l=new Error(typeof c=="string"?c:String(c));throw l.cause=n,l.thrown=c,l},r={},s=(n,o,c,l)=>n?.has(o)?c===void 0&&n.def?.has(o)?n.def.get(o):c:l(c),p=(n,o,c)=>(l,g)=>{let w=s(o,g,l,c);if(n&&n.p.has(g)){if(typeof w=="string"){if(w.length>6||!/^[\x00-\x7f]*$/.test(w))throw new Error("jz: string arg too long or non-ASCII for memoryless module \u2014 compile with a string operation to enable heap marshaling");return be(w)}return R(w)}return typeof w=="bigint"?D(w):w};if(!_||_.scalar){for(let[n,o]of Object.entries(i.exports)){if(typeof o!="function"){r[n]=o;continue}let c=d.get(n),l=A.get(n),g=o.length;r[n]=(...w)=>{for(;w.length<g;)w.push(void 0);try{let I=o(...w.map(p(l,c,O)));return typeof I=="bigint"&&!(l&&l.r)?I:j(I)}catch(I){E(I)}}}return r}let y=_.wrapVal.bind(_);for(let[n,o]of Object.entries(i.exports))if(a.has(n)&&typeof o=="function"){let c=a.get(n),l=d.get(n),g=A.get(n);r[n]=(...w)=>{let I=w.slice(0,c).map(p(g,l,y));for(;I.length<c;){let F=I.length;I.push(g&&g.p.has(F)?$:D($))}let b=_.Array(w.slice(c));I.push(g&&g.p.has(c)?b:D(b));try{let F=o.apply(null,I);return typeof F=="bigint"&&!(g&&g.r)?F:_.read(F)}catch(F){E(F)}}}else if(typeof o=="function"){let c=d.get(n),l=A.get(n),g=o.length;r[n]=(...w)=>{for(;w.length<g;)w.push(void 0);try{let I=o.apply(null,w.map(p(l,c,y)));return typeof I=="bigint"&&!(l&&l.r)?I:_.read(I)}catch(I){E(I)}}}else r[n]=o;return r},Fe=t=>{let e={extMap:[null],mem:null};return t._interp=t._interp||{},t._interp.__ext_prop=(a,u)=>{let i=e.extMap[L(a)],f=e.mem.read(u);return R(e.mem.wrapVal(typeof i[f]=="function"?i[f].bind(i):i[f]))},t._interp.__ext_has=(a,u)=>e.mem.read(u)in e.extMap[L(a)]?1:0,t._interp.__ext_set=(a,u,i)=>(e.extMap[L(a)][e.mem.read(u)]=e.mem.read(i),1),t._interp.__ext_call=(a,u,i)=>{let f=e.extMap[L(a)],m=e.mem.read(u),d=e.mem.read(i);return R(e.mem.wrapVal(f[m].apply(f,d)))},e},Be=(t,e,a)=>{let u=xe(t);if(u.size){if(e.env||(e.env={}),u.has("print")&&!e.env.print){let i=["","",""],f=[],m=x=>{(x===2?console.error:console.log)(i[x]),i[x]=""},d=(x,A,h)=>{let _=q(a,x);i[A]+=String(_),h===32?i[A]+=" ":h===10&&m(A)};e.env.print=(x,A,h)=>{a.mem?d(x,A,h):f.push([x,A,h])},a.flushPrint=()=>{for(let x of f)d(...x);f.length=0}}if(u.has("now")&&!e.env.now&&(e.env.now=i=>i===1&&typeof performance<"u"?performance.now():Date.now()),u.has("rngSeed")&&!e.env.rngSeed&&(e.env.rngSeed=()=>{let i=new Uint32Array(1);return globalThis.crypto?.getRandomValues?globalThis.crypto.getRandomValues(i):i[0]=Math.random()*4294967296>>>0,i[0]|0}),u.has("parseFloat")&&!e.env.parseFloat&&(e.env.parseFloat=i=>{let f=q(a,i);return parseFloat(f)}),u.has("parseInt")&&!e.env.parseInt&&(e.env.parseInt=(i,f)=>{let m=q(a,i);return parseInt(m,f||void 0)}),u.has("setTimeout")||u.has("clearTimeout")){let i=new Map,f=1;u.has("setTimeout")&&!e.env.setTimeout&&(e.env.setTimeout=(m,d,x)=>{let A=f++,h=()=>a.invoke?.(m);if(x){let _=setInterval(h,d);i.set(A,()=>clearInterval(_))}else{let _=setTimeout(()=>{i.delete(A),h()},d);i.set(A,()=>clearTimeout(_))}return A}),u.has("clearTimeout")&&!e.env.clearTimeout&&(e.env.clearTimeout=m=>{let d=i.get(m);return d&&(d(),i.delete(m)),0})}}},ie={length:t=>t.length,charCodeAt:(t,e)=>t.charCodeAt(e)},ce=!1,k=!1,me=()=>{if(ce)return k;ce=!0;try{let t=new Uint8Array([0,97,115,109,1,0,0,0,1,6,1,96,1,111,1,127,2,24,1,15,...Q.encode("wasm:js-string"),6,...Q.encode("length"),0,0]),e=new WebAssembly.Module(t,{builtins:["js-string"]});new WebAssembly.Instance(e,{}),k=!0}catch{k=!1}return k},Se=(t,e,a)=>{let{needsWasi:u,wasiImports:i}=de(t,e),f=i||{};if(e._interp&&(f.env={...f.env,...e._interp}),!me())for(let m of WebAssembly.Module.imports(t))m.module==="wasm:js-string"&&ie[m.name]&&(f["wasm:js-string"]||(f["wasm:js-string"]={}),f["wasm:js-string"][m.name]=ie[m.name]);if(e.imports)for(let[m,d]of Object.entries(e.imports)){f[m]||(f[m]={});for(let x of Object.getOwnPropertyNames(d)){let A=d[x],h=typeof A=="function"?A:A&&typeof A=="object"?A.fn:null;typeof h=="function"&&(f[m][x]=(..._)=>{let S=_.map(r=>a.mem?a.mem.read(r):j(r)),E=h.call(d,...S);return R(a.mem?a.mem.wrapVal(E):O(E))})}}Be(t,f,a),e.memory instanceof WebAssembly.Memory&&(K.has(e.memory)||(e.memory=G(e.memory)),f.env||(f.env={}),f.env.memory=e.memory);for(let m of WebAssembly.Module.imports(t))if(m.kind==="global"&&m.module==="env"){let d=globalThis[m.name];if(d!==void 0){f.env||(f.env={});let x=a.extMap.indexOf(d);x===-1&&(x=a.extMap.length,a.extMap.push(d)),f.env[m.name]=new WebAssembly.Global({value:"i64",mutable:!1},M(11,0,x))}}return{imports:f,needsWasi:u}},Ee=(t,e,a,u,i,f)=>{u&&a._setMemory(e.exports.memory),f.invoke=e.exports.__invoke_closure||null,re(e);let m=i.memory instanceof WebAssembly.Memory?i.memory:e.exports.memory,d={module:t,instance:e,exports:{...e.exports,memory:m},extMap:f.extMap},x=G(d);return f.mem=x,f.flushPrint?.(),{exports:Te(d),memory:x?.scalar?null:x,instance:e,module:t}},Me=t=>{if(t instanceof WebAssembly.Module)return t;if(me())try{return new WebAssembly.Module(t,{builtins:["js-string"]})}catch{return new WebAssembly.Module(t)}return new WebAssembly.Module(t)},He=(t,e={})=>{let a=Fe(e),u=Me(t),{imports:i,needsWasi:f}=Se(u,e,a),m=Object.keys(i).some(x=>x!=="_setMemory"),d=new WebAssembly.Instance(u,m?i:void 0);return Ee(u,d,i,f,e,a)};export{he as FALSE_NAN,le as NULL_NAN,_e as TRUE_NAN,$ as UNDEF_NAN,v as aux,O as coerce,C as f64ToI64,D as i64ToF64,He as instantiate,G as memory,L as offset,M as ptr,Me as toModule,ee as type,Te as wrap};
1
+ var Se=new TextDecoder;function ye(t={}){let e=null,i=(r,o)=>{let g=r===1?globalThis.process?.stdout:globalThis.process?.stderr;if(g&&typeof g.write=="function")try{g.write(o);return}catch{}let A=o.replace(/\n$/,"");(r===1?console.log:console.warn)(A)},u=t.write||i;return{wasi_snapshot_preview1:{fd_read(r,o,g,A){let h=new DataView(e.buffer),_=0;for(let b=0;b<g;b++){let E=h.getUint32(o+b*8,!0),S=h.getUint32(o+b*8+4,!0),P=new Uint8Array(e.buffer,E,S);_+=t.read&&t.read(r,P)||0}return h.setUint32(A,_,!0),0},fd_write(r,o,g,A){let h=new DataView(e.buffer),_=0;for(let b=0;b<g;b++){let E=h.getUint32(o+b*8,!0),S=h.getUint32(o+b*8+4,!0);u(r,Se.decode(new Uint8Array(e.buffer,E,S))),_+=S}return h.setUint32(A,_,!0),0},clock_time_get(r,o,g){let A=new DataView(e.buffer),h=BigInt(Math.round(r===0?Date.now()*1e6:performance.now()*1e6));return A.setBigInt64(g,h,!0),0},random_get(r,o){let g=new Uint8Array(e.buffer,r,o);if(globalThis.crypto?.getRandomValues)globalThis.crypto.getRandomValues(g);else for(let A=0;A<o;A++)g[A]=Math.random()*256|0;return 0},proc_exit(){},environ_sizes_get(r,o){let g=new DataView(e.buffer);return g.setUint32(r,0,!0),g.setUint32(o,0,!0),0},environ_get(){return 0}},_setMemory(r){e=r}}}var de=t=>{if(!t.exports.__timer_tick)return;let e=t.exports.__timer_tick,i=!1,u=setInterval(()=>{let r=e();r>0&&(i=!0),i&&r<=0&&clearInterval(u)},1)};var H={PTR_ADDR:1020,START:1024},N={TAG_SHIFT:47,TAG_MASK:15,AUX_SHIFT:32,AUX_MASK:32767,OFFSET_MASK:4294967295,NAN_PREFIX:32760,NAN_PREFIX_BITS:0x7FF8000000000000n,SSO_BIT:16384,SLICE_BIT:8192,SLICE_LEN_MASK:8191},W={ATOM:0,ARRAY:1,BUFFER:2,TYPED:3,STRING:4,OBJECT:6,HASH:7,SET:8,MAP:9,CLOSURE:10,EXTERNAL:11},L={NULL:1,UNDEF:2,FALSE:4,TRUE:5},Ce=1<<W.ARRAY|1<<W.HASH|1<<W.SET|1<<W.MAP,Xe=BigInt(N.TAG_SHIFT),ze=BigInt(N.TAG_MASK),Ke=BigInt(N.AUX_SHIFT),Ge=BigInt(N.AUX_MASK),Ye=BigInt(N.OFFSET_MASK);var z=(t,e)=>(N.NAN_PREFIX<<16|(t&N.TAG_MASK)<<N.TAG_SHIFT-32|e&N.AUX_MASK)>>>0,Ae=t=>t>>>N.TAG_SHIFT-32&N.TAG_MASK,ae=t=>t&N.AUX_MASK;var Y={[L.NULL]:z(W.ATOM,L.NULL),[L.UNDEF]:z(W.ATOM,L.UNDEF),[L.FALSE]:z(W.ATOM,L.FALSE),[L.TRUE]:z(W.ATOM,L.TRUE)};var le=new TextEncoder,Ee=new TextDecoder,Me=(t,e)=>{let i=WebAssembly.Module.imports(t).some(u=>u.module==="wasi_snapshot_preview1");return{needsWasi:i,wasiImports:i?ye(e):null}},Ue=t=>new Set(WebAssembly.Module.imports(t).filter(e=>e.module==="env"&&e.kind==="function").map(e=>e.name)),Ne=(t,e)=>{let i=()=>new DataView(t.buffer),u=e?()=>e.value>>>0:()=>i().getUint32(H.PTR_ADDR,!0),r=e?_=>{e.value=_}:_=>i().setInt32(H.PTR_ADDR,_,!0),o=e?e.value>>>0:H.START;return{alloc:_=>{let b=u(),E=b-b%8,S=E+_;return S>t.buffer.byteLength&&t.grow(Math.ceil((S-t.buffer.byteLength)/65536)),r(S),E},reset:()=>r(o),initHeapPtr:()=>{if(e)return;let _=i();_.getUint32(H.PTR_ADDR,!0)<H.START&&_.setInt32(H.PTR_ADDR,H.START,!0)}}},te=(t,e)=>{let i=WebAssembly.Module.customSections(t,e);return i.length?new Uint8Array(i[0]):null},Oe=t=>{let e=new TextDecoder,i=0;return{pos:()=>i,seek:u=>{i=u},eof:()=>i>=t.length,u8:()=>t[i++],varint:()=>{let u=0,r=0;for(;;){let o=t[i++];if(u|=(o&127)<<r,!(o&128))return u;r+=7}},str:u=>{let r=e.decode(t.subarray(i,i+u));return i+=u,r},bytes:u=>{let r=t.subarray(i,i+u);return i+=u,r}}},J=0xffffffffn,Ie=new ArrayBuffer(8),se=new Uint32Array(Ie),be=new Float64Array(Ie),q=t=>(be[0]=t,BigInt(se[1])<<32n|BigInt(se[0]>>>0)),j=t=>(se[0]=Number(t&J),se[1]=Number(t>>32n&J),be[0]),ie=t=>Number(t>>32n&J),ue=t=>(ie(t)&2146959360)===2146959360,R=t=>typeof t=="bigint"?t:q(t),we=BigInt(Y[L.NULL])<<32n,K=BigInt(Y[L.UNDEF])<<32n,Re=BigInt(Y[L.FALSE])<<32n,Le=BigInt(Y[L.TRUE])<<32n,k=t=>t===null?we:t===void 0?K:t,Pe=t=>{let e=0n;for(let i=0;i<t.length;i++)e|=BigInt(t.charCodeAt(i))<<BigInt(i*7);return e|=BigInt(t.length)<<42n,D(4,Number(e>>32n)|N.SSO_BIT,Number(e&0xFFFFFFFFn))},pe=t=>typeof t=="bigint"?t:q(t),D=(t,e,i)=>BigInt(z(t,e))<<32n|BigInt(i>>>0),C=t=>Number(pe(t)&J),me=t=>Ae(ie(pe(t))),ne=t=>ae(ie(pe(t))),Fe=t=>{let e=ae(ie(t)),i=e>>>10&7,u=BigInt(e)<<32n|BigInt(Number(t&J)),r="";for(let o=0;o<i;o++)r+=String.fromCharCode(Number(u>>BigInt(o*7)&0x7fn));return r},V=t=>{if(Array.isArray(t))return t.map(V);if(typeof t=="number"){if(t===t)return t;t=q(t)}else if(typeof t!="bigint")return t;if(!ue(t))return j(t);if(me(t)===4&&ne(t)&N.SSO_BIT)return Fe(t);if(C(t)===0){if(t===we)return null;if(t===K)return;if(t===Re)return!1;if(t===Le)return!0}return j(t)},fe=(t,e)=>t.mem?t.mem.read(e):V(e),re={Int8Array:[0,1,"getInt8","setInt8"],Uint8Array:[1,1,"getUint8","setUint8"],Int16Array:[2,2,"getInt16","setInt16"],Uint16Array:[3,2,"getUint16","setUint16"],Int32Array:[4,4,"getInt32","setInt32"],Uint32Array:[5,4,"getUint32","setUint32"],Float32Array:[6,4,"getFloat32","setFloat32"],Float64Array:[7,8,"getFloat64","setFloat64"]},xe=Object.values(re),oe=new WeakSet,ce=t=>{if(t instanceof WebAssembly.Memory&&oe.has(t))return t;if(!t||typeof t=="object"&&!(t instanceof WebAssembly.Memory)&&!t.instance&&!t.exports&&!t.memory){let n=new WebAssembly.Memory({initial:t?.initial||1,...t?.maximum?{maximum:t.maximum}:{},...t?.shared?{shared:t.shared}:{}});return ce(n)}let e,i,u,r;if(t instanceof WebAssembly.Memory)e=t,i=null,u=null,r=null;else{let n=t?.instance?.exports||t?.exports||t;if(e=t?.exports?.memory||n.memory,!e)return{read:V,wrapVal:k,scalar:!0};i={...n,memory:e},u=t.extMap||null,r=t.module||null}let o=()=>new DataView(e.buffer),{alloc:g,reset:A,initHeapPtr:h}=Ne(e,i?.__heap),_=i?._alloc&&(n=>i._alloc(n)>>>0),b=_||g;h();let E=(n,s,m)=>{let p=b(16+m),c=o();return c.setBigInt64(p,0n,!0),c.setInt32(p+8,n,!0),c.setInt32(p+12,s,!0),p+16},S=e.schemas||[],P=r&&te(r,"jz:schema");if(P){let n=Oe(P),s=()=>{let c=n.u8();return c===0?null:c===1?[null,s()]:n.str(n.varint())},m=n.varint(),p=[];for(let c=0;c<m;c++){let a=n.varint(),l=[];for(let y=0;y<a;y++)l.push(s());p.push(l)}for(let c of p){let a=c.join(",");S.some(l=>l.join(",")===a)||S.push(c)}}if(oe.has(e))return e.schemas=S,_&&(b=_,e.alloc=b),e.reset=A,u&&(e._extMap=u),e;e.schemas=S,e._extMap=u,e.Array=n=>{let s=n.length,m=E(s,s,s*8),p=new BigInt64Array(s);for(let a=0;a<s;a++)p[a]=R(e.wrapVal(n[a]));let c=new BigInt64Array(e.buffer,m,s);for(let a=0;a<s;a++)c[a]=p[a];return D(1,0,m)},e.String=n=>{if(n.length<=6&&/^[\x00-\x7f]*$/.test(n)){let l=0n;for(let y=0;y<n.length;y++)l|=BigInt(n.charCodeAt(y))<<BigInt(y*7);return l|=BigInt(n.length)<<42n,D(4,Number(l>>32n)|N.SSO_BIT,Number(l&0xFFFFFFFFn))}let s=le.encode(n),m=s.length,p=b(4+m),c=o();c.setInt32(p,m,!0);let a=p+4;return s.forEach((l,y)=>c.setUint8(a+y,l)),D(4,0,a)},e.Buffer=n=>{let s=n instanceof ArrayBuffer?new Uint8Array(n):ArrayBuffer.isView(n)?new Uint8Array(n.buffer,n.byteOffset,n.byteLength):new Uint8Array(n),m=s.length,p=E(m,m,m);return new Uint8Array(e.buffer).set(s,p),D(2,0,p)},e.wrapVal=function(n){if(n==null)return k(n);if(typeof n=="number"||typeof n=="boolean")return Number(n);if(typeof n=="string")return e.String(n);if(typeof n=="bigint")return ue(n)?n:e.String(n.toString());if(Array.isArray(n))return e.Array(n);if(n instanceof ArrayBuffer)return e.Buffer(n);if(n instanceof DataView)return e.Buffer(n.buffer);let s=n?.constructor?.name;return s&&re[s]?e[s](n):typeof n=="object"||typeof n=="function"?e.External(n):K},e.External=function(n){if(n==null)return k(n);let s=e._extMap;if(!s)return K;let m=s.indexOf(n);return m===-1&&(m=s.length,s.push(n)),D(11,0,m)};let G=n=>n<=1?n+2|0:n,Q=n=>{let s=R(n);if(s>>32n&BigInt(N.SSO_BIT)){let l=Number(s&0xFFFFFFFFn)|0,y=Number(s>>32n&0x1FFFn)|0,x=Math.imul(y^2654435769,2246822507);return x=Math.imul(l^x,3266489909),x=x^x>>>15|0,G(x)>>>0}let m=Number(s&0xFFFFFFFFn),p=o(),c=p.getInt32(m-4,!0),a=-2128831035;for(let l=0;l<c;l++)a=Math.imul(a^p.getUint8(m+l),16777619)|0;return G(a)>>>0};e.Hash=function(n){let s=Object.entries(n),m=8;for(;s.length*4>=m*3;)m<<=1;let p=E(s.length,m,m*24),c=new BigInt64Array(m*3);return s.forEach(([l,y],x)=>{let T=e.String(l),B=Q(T),w=B&m-1;for(;c[w*3]!==0n;)w=w+1&m-1;c[w*3]=BigInt(x)<<32n|BigInt(B>>>0),c[w*3+1]=R(T),c[w*3+2]=R(e.wrapVal(y))}),new BigInt64Array(e.buffer,p,m*3).set(c),D(7,0,p)},e.Object=function(n){let s=Object.keys(n),m=s.join(","),p=e.schemas,c=p.findIndex(B=>B.join(",")===m);if(c===-1){let B=p.reduce((w,$,f)=>$.length===s.length&&s.every(d=>$.includes(d))?w.concat(f):w,[]);if(B.length===1)c=B[0];else{if(B.length>1)throw Error(`Ambiguous schema for {${m}} \u2014 pass keys in schema order`);return e.Hash(n)}}let a=p[c],l=a.length,y=b(l*8),x=new BigInt64Array(l);for(let B=0;B<l;B++){let w=n[a[B]];w==null?w=k(w):typeof w=="string"?w=e.String(w):Array.isArray(w)&&(w=e.Array(w)),x[B]=R(w)}let T=new BigInt64Array(e.buffer,y,l);for(let B=0;B<l;B++)T[B]=x[B];return D(6,c,y)},e.read=function(n){if(Array.isArray(n))return n.map(a=>e.read(a));if(typeof n=="number"){if(n===n)return n;n=q(n)}else if(typeof n!="bigint")return n;if(!ue(n))return j(n);let s=o(),m=me(n),p=ne(n),c=C(n);if(m===0&&c===0){if(p===1)return null;if(p===2)return;if(p===4)return!1;if(p===5)return!0}if(m===11&&e._extMap)return e._extMap[c];if(m===1){let a=c;for(;s.getInt32(a-4,!0)===-1;)a=s.getInt32(a-8,!0);let l=s.getInt32(a-8,!0),y=new Array(l);for(let x=0;x<l;x++)y[x]=e.read(s.getBigInt64(a+x*8,!0));return y}if(m===3){let a=p&7,[,l]=xe[a],y=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][a];if(p&8){let T=s.getInt32(c,!0),B=s.getInt32(c+4,!0);return new y(e.buffer,B,T/l)}let x=s.getInt32(c-8,!0);return new y(e.buffer,c,x/l)}if(m===2){let a=s.getInt32(c-8,!0),l=new ArrayBuffer(a);return new Uint8Array(l).set(new Uint8Array(e.buffer,c,a)),l}if(m===4){if(p&N.SSO_BIT)return Fe(n);let a=s.getInt32(c-4,!0);return Ee.decode(new Uint8Array(e.buffer,c,a))}if(m===6){let a=e.schemas[p];if(!a)return n;let l={};for(let y=0;y<a.length;y++)l[a[y]]=e.read(s.getBigInt64(c+y*8,!0));return l}if(m===7){let a=s.getInt32(c-8,!0),l=s.getInt32(c-4,!0),y={};for(let x=0,T=0;x<l&&T<a;x++)s.getBigInt64(c+x*24,!0)!==0n&&(y[e.read(s.getBigInt64(c+x*24+8,!0))]=e.read(s.getBigInt64(c+x*24+16,!0)),T++);return y}if(m===8){let a=s.getInt32(c-8,!0),l=s.getInt32(c-4,!0),y=new Set;for(let x=0;x<l&&y.size<a;x++)s.getBigInt64(c+x*16,!0)!==0n&&y.add(e.read(s.getBigInt64(c+x*16+8,!0)));return y}if(m===9){let a=s.getInt32(c-8,!0),l=s.getInt32(c-4,!0),y=new Map;for(let x=0;x<l&&y.size<a;x++)s.getBigInt64(c+x*24,!0)!==0n&&y.set(e.read(s.getBigInt64(c+x*24+8,!0)),e.read(s.getBigInt64(c+x*24+16,!0)));return y}return j(n)},e.write=function(n,s){let m=me(n),p=C(n),c=o();if(m===1){let a=c.getInt32(p-4,!0);if(s.length>a)throw Error(`write: ${s.length} exceeds capacity ${a}`);c.setInt32(p-8,s.length,!0);for(let l=0;l<s.length;l++)c.setBigInt64(p+l*8,R(k(s[l])),!0)}else if(m===3){let a=ne(n),l=a&7,[,y,,x]=xe[l],T=s.length*y;if(a&8){let B=c.getInt32(p,!0),w=c.getInt32(p+4,!0);if(T>B)throw Error(`write: ${T} bytes exceeds view size ${B}`);for(let $=0;$<s.length;$++)c[x](w+$*y,s[$],!0)}else{let B=c.getInt32(p-4,!0);if(T>B)throw Error(`write: ${T} bytes exceeds capacity ${B}`);c.setInt32(p-8,T,!0);for(let w=0;w<s.length;w++)c[x](p+w*y,s[w],!0)}}else if(m===6){let a=e.schemas[ne(n)];if(!a)throw Error("write: unknown schema");for(let l of Object.keys(s)){let y=a.indexOf(l);y>=0&&c.setBigInt64(p+y*8,R(k(s[l])),!0)}}else throw Error(`write: unsupported type ${m}`)},e.alloc=b,e.reset=A;let X=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];for(let[n,[s,m,,p]]of Object.entries(re))e[n]=c=>{let a=c.length,l=a*m,y=E(l,l,l);if(X[s]&&c instanceof X[s])new X[s](e.buffer,y,a).set(c);else{let x=o();for(let T=0;T<a;T++)x[p](y+T*m,c[T],!0)}return D(3,s,y)};return e.allocTyped=(n,s)=>{let m=re[n?.name];if(!m)throw Error(`allocTyped: unsupported type ${n?.name??n}`);let[p,c]=m,a=s*c,l=E(a,a,a);return{view:new n(e.buffer,l,s),box:D(3,p,l)}},oe.add(e),e},De=(t,e,i)=>{let u=new Map,r=e?t:t.module||t,o=e||t.instance||t,g=new TextDecoder,A=te(r,"jz:rest");if(A)try{for(let f of JSON.parse(g.decode(A)))u.set(typeof f=="string"?f:f.name,typeof f=="string"?0:f.fixed)}catch{}let h=new Map,_=te(r,"jz:extparam");if(_)try{for(let f of JSON.parse(g.decode(_))){let d=new Set(f.p);f.d&&(d.def=new Map(Object.entries(f.d).map(([I,F])=>[Number(I),F]))),h.set(f.name,d)}}catch{}let b=new Map,E=te(r,"jz:i64exp");if(E)try{for(let f of JSON.parse(g.decode(E)))b.set(f.name,{p:new Set(f.p||[]),r:!!f.r})}catch{}let S=ce(t),P=o.exports.__mt_drain,G=o.exports.__p_state,Q=o.exports.__p_value,X=!!(P&&G&&Q),n=[],s=(f,d,I)=>{let F=b.get(d);return f(typeof I=="bigint"?F?.p?.has(0)?I:j(I):F?.p?.has(0)?R(I):I)},m=f=>{let d=s(G,"__p_state",f);return typeof d=="bigint"?j(d):d},p=f=>{let d=s(Q,"__p_value",f);return S?S.read(d):V(d)},c=()=>{P();for(let f=n.length-1;f>=0;f--){let d=n[f],I=m(d.raw);I<1||(n.splice(f,1),I===1?d.resolve(p(d.raw)):d.reject(p(d.raw)))}},a=(f,d)=>{P();let I=m(f);return I<0?d(f):I===1?Promise.resolve(p(f)):I===2?Promise.reject(p(f)):new Promise((F,U)=>n.push({raw:f,resolve:F,reject:U}))};if(X&&i){i.afterTick=c;let f=o.exports.__p_make,d=o.exports.__p_finish;if(f&&d){let I=b.get("__p_finish");i.pmake=()=>f(),i.pfinish=(F,U,M)=>d(I?.p?.has(0)?typeof F=="bigint"?F:R(F):typeof F=="bigint"?j(F):F,I?.p?.has(1)?q(U):U,I?.p?.has(2)?M:j(M))}}let l=(f,d)=>X?a(f,d):d(f),y=o.exports.__jz_last_err_bits,x=f=>{if(!(f instanceof WebAssembly.Exception)||!y)throw f;let d=y.value,I=S?S.read(d):V(d);if(I instanceof Error)throw I;let F=new Error(typeof I=="string"?I:String(I));throw F.cause=f,F.thrown=I,F},T={},B=(f,d,I,F)=>f?.has(d)?I===void 0&&f.def?.has(d)?f.def.get(d):I:F(I),w=(f,d,I)=>(F,U)=>{let M=B(d,U,F,I);if(f&&f.p.has(U)){if(typeof M=="string"){if(M.length>6||!/^[\x00-\x7f]*$/.test(M))throw new Error("jz: string arg too long or non-ASCII for memoryless module \u2014 compile with a string operation to enable heap marshaling");return Pe(M)}return R(M)}return typeof M=="bigint"?j(M):M};if(!S||S.scalar){for(let[f,d]of Object.entries(o.exports)){if(typeof d!="function"){T[f]=d;continue}let I=h.get(f),F=b.get(f),U=d.length;T[f]=(...M)=>{for(;M.length<U;)M.push(void 0);try{let O=d(...M.map(w(F,I,k)));return typeof O=="bigint"&&!(F&&F.r)?O:V(O)}catch(O){x(O)}}}return T}let $=S.wrapVal.bind(S);for(let[f,d]of Object.entries(o.exports))if(u.has(f)&&typeof d=="function"){let I=u.get(f),F=h.get(f),U=b.get(f);T[f]=(...M)=>{let O=M.slice(0,I).map(w(U,F,$));for(;O.length<I;){let v=O.length;O.push(U&&U.p.has(v)?K:j(K))}let Z=S.Array(M.slice(I));O.push(U&&U.p.has(I)?Z:j(Z));try{let v=d.apply(null,O);return typeof v=="bigint"&&!(U&&U.r)?v:l(v,Be=>S.read(Be))}catch(v){x(v)}}}else if(typeof d=="function"){let I=h.get(f),F=b.get(f),U=d.length;T[f]=(...M)=>{for(;M.length<U;)M.push(void 0);try{let O=d.apply(null,M.map(w(F,I,$)));return typeof O=="bigint"&&!(F&&F.r)?O:l(O,Z=>S.read(Z))}catch(O){x(O)}}}else T[f]=d;return T},ge=(t,e)=>{if(e!=null&&typeof e.then=="function"&&t.pmake){let i=t.pmake(),u=r=>R(t.mem?t.mem.wrapVal(r):k(r));return e.then(r=>{t.pfinish(i,1,u(r)),t.afterTick?.()},r=>{t.pfinish(i,2,u(r instanceof Error?r.message:r)),t.afterTick?.()}),typeof i=="bigint"?i:R(i)}return R(t.mem?t.mem.wrapVal(e):k(e))},je=new Set(["fetch"]),$e=t=>{let e={extMap:[null],mem:null};return t._interp=t._interp||{},t._interp.__ext_prop=(i,u)=>{let r=e.extMap[C(i)],o=e.mem.read(u);return R(e.mem.wrapVal(typeof r[o]=="function"?r[o].bind(r):r[o]))},t._interp.__ext_has=(i,u)=>e.mem.read(u)in e.extMap[C(i)]?1:0,t._interp.__ext_set=(i,u,r)=>{let o=e.mem.read(r);return ArrayBuffer.isView(o)&&(o=o.slice()),e.extMap[C(i)][e.mem.read(u)]=o,1},t._interp.__ext_call=(i,u,r)=>{let o=e.extMap[C(i)],g=e.mem.read(u),A=e.mem.read(r);return ge(e,o[g].apply(o,A))},e},ke=(t,e,i)=>{let u=Ue(t);if(u.size){e.env||(e.env={});for(let r of u){if(e.env[r]||!je.has(r))continue;let o=globalThis[r];typeof o=="function"&&(e.env[r]=(...g)=>ge(i,o(...g.map(A=>i.mem?i.mem.read(A):V(A)))))}if(u.has("print")&&!e.env.print){let r=["","",""],o=[],g=h=>{(h===2?console.error:console.log)(r[h]),r[h]=""},A=(h,_,b)=>{let E=fe(i,h);r[_]+=String(E),b===32?r[_]+=" ":b===10&&g(_)};e.env.print=(h,_,b)=>{i.mem?A(h,_,b):o.push([h,_,b])},i.flushPrint=()=>{for(let h of o)A(...h);o.length=0}}if(u.has("now")&&!e.env.now&&(e.env.now=r=>r===1&&typeof performance<"u"?performance.now():Date.now()),u.has("rngSeed")&&!e.env.rngSeed&&(e.env.rngSeed=()=>{let r=new Uint32Array(1);return globalThis.crypto?.getRandomValues?globalThis.crypto.getRandomValues(r):r[0]=Math.random()*4294967296>>>0,r[0]|0}),u.has("parseFloat")&&!e.env.parseFloat&&(e.env.parseFloat=r=>{let o=fe(i,r);return parseFloat(o)}),u.has("parseInt")&&!e.env.parseInt&&(e.env.parseInt=(r,o)=>{let g=fe(i,r);return parseInt(g,o||void 0)}),u.has("setTimeout")||u.has("clearTimeout")){let r=new Map,o=1;u.has("setTimeout")&&!e.env.setTimeout&&(e.env.setTimeout=(g,A,h)=>{let _=o++,b=()=>{i.invoke?.(g),i.afterTick?.()};if(h){let E=setInterval(b,A);r.set(_,()=>clearInterval(E))}else{let E=setTimeout(()=>{r.delete(_),b()},A);r.set(_,()=>clearTimeout(E))}return _}),u.has("clearTimeout")&&!e.env.clearTimeout&&(e.env.clearTimeout=g=>{let A=r.get(g);return A&&(A(),r.delete(g)),0})}}},he={length:t=>t.length,charCodeAt:(t,e)=>t.charCodeAt(e)},_e=!1,ee=!1,Te=()=>{if(_e)return ee;_e=!0;try{let t=new Uint8Array([0,97,115,109,1,0,0,0,1,6,1,96,1,111,1,127,2,24,1,15,...le.encode("wasm:js-string"),6,...le.encode("length"),0,0]),e=new WebAssembly.Module(t,{builtins:["js-string"]});new WebAssembly.Instance(e,{}),ee=!0}catch{ee=!1}return ee},We=(t,e,i)=>{let{needsWasi:u,wasiImports:r}=Me(t,e),o=r||{};if(e._interp&&(o.env={...o.env,...e._interp}),!Te())for(let g of WebAssembly.Module.imports(t))g.module==="wasm:js-string"&&he[g.name]&&(o["wasm:js-string"]||(o["wasm:js-string"]={}),o["wasm:js-string"][g.name]=he[g.name]);if(e.imports)for(let[g,A]of Object.entries(e.imports)){o[g]||(o[g]={});for(let h of Object.getOwnPropertyNames(A)){let _=A[h],b=typeof _=="function"?_:_&&typeof _=="object"?_.fn:null;typeof b=="function"&&(o[g][h]=(...E)=>{let S=E.map(P=>i.mem?i.mem.read(P):V(P));return ge(i,b.call(A,...S))})}}ke(t,o,i),e.memory instanceof WebAssembly.Memory&&(oe.has(e.memory)||(e.memory=ce(e.memory)),o.env||(o.env={}),o.env.memory=e.memory);for(let g of WebAssembly.Module.imports(t))if(g.kind==="global"&&g.module==="env"){let A=globalThis[g.name];if(A!==void 0){o.env||(o.env={});let h=i.extMap.indexOf(A);h===-1&&(h=i.extMap.length,i.extMap.push(A)),o.env[g.name]=new WebAssembly.Global({value:"i64",mutable:!1},D(11,0,h))}}return{imports:o,needsWasi:u}},He=(t,e,i,u,r,o)=>{u&&i._setMemory(e.exports.memory),e.exports._initialize?.(),o.invoke=e.exports.__invoke_closure||null,de(e);let g=r.memory instanceof WebAssembly.Memory?r.memory:e.exports.memory,A={module:t,instance:e,exports:{...e.exports,memory:g},extMap:o.extMap},h=ce(A);return o.mem=h,o.flushPrint?.(),{exports:De(A,void 0,o),memory:h?.scalar?null:h,instance:e,module:t}},Ve=t=>{if(t instanceof WebAssembly.Module)return t;if(Te())try{return new WebAssembly.Module(t,{builtins:["js-string"]})}catch{return new WebAssembly.Module(t)}return new WebAssembly.Module(t)},Ze=(t,e={})=>{let i=$e(e),u=Ve(t),{imports:r,needsWasi:o}=We(u,e,i),g=Object.keys(r).some(h=>h!=="_setMemory"),A=new WebAssembly.Instance(u,g?r:void 0);return He(u,A,r,o,e,i)};export{Re as FALSE_NAN,we as NULL_NAN,Le as TRUE_NAN,K as UNDEF_NAN,ne as aux,k as coerce,q as f64ToI64,j as i64ToF64,Ze as instantiate,ce as memory,C as offset,D as ptr,Ve as toModule,me as type,De as wrap};