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.
- package/README.md +56 -9
- package/bench/README.md +121 -50
- package/bench/bench.svg +27 -27
- package/cli.js +3 -1
- package/dist/interop.js +1 -1
- package/dist/jz.js +7541 -6178
- package/index.js +165 -74
- package/interop.js +189 -17
- package/jzify/arguments.js +32 -1
- package/jzify/async.js +409 -0
- package/jzify/classes.js +136 -18
- package/jzify/generators.js +639 -0
- package/jzify/hoist-vars.js +73 -1
- package/jzify/index.js +123 -4
- package/jzify/names.js +1 -0
- package/jzify/transform.js +239 -1
- package/layout.js +48 -3
- package/module/array.js +318 -43
- package/module/atomics.js +144 -0
- package/module/collection.js +1429 -155
- package/module/core.js +431 -40
- package/module/date.js +142 -120
- package/module/fs.js +144 -0
- package/module/function.js +6 -3
- package/module/index.js +4 -1
- package/module/json.js +270 -49
- package/module/math.js +1032 -145
- package/module/number.js +532 -163
- package/module/object.js +353 -95
- package/module/regex.js +157 -7
- package/module/schema.js +100 -2
- package/module/string.js +428 -93
- package/module/typedarray.js +264 -72
- package/module/web.js +36 -0
- package/package.json +5 -5
- package/src/abi/string.js +82 -11
- package/src/ast.js +11 -5
- package/src/autoload.js +28 -1
- package/src/bridge.js +7 -2
- package/src/compile/analyze-scans.js +22 -7
- package/src/compile/analyze.js +136 -30
- package/src/compile/dyn-closure-tables.js +277 -0
- package/src/compile/emit-assign.js +281 -15
- package/src/compile/emit.js +1055 -70
- package/src/compile/index.js +277 -29
- package/src/compile/infer.js +42 -4
- package/src/compile/inplace-store.js +329 -0
- package/src/compile/loop-recurrence.js +167 -0
- package/src/compile/narrow.js +555 -18
- package/src/compile/peel-stencil.js +5 -0
- package/src/compile/plan/index.js +45 -3
- package/src/compile/plan/inline.js +8 -1
- package/src/compile/plan/literals.js +39 -0
- package/src/compile/plan/scope.js +430 -23
- package/src/compile/program-facts.js +732 -38
- package/src/ctx.js +64 -9
- package/src/helper-counters.js +7 -1
- package/src/ir.js +113 -5
- package/src/kind-traits.js +66 -3
- package/src/kind.js +84 -12
- package/src/op-policy.js +7 -4
- package/src/optimize/index.js +1179 -704
- package/src/optimize/recurse.js +2 -2
- package/src/optimize/vectorize.js +982 -67
- package/src/prepare/index.js +809 -67
- package/src/prepare/math-kernel.js +331 -0
- package/src/prepare/pre-eval.js +714 -0
- package/src/snapshot.js +194 -0
- package/src/type.js +1170 -56
- package/src/wat/assemble.js +403 -65
- package/src/wat/codegen.js +74 -14
- package/transform.js +113 -4
- 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};
|