watr 5.0.0 → 5.1.1

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/dist/watr.min.js CHANGED
@@ -1,6 +1,5 @@
1
- var Ce=Object.defineProperty;var De=(e,t)=>{for(var i in t)Ce(e,i,{get:t[i],enumerable:!0})};var H={};De(H,{f32:()=>R,f64:()=>L,i16:()=>Re,i32:()=>B,i64:()=>j,i8:()=>je,uleb:()=>o,uleb5:()=>Pe,v128:()=>oe});var h=(e,t=h.loc)=>{if(t!=null&&h.src){let i=1,r=1;for(let s=0;s<t&&s<h.src.length;s++)h.src[s]===`
2
- `?(i++,r=1):r++;e+=` at ${i}:${r}`}throw Error(e)},ye=/^_|_$|[^\da-f]_|_[^\da-f]/i,we=/^[+-]?(?:0x[\da-f]+|\d+)$/i,We=new TextEncoder,Le=new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0}),de={n:10,r:13,t:9,'"':34,"'":39,"\\":92},X=e=>{let t=[],i=1,r,s,l="",a=()=>(l&&t.push(...We.encode(l)),l="");for(;i<e.length-1;)s=e[i++],r=null,s==="\\"&&(e[i]==="u"?(i++,i++,s=String.fromCodePoint(parseInt(e.slice(i,i=e.indexOf("}",i)),16)),i++):de[e[i]]?r=de[e[i++]]:isNaN(r=parseInt(e[i]+e[i+1],16))?s+=e[i]:(i++,i++)),r!=null?(a(),t.push(r)):l+=s;return a(),t.valueOf=()=>e,t},be=e=>Le.decode(new Uint8Array(X(e)));var o=(e,t=[])=>{if(e==null)return t;if(typeof e=="string"&&(e=/[_x]/i.test(e)?BigInt(e.replaceAll("_","")):B.parse(e)),typeof e=="bigint"){for(;;){let r=Number(e&0x7Fn);if(e>>=7n,e===0n){t.push(r);break}t.push(r|128)}return t}let i=e&127;return e>>>=7,e===0?(t.push(i),t):(t.push(i|128),o(e,t))};function Pe(e){let t=[];for(let i=0;i<5;i++){let r=e&127;e>>>=7,i<4&&(r|=128),t.push(r)}return t}function B(e,t=[]){for(typeof e=="string"&&(e=B.parse(e));;){let i=Number(e&127);if(e>>=7,e===0&&!(i&64)||e===-1&&i&64){t.push(i);break}t.push(i|128)}return t}var Ie=e=>!ye.test(e)&&we.test(e=e.replaceAll("_",""))?e:h(`Bad int ${e}`),je=B,Re=B;B.parse=e=>(e=parseInt(Ie(e)),(e<-2147483648||e>4294967295)&&h("i32 constant out of range"),e);function j(e,t=[]){for(typeof e=="string"?e=j.parse(e):typeof e=="number"&&(e=BigInt(e)),typeof e=="bigint"&&e>0x7fffffffffffffffn&&(e=e-0x10000000000000000n);;){let i=Number(e&0x7Fn);if(e>>=7n,e===0n&&!(i&64)||e===-1n&&i&64){t.push(i);break}t.push(i|128)}return t}var Q=new ArrayBuffer(8),S=new Uint8Array(Q),Ve=new Int32Array(Q),Ye=new Float32Array(Q),Ge=new Float64Array(Q),ne=new BigInt64Array(Q);j.parse=e=>{e=Ie(e);let t=e[0]==="-",i=t||e[0]==="+"?e.slice(1):e,r;if(i[0]==="0"&&(i[1]==="x"||i[1]==="X")){let l=i.slice(2).replace(/^0+/,"")||"0";r=t?"8000000000000000":"ffffffffffffffff",(l.length>16||l.length===16&&l.toLowerCase()>r)&&h("i64 constant out of range")}else{let l=i.replace(/^0+/,"")||"0";r=t?"9223372036854775808":"18446744073709551615",(l.length>r.length||l.length===r.length&&l>r)&&h("i64 constant out of range")}let s=BigInt(i);return t&&(s=0n-s),ne[0]=s,ne[0]};var Ke=2147483648,Qe=2139095040,Ae=4194304;function R(e,t,i){if(typeof e=="string"&&(i=e.indexOf("nan"))>=0){if(e[i+3]===":"){let r=e.slice(i+4);t=r==="canonical"||r==="arithmetic"?Ae:B.parse(r)}else t=Ae;t=(t|Qe)>>>0,e[0]==="-"&&(t=(t|Ke)>>>0),Ve[0]=t|0}else t=typeof e=="string"?R.parse(e):e,Ye[0]=t;return[S[0],S[1],S[2],S[3]]}var Xe=0x8000000000000000n,He=0x7ff0000000000000n,ve=0x8000000000000n;function L(e,t,i){if(typeof e=="string"&&(i=e.indexOf("nan"))>=0){if(e[i+3]===":"){let r=e.slice(i+4);t=r==="canonical"||r==="arithmetic"?ve:j.parse(r)}else t=ve;t|=He,e[0]==="-"&&(t|=Xe),ne[0]=t}else t=typeof e=="string"?L.parse(e):e,Ge[0]=t;return[S[0],S[1],S[2],S[3],S[4],S[5],S[6],S[7]]}L.parse=(e,t=Number.MAX_VALUE)=>{e=e.replaceAll("_","");let i=1;if(e[0]==="-"?(i=-1,e=e.slice(1)):e[0]==="+"&&(e=e.slice(1)),e[1]==="x"){let[r,s="0"]=e.split(/p/i),[l,a=""]=r.split("."),f=a.length??0,_=0;for(let x=l.length-1;x>=2;x--){let U=parseInt(l[x],16);_+=U*16**(l.length-1-x)}let n=a?parseInt("0x"+a)/16**f:0;s=parseInt(s,10);let c=i*(_+n)*2**s;return c=Math.max(-t,Math.min(t,c)),c}return e.includes("nan")?i<0?NaN:NaN:e.includes("inf")?i*(1/0):i*parseFloat(e)};R.parse=e=>L.parse(e,34028234663852886e22);var oe=e=>{let t=BigInt(typeof e=="string"?e.replaceAll("_",""):e),i=new Uint8Array(16);for(let r=0;r<16;r++)i[r]=Number(t&0xffn),t>>=8n;return[...i]};var V=["unreachable","nop","block block","loop block","if block","else null","then null",,"throw tagidx",,"throw_ref","end end","br labelidx","br_if labelidx","br_table br_table","return","call funcidx","call_indirect call_indirect","return_call funcidx","return_call_indirect call_indirect","call_ref typeidx","return_call_ref typeidx",,,,,"drop","select select","",,,"try_table try_table","local.get localidx","local.set localidx","local.tee localidx","global.get globalidx","global.set globalidx","table.get tableidx","table.set tableidx",,"i32.load memarg","i64.load memarg","f32.load memarg","f64.load memarg","i32.load8_s memarg","i32.load8_u memarg","i32.load16_s memarg","i32.load16_u memarg","i64.load8_s memarg","i64.load8_u memarg","i64.load16_s memarg","i64.load16_u memarg","i64.load32_s memarg","i64.load32_u memarg","i32.store memarg","i64.store memarg","f32.store memarg","f64.store memarg","i32.store8 memarg","i32.store16 memarg","i64.store8 memarg","i64.store16 memarg","i64.store32 memarg","memory.size opt_memory","memory.grow opt_memory","i32.const i32","i64.const i64","f32.const f32","f64.const f64","i32.eqz","i32.eq","i32.ne","i32.lt_s","i32.lt_u","i32.gt_s","i32.gt_u","i32.le_s","i32.le_u","i32.ge_s","i32.ge_u","i64.eqz","i64.eq","i64.ne","i64.lt_s","i64.lt_u","i64.gt_s","i64.gt_u","i64.le_s","i64.le_u","i64.ge_s","i64.ge_u","f32.eq","f32.ne","f32.lt","f32.gt","f32.le","f32.ge","f64.eq","f64.ne","f64.lt","f64.gt","f64.le","f64.ge","i32.clz","i32.ctz","i32.popcnt","i32.add","i32.sub","i32.mul","i32.div_s","i32.div_u","i32.rem_s","i32.rem_u","i32.and","i32.or","i32.xor","i32.shl","i32.shr_s","i32.shr_u","i32.rotl","i32.rotr","i64.clz","i64.ctz","i64.popcnt","i64.add","i64.sub","i64.mul","i64.div_s","i64.div_u","i64.rem_s","i64.rem_u","i64.and","i64.or","i64.xor","i64.shl","i64.shr_s","i64.shr_u","i64.rotl","i64.rotr","f32.abs","f32.neg","f32.ceil","f32.floor","f32.trunc","f32.nearest","f32.sqrt","f32.add","f32.sub","f32.mul","f32.div","f32.min","f32.max","f32.copysign","f64.abs","f64.neg","f64.ceil","f64.floor","f64.trunc","f64.nearest","f64.sqrt","f64.add","f64.sub","f64.mul","f64.div","f64.min","f64.max","f64.copysign","i32.wrap_i64","i32.trunc_f32_s","i32.trunc_f32_u","i32.trunc_f64_s","i32.trunc_f64_u","i64.extend_i32_s","i64.extend_i32_u","i64.trunc_f32_s","i64.trunc_f32_u","i64.trunc_f64_s","i64.trunc_f64_u","f32.convert_i32_s","f32.convert_i32_u","f32.convert_i64_s","f32.convert_i64_u","f32.demote_f64","f64.convert_i32_s","f64.convert_i32_u","f64.convert_i64_s","f64.convert_i64_u","f64.promote_f32","i32.reinterpret_f32","i64.reinterpret_f64","f32.reinterpret_i32","f64.reinterpret_i64","i32.extend8_s","i32.extend16_s","i64.extend8_s","i64.extend16_s","i64.extend32_s",,,,,,,,,,,,"ref.null ref_null","ref.is_null","ref.func funcidx","ref.eq","ref.as_non_null","br_on_null labelidx","br_on_non_null labelidx",,,,,,,,,,"cont.new typeidx","cont.bind cont_bind","suspend tagidx","resume resume","resume_throw resume_throw","resume_throw_ref resume_throw_ref","switch switch_cont",,,,,,,,,,,,,,,,,,,,,["struct.new typeidx","struct.new_default typeidx","struct.get typeidx_field","struct.get_s typeidx_field","struct.get_u typeidx_field","struct.set typeidx_field","array.new typeidx","array.new_default typeidx","array.new_fixed typeidx_multi","array.new_data typeidx_dataidx","array.new_elem typeidx_elemidx","array.get typeidx","array.get_s typeidx","array.get_u typeidx","array.set typeidx","array.len","array.fill typeidx","array.copy typeidx_typeidx","array.init_data typeidx_dataidx","array.init_elem typeidx_elemidx","ref.test reftype","ref.test_null reftype","ref.cast reftype","ref.cast_null reftype","br_on_cast reftype2","br_on_cast_fail reftype2","any.convert_extern","extern.convert_any","ref.i31","i31.get_s","i31.get_u",,"struct.new_desc typeidx","struct.new_default_desc typeidx","ref.get_desc typeidx","ref.cast_desc_eq reftype",,"br_on_cast_desc_eq reftype2","br_on_cast_desc_eq_fail reftype2",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"string.new_utf8 memoryidx?","string.new_wtf16 memoryidx?","string.const stringidx","string.measure_utf8","string.measure_wtf8","string.measure_wtf16","string.encode_utf8 memoryidx?","string.encode_wtf16 memoryidx?","string.concat","string.eq","string.is_usv_sequence","string.new_lossy_utf8 memoryidx?","string.new_wtf8 memoryidx?","string.encode_lossy_utf8 memoryidx?","string.encode_wtf8 memoryidx?",,"string.as_wtf8","stringview_wtf8.advance","stringview_wtf8.encode_utf8 memoryidx?","stringview_wtf8.slice","stringview_wtf8.encode_lossy_utf8 memoryidx?","stringview_wtf8.encode_wtf8 memoryidx?",,,"string.as_wtf16","stringview_wtf16.length","stringview_wtf16.get_codeunit","stringview_wtf16.encode memoryidx?","stringview_wtf16.slice",,,,"string.as_iter","stringview_iter.next","stringview_iter.advance","stringview_iter.rewind","stringview_iter.slice",,,,,,,,,,,,"string.new_utf8_array","string.new_wtf16_array","string.encode_utf8_array","string.encode_wtf16_array","string.new_lossy_utf8_array","string.new_wtf8_array","string.encode_lossy_utf8_array","string.encode_wtf8_array"],["i32.trunc_sat_f32_s","i32.trunc_sat_f32_u","i32.trunc_sat_f64_s","i32.trunc_sat_f64_u","i64.trunc_sat_f32_s","i64.trunc_sat_f32_u","i64.trunc_sat_f64_s","i64.trunc_sat_f64_u","memory.init dataidx_memoryidx","data.drop dataidx","memory.copy memoryidx_memoryidx","memory.fill memoryidx?","table.init reversed","elem.drop elemidx","table.copy tableidx_tableidx","table.grow tableidx","table.size tableidx","table.fill tableidx",,"i64.add128","i64.sub128","i64.mul_wide_s","i64.mul_wide_u",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"f32.sqrt_ceil","f32.add_ceil","f32.sub_ceil","f32.mul_ceil","f32.div_ceil","f64.sqrt_ceil","f64.add_ceil","f64.sub_ceil","f64.mul_ceil","f64.div_ceil","f32.convert_ceil_i32_s","f32.convert_ceil_i32_u","f32.convert_ceil_i64_s","f32.convert_ceil_i64_u","f32.demote_ceil_f64","f64.convert_ceil_i32_s","f64.convert_ceil_i32_u","f64.convert_ceil_i64_s","f64.convert_ceil_i64_u","f64.promote_ceil_f32","f32.sqrt_floor","f32.add_floor","f32.sub_floor","f32.mul_floor","f32.div_floor","f64.sqrt_floor","f64.add_floor","f64.sub_floor","f64.mul_floor","f64.div_floor","f32.convert_floor_i32_s","f32.convert_floor_i32_u","f32.convert_floor_i64_s","f32.convert_floor_i64_u","f32.demote_floor_f64","f64.convert_floor_i32_s","f64.convert_floor_i32_u","f64.convert_floor_i64_s","f64.convert_floor_i64_u","f64.promote_floor_f32","f32.sqrt_trunc","f32.add_trunc","f32.sub_trunc","f32.mul_trunc","f32.div_trunc","f64.sqrt_trunc","f64.add_trunc","f64.sub_trunc","f64.mul_trunc","f64.div_trunc","f32.convert_trunc_i32_s","f32.convert_trunc_i32_u","f32.convert_trunc_i64_s","f32.convert_trunc_i64_u","f32.demote_trunc_f64","f64.convert_trunc_i32_s","f64.convert_trunc_i32_u","f64.convert_trunc_i64_s","f64.convert_trunc_i64_u","f64.promote_trunc_f32"],["v128.load memarg","v128.load8x8_s memarg","v128.load8x8_u memarg","v128.load16x4_s memarg","v128.load16x4_u memarg","v128.load32x2_s memarg","v128.load32x2_u memarg","v128.load8_splat memarg","v128.load16_splat memarg","v128.load32_splat memarg","v128.load64_splat memarg","v128.store memarg","v128.const v128const","i8x16.shuffle shuffle","i8x16.swizzle","i8x16.splat","i16x8.splat","i32x4.splat","i64x2.splat","f32x4.splat","f64x2.splat","i8x16.extract_lane_s laneidx","i8x16.extract_lane_u laneidx","i8x16.replace_lane laneidx","i16x8.extract_lane_s laneidx","i16x8.extract_lane_u laneidx","i16x8.replace_lane laneidx","i32x4.extract_lane laneidx","i32x4.replace_lane laneidx","i64x2.extract_lane laneidx","i64x2.replace_lane laneidx","f32x4.extract_lane laneidx","f32x4.replace_lane laneidx","f64x2.extract_lane laneidx","f64x2.replace_lane laneidx","i8x16.eq","i8x16.ne","i8x16.lt_s","i8x16.lt_u","i8x16.gt_s","i8x16.gt_u","i8x16.le_s","i8x16.le_u","i8x16.ge_s","i8x16.ge_u","i16x8.eq","i16x8.ne","i16x8.lt_s","i16x8.lt_u","i16x8.gt_s","i16x8.gt_u","i16x8.le_s","i16x8.le_u","i16x8.ge_s","i16x8.ge_u","i32x4.eq","i32x4.ne","i32x4.lt_s","i32x4.lt_u","i32x4.gt_s","i32x4.gt_u","i32x4.le_s","i32x4.le_u","i32x4.ge_s","i32x4.ge_u","f32x4.eq","f32x4.ne","f32x4.lt","f32x4.gt","f32x4.le","f32x4.ge","f64x2.eq","f64x2.ne","f64x2.lt","f64x2.gt","f64x2.le","f64x2.ge","v128.not","v128.and","v128.andnot","v128.or","v128.xor","v128.bitselect","v128.any_true","v128.load8_lane memlane","v128.load16_lane memlane","v128.load32_lane memlane","v128.load64_lane memlane","v128.store8_lane memlane","v128.store16_lane memlane","v128.store32_lane memlane","v128.store64_lane memlane","v128.load32_zero memarg","v128.load64_zero memarg","f32x4.demote_f64x2_zero","f64x2.promote_low_f32x4","i8x16.abs","i8x16.neg","i8x16.popcnt","i8x16.all_true","i8x16.bitmask","i8x16.narrow_i16x8_s","i8x16.narrow_i16x8_u","f32x4.ceil","f32x4.floor","f32x4.trunc","f32x4.nearest","i8x16.shl","i8x16.shr_s","i8x16.shr_u","i8x16.add","i8x16.add_sat_s","i8x16.add_sat_u","i8x16.sub","i8x16.sub_sat_s","i8x16.sub_sat_u","f64x2.ceil","f64x2.floor","i8x16.min_s","i8x16.min_u","i8x16.max_s","i8x16.max_u","f64x2.trunc","i8x16.avgr_u","i16x8.extadd_pairwise_i8x16_s","i16x8.extadd_pairwise_i8x16_u","i32x4.extadd_pairwise_i16x8_s","i32x4.extadd_pairwise_i16x8_u","i16x8.abs","i16x8.neg","i16x8.q15mulr_sat_s","i16x8.all_true","i16x8.bitmask","i16x8.narrow_i32x4_s","i16x8.narrow_i32x4_u","i16x8.extend_low_i8x16_s","i16x8.extend_high_i8x16_s","i16x8.extend_low_i8x16_u","i16x8.extend_high_i8x16_u","i16x8.shl","i16x8.shr_s","i16x8.shr_u","i16x8.add","i16x8.add_sat_s","i16x8.add_sat_u","i16x8.sub","i16x8.sub_sat_s","i16x8.sub_sat_u","f64x2.nearest","i16x8.mul","i16x8.min_s","i16x8.min_u","i16x8.max_s","i16x8.max_u",,"i16x8.avgr_u","i16x8.extmul_low_i8x16_s","i16x8.extmul_high_i8x16_s","i16x8.extmul_low_i8x16_u","i16x8.extmul_high_i8x16_u","i32x4.abs","i32x4.neg",,"i32x4.all_true","i32x4.bitmask",,,"i32x4.extend_low_i16x8_s","i32x4.extend_high_i16x8_s","i32x4.extend_low_i16x8_u","i32x4.extend_high_i16x8_u","i32x4.shl","i32x4.shr_s","i32x4.shr_u","i32x4.add",,,"i32x4.sub",,,,"i32x4.mul","i32x4.min_s","i32x4.min_u","i32x4.max_s","i32x4.max_u","i32x4.dot_i16x8_s",,"i32x4.extmul_low_i16x8_s","i32x4.extmul_high_i16x8_s","i32x4.extmul_low_i16x8_u","i32x4.extmul_high_i16x8_u","i64x2.abs","i64x2.neg",,"i64x2.all_true","i64x2.bitmask",,,"i64x2.extend_low_i32x4_s","i64x2.extend_high_i32x4_s","i64x2.extend_low_i32x4_u","i64x2.extend_high_i32x4_u","i64x2.shl","i64x2.shr_s","i64x2.shr_u","i64x2.add",,,"i64x2.sub",,,,"i64x2.mul","i64x2.eq","i64x2.ne","i64x2.lt_s","i64x2.gt_s","i64x2.le_s","i64x2.ge_s","i64x2.extmul_low_i32x4_s","i64x2.extmul_high_i32x4_s","i64x2.extmul_low_i32x4_u","i64x2.extmul_high_i32x4_u","f32x4.abs","f32x4.neg",,"f32x4.sqrt","f32x4.add","f32x4.sub","f32x4.mul","f32x4.div","f32x4.min","f32x4.max","f32x4.pmin","f32x4.pmax","f64x2.abs","f64x2.neg",,"f64x2.sqrt","f64x2.add","f64x2.sub","f64x2.mul","f64x2.div","f64x2.min","f64x2.max","f64x2.pmin","f64x2.pmax","i32x4.trunc_sat_f32x4_s","i32x4.trunc_sat_f32x4_u","f32x4.convert_i32x4_s","f32x4.convert_i32x4_u","i32x4.trunc_sat_f64x2_s_zero","i32x4.trunc_sat_f64x2_u_zero","f64x2.convert_low_i32x4_s","f64x2.convert_low_i32x4_u","i8x16.relaxed_swizzle","i32x4.relaxed_trunc_f32x4_s","i32x4.relaxed_trunc_f32x4_u","i32x4.relaxed_trunc_f64x2_s_zero","i32x4.relaxed_trunc_f64x2_u_zero","f32x4.relaxed_madd","f32x4.relaxed_nmadd","f64x2.relaxed_madd","f64x2.relaxed_nmadd","i8x16.relaxed_laneselect","i16x8.relaxed_laneselect","i32x4.relaxed_laneselect","i64x2.relaxed_laneselect","f32x4.relaxed_min","f32x4.relaxed_max","f64x2.relaxed_min","f64x2.relaxed_max","i16x8.relaxed_q15mulr_s","i16x8.relaxed_dot_i8x16_i7x16_s","i32x4.relaxed_dot_i8x16_i7x16_add_s"],["memory.atomic.notify memarg","memory.atomic.wait32 memarg","memory.atomic.wait64 memarg","atomic.fence opt_memory",,,,,,,,,,,,,"i32.atomic.load memarg","i64.atomic.load memarg","i32.atomic.load8_u memarg","i32.atomic.load16_u memarg","i64.atomic.load8_u memarg","i64.atomic.load16_u memarg","i64.atomic.load32_u memarg","i32.atomic.store memarg","i64.atomic.store memarg","i32.atomic.store8 memarg","i32.atomic.store16 memarg","i64.atomic.store8 memarg","i64.atomic.store16 memarg","i64.atomic.store32 memarg","i32.atomic.rmw.add memarg","i64.atomic.rmw.add memarg","i32.atomic.rmw8.add_u memarg","i32.atomic.rmw16.add_u memarg","i64.atomic.rmw8.add_u memarg","i64.atomic.rmw16.add_u memarg","i64.atomic.rmw32.add_u memarg","i32.atomic.rmw.sub memarg","i64.atomic.rmw.sub memarg","i32.atomic.rmw8.sub_u memarg","i32.atomic.rmw16.sub_u memarg","i64.atomic.rmw8.sub_u memarg","i64.atomic.rmw16.sub_u memarg","i64.atomic.rmw32.sub_u memarg","i32.atomic.rmw.and memarg","i64.atomic.rmw.and memarg","i32.atomic.rmw8.and_u memarg","i32.atomic.rmw16.and_u memarg","i64.atomic.rmw8.and_u memarg","i64.atomic.rmw16.and_u memarg","i64.atomic.rmw32.and_u memarg","i32.atomic.rmw.or memarg","i64.atomic.rmw.or memarg","i32.atomic.rmw8.or_u memarg","i32.atomic.rmw16.or_u memarg","i64.atomic.rmw8.or_u memarg","i64.atomic.rmw16.or_u memarg","i64.atomic.rmw32.or_u memarg","i32.atomic.rmw.xor memarg","i64.atomic.rmw.xor memarg","i32.atomic.rmw8.xor_u memarg","i32.atomic.rmw16.xor_u memarg","i64.atomic.rmw8.xor_u memarg","i64.atomic.rmw16.xor_u memarg","i64.atomic.rmw32.xor_u memarg","i32.atomic.rmw.xchg memarg","i64.atomic.rmw.xchg memarg","i32.atomic.rmw8.xchg_u memarg","i32.atomic.rmw16.xchg_u memarg","i64.atomic.rmw8.xchg_u memarg","i64.atomic.rmw16.xchg_u memarg","i64.atomic.rmw32.xchg_u memarg","i32.atomic.rmw.cmpxchg memarg","i64.atomic.rmw.cmpxchg memarg","i32.atomic.rmw8.cmpxchg_u memarg","i32.atomic.rmw16.cmpxchg_u memarg","i64.atomic.rmw8.cmpxchg_u memarg","i64.atomic.rmw16.cmpxchg_u memarg","i64.atomic.rmw32.cmpxchg_u memarg"]],$e=e=>{if(typeof e!="string")return null;let t=e.indexOf(".");if(t<0)return null;let i=e.slice(0,t),r=i==="i32"||i==="i64"||i==="f32"||i==="f64";return r&&/^(eqz?|ne|[lg][te])(_[su])?$/.test(e.slice(t+1))?"i32":r||i==="v128"?i:e==="memory.size"||e==="memory.grow"?"i32":null},v={custom:0,type:1,import:2,func:3,table:4,memory:5,tag:13,strings:14,global:6,export:7,start:8,elem:9,datacount:12,code:10,data:11},N={i8:120,i16:119,i32:127,i64:126,f32:125,f64:124,void:64,v128:123,exn:105,noexn:116,nofunc:115,noextern:114,none:113,func:112,extern:111,any:110,eq:109,i31:108,struct:107,array:106,data:107,cont:104,nocont:117,string:103,stringview_wtf8:102,stringview_wtf16:96,stringview_iter:97,nullfuncref:115,nullexternref:114,nullexnref:116,nullref:113,funcref:112,externref:111,exnref:105,anyref:110,eqref:109,i31ref:108,structref:107,arrayref:106,contref:104,nocontref:117,stringref:103,ref:100,refnull:99,sub:80,subfinal:79,rec:78},D={func:96,struct:95,array:94,cont:93,sub:80,subfinal:79,rec:78},ce={func:0,table:1,memory:2,global:3,tag:4};var Y=e=>{let t=0,i=[],r="",s=0,l=0,a=()=>r&&(i.push(r),r=""),f=_=>{i.loc=_;for(let n,c,x;t<e.length;)if(n=e.charCodeAt(t),s===34)r+=e[t++],n===92?r+=e[t++]:n===34&&(a(),s=0);else if(s>59)n===40&&e.charCodeAt(t+1)===59?(s++,r+=e[t++]+e[t++]):n===59&&e.charCodeAt(t+1)===41?(r+=e[t++]+e[t++],--s===59&&(a(),s=0)):r+=e[t++];else if(s<0)n===10||n===13?(r+=e[t++],a(),s=0):s===-2&&n===41?(a(),s=0):r+=e[t++];else if(n===34)r!=="$"&&a(),s=34,r+=e[t++];else if(n===40&&e.charCodeAt(t+1)===59)a(),s=60,r=e[t++]+e[t++];else if(n===59&&e.charCodeAt(t+1)===59)a(),s=e.indexOf(`
3
- `,t)<0?-2:-1,r=e[t++]+e[t++];else if(n===40&&e.charCodeAt(t+1)===64)a(),x=t,t+=2,r="@",l++,(c=i).push(i=[]),f(x),i=c;else if(n===40)a(),x=t++,l++,(c=i).push(i=[]),f(x),i=c;else{if(n===41)return a(),t++,l--;n<=32?(a(),t++):r+=e[t++]}s<0&&a(),a()};return f(0),s===34&&h("Unclosed quote",t),s>59&&h("Unclosed block comment",t),l>0&&h("Unclosed parenthesis",t),t<e.length&&h("Unexpected closing parenthesis",t),i.length>1?i:i[0]||[]};var Ne=e=>typeof e=="string"&&(e[0]===";"||e[1]===";")||Array.isArray(e)&&e[0]?.[0]==="@"&&e[0]!=="@custom"&&!e[0]?.startsWith?.("@metadata.code."),qe=(e,t)=>typeof e=="string"?e[0]==="$"&&e[1]==='"'?e.includes("\\")?"$"+be(e.slice(1)):"$"+e.slice(2,-1):e[0]==='"'?X(e):e:Array.isArray(e)?(t=e.filter(i=>!Ne(i)).map(qe),t.loc=e.loc,t.length===1&&t[0]?.[0]==="module"?t[0]:t):e;function Ee(e,t){typeof e=="string"?(h.src=e,e=Y(e)||[]):h.src="",h.loc=0,e=Ne(e)?[]:qe(e)??[];let i=0;if(e[0]==="module"?(i++,E(e[i])&&i++):typeof e[0]=="string"&&(e=[e]),e[i]==="binary"){let g=Uint8Array.from(e.slice(++i).flat());return t?g.length:g}if(e[i]==="quote")return Ee(e.slice(++i).map(g=>g.valueOf().slice(1,-1)).flat().join(""),t);e=e.flatMap((g,$)=>{if($<i||!Array.isArray(g)||g[0]!=="import")return[g];let[,p,...d]=g;if(!d.some(u=>Array.isArray(u)&&u[0]==="item"))return[g];if(Array.isArray(d.at(-1))&&d.at(-1)[0]!=="item"){let u=d.at(-1);return d.slice(0,-1).filter(w=>w[0]==="item").map(([,w])=>["import",p,w,u])}return d.filter(u=>u[0]==="item").map(([,u,w])=>["import",p,u,w])});let r=[];for(let g in v)(r[v[g]]=r[g]=[]).name=g;r.metadata={},e.slice(i).filter(g=>{if(!Array.isArray(g)){let d=h.loc,b=h.src,u;for(;(d=b.indexOf(g,d))>=0;){if(u=b.charCodeAt(d-1),d>0&&(u>47&&u<58||u>64&&u<91||u>96&&u<123||u===95||u===36)){d++;continue}if(u=b.charCodeAt(d+g.length),u>47&&u<58||u>64&&u<91||u>96&&u<123||u===95){d++;continue}break}d>=0&&(h.loc=d),h(`Unexpected token ${g}`)}let[$,...p]=g;if(h.loc=g.loc,$==="@custom")r.custom.push(p);else if($==="rec")for(let d=0;d<p.length;d++){let[,...b]=p[d];me(b,r.type);let u=[];for(;b[0]?.[0]==="descriptor"||b[0]?.[0]==="describes";)u.push(b.shift());(b=ke(b,r)).push(d?!0:[r.type.length,p.length]),u.length&&(b.desc=b.desc?[...u,...b.desc]:u),r.type.push(b)}else if($==="type"){me(p,r.type);let d=[];for(;p[0]?.[0]==="descriptor"||p[0]?.[0]==="describes";)d.push(p.shift());let b=ke(p,r);d.length&&(b.desc=b.desc?[...d,...b.desc]:d),r.type.push(b)}else if($==="start"||$==="export")r[$].push(p);else return!0}).forEach(g=>{let[$,...p]=g;h.loc=g.loc;let d;$==="import"&&([$,...p]=(d=p).pop());let b=r[$];for(b||h(`Unknown section ${$}`),me(p,b);p[0]?.[0]==="export";)r.export.push([p.shift()[1],[$,b?.length]]);if(p[0]?.[0]==="import"&&([,...d]=p.shift()),$==="table"){let u=p[0]==="i64",w=u?1:0;if(p[w+1]?.[0]==="elem"){let[z,[,...q]]=[p[w],p[w+1]];p=u?["i64",q.length,q.length,z]:[q.length,q.length,z],r.elem.push([["table",b.length],["offset",[u?"i64.const":"i32.const",u?0n:0]],z,...q])}}else if($==="memory"){let u=p[0]==="i64",w=u?1:0;if(p[w]?.[0]==="data"){let z=p.find(P=>Array.isArray(P)&&P[0]==="pagesize")?.[1]??65536,[,...q]=p.splice(w,1)[0],C=""+Math.ceil(q.reduce((P,fe)=>P+fe.length,0)/z);r.data.push([["memory",b.length],[u?"i64.const":"i32.const",u?0n:0],...q]),p=u?["i64",C,C]:[C,C]}}else if($==="func"){let[u,w,z]=se(p,r);u??=ie(w,z,r),!d&&r.code.push([[u,w,z],...T(p,r)]),p=[["type",u]]}else if($==="tag"){let[u,w]=se(p,r);u??=ie(w,[],r),p=[["type",u]]}d&&(r.import.push([...d,[$,...p]]),p=null),b.push(p)});let s=(g,$=!0)=>{let p=r[g].filter(Boolean).map(d=>xe[g](d,r)).filter(Boolean);return g===v.custom?p.flatMap(d=>[g,...I(d)]):p.length?[g,...I($?I(p):p.flat())]:[]},l=()=>{let g=[];for(let $ in r.metadata){let p=I(X(`"metadata.code.${$}"`)),d=I(r.metadata[$].map(([b,u])=>[...o(b),...I(u.map(([w,z])=>[...o(w),...I(z)]))]));g.push(0,...I([...p,...d]))}return g},a=s(v.global),f=s(v.elem);if(t){let g=r.code.filter(Boolean).map(z=>Ze(z,r)),$=g.length?le(g.length)+g.reduce((z,q)=>z+q,0):0,p=g.length?1+le($)+$:0,d=l(),b=s(v.data),u=r.strings.length?[v.strings,...I([0,...I(r.strings.map(z=>I(z)))])]:[],w=[s(v.custom),s(v.type),s(v.import),s(v.func),s(v.table),s(v.memory),s(v.tag),u,a,s(v.export),s(v.start,!1),f,s(v.datacount,!1),d,b];return 8+p+w.reduce((z,q)=>z+q.length,0)}let _=r.code.filter(Boolean).map(g=>xe[v.code](g,r)).filter(Boolean),n=_.length?[v.code,...I(I(_))]:[],c=l(),x=s(v.data),U=r.strings.length?[v.strings,...I([0,...I(r.strings.map(g=>I(g)))])]:[],A=[s(v.custom),s(v.type),s(v.import),s(v.func),s(v.table),s(v.memory),s(v.tag),U,a,s(v.export),s(v.start,!1),f,s(v.datacount,!1),n,c,x],k=Uint8Array.from([0,97,115,109,1,0,0,0,...A.flat()]),y=O();return y&&(k.metadata=y),k;function O(){let g=!1;for(let w in r.metadata)g=!0;if(!g)return;let $={},d=8+A.slice(0,A.indexOf(n)).reduce((w,z)=>w+z.length,0)+n.length-_.reduce((w,z)=>w+z.length,0),b=[];for(let w=0,z=d;w<_.length;w++)b[w]=z+(r.codeSizePrefix?.[w]??0),z+=_[w].length;let u=r.import.filter(w=>w[2][0]==="func").length;for(let w in r.metadata){let z=[];for(let[q,C]of r.metadata[w]){let P=b[q-u];for(let[fe,Te]of C)z.push([P+fe,Te])}$[w]=z.sort((q,C)=>q[0]-C[0])}return $}}function pe(e){return Ee(e)}var M=e=>e?.[0]==="$"||!isNaN(e),E=e=>e?.[0]==="$",_e=e=>e?.[0]==="a"||e?.[0]==="o";function T(e,t){let i=[];for(e=[...e];e.length;){let r=e.shift();if(typeof r=="string")if(i.push(r),r==="block"||r==="if"||r==="loop")E(e[0])&&i.push(e.shift()),i.push(J(e,t));else if(r==="else"||r==="end")E(e[0])&&e.shift();else if(r==="select")i.push(re(e)[1]);else if(r.endsWith("call_indirect")){let s=M(e[0])?e.shift():0,[l,a,f]=se(e,t);i.push(s,["type",l??ie(a,f,t)])}else r==="table.init"?i.push(M(e[1])?e.shift():0,e.shift()):r==="table.copy"||r==="memory.copy"?i.push(M(e[0])?e.shift():0,M(e[0])?e.shift():0):r.startsWith("table.")?i.push(M(e[0])?e.shift():0):r==="memory.init"?(i.push(...M(e[1])?[e.shift(),e.shift()].reverse():[e.shift(),0]),t.datacount&&(t.datacount[0]=!0)):r==="data.drop"||r==="array.new_data"||r==="array.init_data"?(r==="data.drop"&&i.push(e.shift()),t.datacount&&(t.datacount[0]=!0)):(r.startsWith("memory.")||r.endsWith("load")||r.endsWith("store"))&&M(e[0])&&i.push(e.shift());else if(Array.isArray(r)){let s=r[0];if(r.loc!=null&&(h.loc=r.loc),s?.startsWith?.("@metadata.code.")){let a=s.slice(15);i.push(["@metadata",a,r[1]]);continue}if(typeof s!="string"||!Array.isArray(V[s])){i.push(r);continue}let l=r.slice(1);if(s==="block"||s==="loop")i.push(s),E(l[0])&&i.push(l.shift()),i.push(J(l,t),...T(l,t),"end");else if(s==="if"){let a=[],f=[];l.at(-1)?.[0]==="else"&&(f=T(l.pop().slice(1),t)),l.at(-1)?.[0]==="then"&&(a=T(l.pop().slice(1),t));let _=[s];E(l[0])&&_.push(l.shift()),_.push(J(l,t)),i.push(...T(l,t),..._,...a),f.length&&i.push("else",...f),i.push("end")}else if(s==="try_table"){for(i.push(s),E(l[0])&&i.push(l.shift()),i.push(J(l,t));l[0]?.[0]==="catch"||l[0]?.[0]==="catch_ref"||l[0]?.[0]==="catch_all"||l[0]?.[0]==="catch_all_ref";)i.push(l.shift());i.push(...T(l,t),"end")}else if(s==="ref.test"||s==="ref.cast"){let a=l[0];(!Array.isArray(a)||a[1]==="null"||a[0]!=="ref")&&(s+="_null"),i.push(...T(l.slice(1),t),s,a),e.unshift(...i.splice(i.length-2))}else{let a=[];for(;l.length&&(!Array.isArray(l[0])||l[0].valueOf!==Array.prototype.valueOf||"type,param,result,ref,exact,on".includes(l[0][0]));)a.push(l.shift());i.push(...T(l,t),s,...a),e.unshift(...i.splice(i.length-1-a.length))}}else i.push(r)}return i}var ie=(e,t,i,r="$"+e+">"+t)=>(i.type[r]??=i.type.push(["func",[e,t]])-1,r),ue=(e,t)=>{let i=[];for(;e[0]?.[0]===t;){let[,...r]=e.shift(),s=E(r[0])&&r.shift();s&&(s in i?(()=>{throw Error(`Duplicate ${t} ${s}`)})():i[s]=i.length),i.push(...r)}return i},re=e=>{let t=ue(e,"param"),i=ue(e,"result");if(e[0]?.[0]==="param")throw Error("Unexpected param");return[t,i]},se=(e,t)=>{if(e[0]?.[0]!=="type")return[,...re(e)];let[,i]=e.shift(),[r,s]=re(e),l=t.type[typeof i=="string"&&isNaN(i)?t.type[i]:+i];if(!l)throw Error(`Unknown type ${i}`);if((r.length||s.length)&&l[1].join(">")!==r+">"+s)throw Error(`Type ${i} mismatch`);return[i,...l[1]]},J=(e,t)=>{let[i,r,s]=se(e,t);if(!(!r.length&&!s.length))return!r.length&&s.length===1?["result",...s]:["type",i??ie(r,s,t)]},me=(e,t)=>{let i=E(e[0])&&e.shift();return i&&(i in t?h(`Duplicate ${t.name} ${i}`):t[i]=t.length),i},ke=([e],t)=>{let i="subfinal",r=[],s,l=[];e[0]==="sub"&&(i=e.shift(),e[0]==="final"&&(i+=e.shift()),e=(r=e).pop(),r=r.filter(f=>Array.isArray(f)&&(f[0]==="descriptor"||f[0]==="describes")?(l.push(f),!1):!0)),[s,...e]=e,s==="func"?(e=re(e),t.type["$"+e.join(">")]??=t.type.length):s==="struct"?e=ue(e,"field"):s==="array"&&([e]=e);let a=[s,e,i,r];return l.length&&(a.desc=l),a},xe=[([e,...t],i)=>{let r=t;return(t[0]?.[0]==="before"||t[0]?.[0]==="after")&&(r=t.slice(1)),[...I(e),...r.flat()]},(e,t)=>{let[i,r,s,l,a]=e;if(a===!0)return;let f=(e.desc??[]).flatMap(([n,c])=>[n==="descriptor"?77:76,...o(m(c,t.type))]),_=(n,c)=>n==="func"?[D.func,...I(c[0].map(x=>F(x,t))),...I(c[1].map(x=>F(x,t)))]:n==="array"?[D.array,...Z(c,t)]:n==="struct"?[D.struct,...I(c.map(x=>Z(x,t)))]:n==="cont"?[D.cont,...o(m(c[0]??c,t.type))]:[D[n]];if(a){let[n,c]=a,x=Array.from({length:c},(U,A)=>{let k=t.type[n+A],y=k.slice(0,4);return k.desc&&(y.desc=k.desc),xe[v.type](y,t)});return[D.rec,...I(x)]}else if(s==="sub"||l?.length)return[D[s],...I(l.map(n=>m(n,t.type))),...f,..._(i,r)];return[...f,..._(i,r)]},([e,t,[i,...r]],s)=>{let l,a=ce[i];if(i==="func"){r[0]==="exact"&&r.shift()&&(a=32);let[[,_]]=r;l=o(m(_,s.type))}else if(i==="tag"){let[[,f]]=r;l=[0,...o(m(f,s.type))]}else i==="memory"?l=ee(r):i==="global"?l=Z(r[0],s):i==="table"?l=[...F(r.pop(),s),...ee(r)]:h(`Unknown kind ${i}`);return[...I(e),...I(t),a,...l]},([[,e]],t)=>o(m(e,t.type)),(e,t)=>{let i=ee(e),r=F(e.shift(),t),[s]=e;return s?[64,0,...r,...i,...G(s,t)]:[...r,...i]},(e,t)=>ee(e),([e,t],i)=>[...Z(e,i),...G(t,i)],([e,[t,i]],r)=>[...I(e),ce[t],...o(m(i,r[t]))],([e],t)=>o(m(e,t.func)),(e,t)=>{let i=0,r=0,s=0,l=0,a,f,_;e[0]==="declare"&&(e.shift(),r=1),e[0]?.[0]==="table"?([,a]=e.shift(),a=m(a,t.table)):(typeof e[0]=="string"||typeof e[0]=="number")&&(e[1]?.[0]==="offset"||Array.isArray(e[1])&&e[1][0]!=="item"&&!e[1][0]?.startsWith("ref"))&&(a=m(e.shift(),t.table)),e[0]?.[0]==="offset"||Array.isArray(e[0])&&e[0][0]!=="item"&&!e[0][0].startsWith("ref")?(f=e.shift(),f[0]==="offset"&&([,f]=f),f=G(f,t)):r||(i=1),N[e[0]]||e[0]?.[0]==="ref"?_=F(e.shift(),t):e[0]==="func"?_=[N[e.shift()]]:_=[N.func],e=e.map(c=>(c[0]==="item"&&(c=c.length===3&&c[1]==="ref.func"?c[2]:c[1]),c[0]==="ref.func"&&([,c]=c),typeof c!="string"&&(s=1),c)),_[0]!==N.funcref&&(l=1,s=1);let n=s<<2|(i||r?r:!!a||l)<<1|(i||r);return[n,...n===0?f:n===1?[0]:n===2?[...o(a||0),...f,0]:n===3?[0]:n===4?f:n===5?_:n===6?[...o(a||0),...f,..._]:_,...I(e.map(s?c=>G(typeof c=="string"?["ref.func",c]:c,t):c=>o(m(c,t.func))))]},(e,t)=>{let[i,r]=e.shift();r||([,[r]]=t.type[m(i,t.type)]),t.local=Object.create(r),t.block=[],t.local.name="local",t.block.name="block",t._codeIdx===void 0&&(t._codeIdx=0);let s=t._codeIdx++;for(;e[0]?.[0]==="local";){let[,...c]=e.shift();if(E(c[0])){let x=c.shift();x in t.local?h(`Duplicate local ${x}`):t.local[x]=t.local.length}t.local.push(...c)}t.meta={};let l=Be(e,t),a=t.local.slice(r.length).reduce((c,x)=>(x==c[c.length-1]?.[1]?c[c.length-1][0]++:c.push([1,x]),c),[]),f=I(a.map(([c,x])=>[...o(c),...F(x,t)])),_=t.import.filter(c=>c[2][0]==="func").length+s;for(let c in t.meta){for(let x of t.meta[c])x[0]+=f.length;((t.metadata??={})[c]??=[]).push([_,t.meta[c]])}t.local=t.block=t.meta=null;let n=I([...f,...l]);return(t.codeSizePrefix??=[])[s]=n.length-f.length-l.length,n},(e,t)=>{let i,r=0;return e[0]?.[0]==="memory"?([,r]=e.shift(),r=m(r,t.memory)):(typeof e[0]=="string"||typeof e[0]=="number")&&(e[1]?.[0]==="offset"||Array.isArray(e[1])&&typeof e[1][0]=="string")&&(r=m(e.shift(),t.memory)),Array.isArray(e[0])&&typeof e[0]?.[0]=="string"&&(i=e.shift(),i[0]==="offset"&&([,i]=i),i??h("Bad offset",i)),[...r?[2,...o(r),...G(i,t)]:i?[0,...G(i,t)]:[1],...I(e.flatMap(s=>it(s)??[...s]))]},(e,t)=>o(t.data.length),([[,e]],t)=>[0,...o(m(e,t.type))]],F=(e,t)=>e[0]==="ref"?e[1]=="null"?Array.isArray(e[2])&&e[2][0]==="exact"?[N.refnull,98,...o(m(e[2][1],t.type))]:N[e[2]]?[N[e[2]]]:[N.refnull,...o(m(e[e.length-1],t.type))]:Array.isArray(e[1])&&e[1][0]==="exact"?[N.ref,98,...o(m(e[1][1],t.type))]:[N.ref,...o(N[e[e.length-1]]||m(e[e.length-1],t.type))]:[N[e]??h(`Unknown type ${e}`)],Z=(e,t,i=e[0]==="mut"?1:0)=>[...F(i?e[1]:e,t),i],Ue={null:()=>[],reversed:(e,t)=>{let i=e.shift(),r=e.shift();return[...o(m(r,t.elem)),...o(m(i,t.table))]},block:(e,t)=>{t.block.push(1),E(e[0])&&(t.block[e.shift()]=t.block.length);let i=e.shift();return i?i[0]==="result"?F(i[1],t):o(m(i[1],t.type)):[N.void]},try_table:(e,t)=>{E(e[0])&&(t.block[e.shift()]=t.block.length+1);let i=e.shift(),r=i?i[0]==="result"?F(i[1],t):o(m(i[1],t.type)):[N.void],s=[],l=0;for(;e[0]?.[0]==="catch"||e[0]?.[0]==="catch_ref"||e[0]?.[0]==="catch_all"||e[0]?.[0]==="catch_all_ref";){let a=e.shift(),f=a[0]==="catch"?0:a[0]==="catch_ref"?1:a[0]==="catch_all"?2:3;f<=1?s.push(f,...o(m(a[1],t.tag)),...o(W(a[2],t.block))):s.push(f,...o(W(a[1],t.block))),l++}return t.block.push(1),[...r,...o(l),...s]},end:(e,t)=>(t.block.pop(),[]),call_indirect:(e,t)=>{let i=e.shift(),[,r]=e.shift();return[...o(m(r,t.type)),...o(m(i,t.table))]},br_table:(e,t)=>{let i=[],r=0;for(;e[0]&&(!isNaN(e[0])||E(e[0]));)i.push(...o(W(e.shift(),t.block))),r++;return[...o(r-1),...i]},select:(e,t)=>{let i=e.shift()||[];return i.length?I(i.map(r=>F(r,t))):[]},ref_null:(e,t)=>{let i=e.shift();return Array.isArray(i)&&i[0]==="exact"?[98,...o(m(i[1],t.type))]:N[i]?[N[i]]:o(m(i,t.type))},memarg:(e,t,i)=>ze(e,i,M(e[0])&&!_e(e[0])?m(e.shift(),t.memory):0),opt_memory:(e,t)=>o(m(M(e[0])?e.shift():0,t.memory)),reftype:(e,t)=>{let i=F(e.shift(),t);return i.length>1?i.slice(1):i},reftype2:(e,t)=>{let i=W(e.shift(),t.block),r=F(e.shift(),t),s=F(e.shift(),t),l=a=>a.length>1?a.slice(1):a;return[(s[0]!==N.ref)<<1|r[0]!==N.ref,...o(i),...l(r),...l(s)]},v128const:e=>{let[t,i]=e.shift().split("x"),r=+t.slice(1),s=r>>>3;if(i=+i,t[0]==="i"){let a=i===16?new Uint8Array(16):i===8?new Uint16Array(8):i===4?new Uint32Array(4):new BigUint64Array(2);for(let f=0;f<i;f++)a[f]=H[t].parse(e.shift());return[...new Uint8Array(a.buffer)]}let l=new Uint8Array(16);for(let a=0;a<i;a++)l.set(H[t](e.shift()),a*s);return[...l]},shuffle:e=>{let t=[];for(let i=0;i<16;i++)t.push(te(e.shift(),32));return typeof e[0]=="string"&&!isNaN(e[0])&&h("invalid lane length"),t},memlane:(e,t,i)=>{let r=E(e[0])||M(e[0])&&(_e(e[1])||M(e[1]))?m(e.shift(),t.memory):0;return[...ze(e,i,r),...o(te(e.shift()))]},"*":e=>o(e.shift()),labelidx:(e,t)=>o(W(e.shift(),t.block)),laneidx:e=>[te(e.shift(),255)],funcidx:(e,t)=>o(m(e.shift(),t.func)),typeidx:(e,t)=>o(m(e.shift(),t.type)),tableidx:(e,t)=>o(m(e.shift(),t.table)),memoryidx:(e,t)=>o(m(e.shift(),t.memory)),globalidx:(e,t)=>o(m(e.shift(),t.global)),localidx:(e,t)=>o(m(e.shift(),t.local)),dataidx:(e,t)=>o(m(e.shift(),t.data)),elemidx:(e,t)=>o(m(e.shift(),t.elem)),tagidx:(e,t)=>o(m(e.shift(),t.tag)),"memoryidx?":(e,t)=>o(m(M(e[0])?e.shift():0,t.memory)),stringidx:(e,t)=>{let i=e.shift(),r=i.valueOf(),s=t.strings.findIndex(l=>l.valueOf()===r);return s<0&&(s=t.strings.push(i)-1),o(s)},i32:e=>B(e.shift()),i64:e=>j(e.shift()),f32:e=>R(e.shift()),f64:e=>L(e.shift()),v128:e=>oe(e.shift()),typeidx_field:(e,t)=>{let i=m(e.shift(),t.type);return[...o(i),...o(m(e.shift(),t.type[i][1]))]},typeidx_multi:(e,t)=>[...o(m(e.shift(),t.type)),...o(e.shift())],typeidx_dataidx:(e,t)=>[...o(m(e.shift(),t.type)),...o(m(e.shift(),t.data))],typeidx_elemidx:(e,t)=>[...o(m(e.shift(),t.type)),...o(m(e.shift(),t.elem))],typeidx_typeidx:(e,t)=>[...o(m(e.shift(),t.type)),...o(m(e.shift(),t.type))],dataidx_memoryidx:(e,t)=>[...o(m(e.shift(),t.data)),...o(m(e.shift(),t.memory))],memoryidx_memoryidx:(e,t)=>[...o(m(e.shift(),t.memory)),...o(m(e.shift(),t.memory))],tableidx_tableidx:(e,t)=>[...o(m(e.shift(),t.table)),...o(m(e.shift(),t.table))],cont_bind:(e,t)=>[...o(m(e.shift(),t.type)),...o(m(e.shift(),t.type))],switch_cont:(e,t)=>[...o(m(e.shift(),t.type)),...o(m(e.shift(),t.tag))],resume:(e,t)=>{let i=o(m(e.shift(),t.type)),r=[],s=0;for(;e[0]?.[0]==="on";){let[,l,a]=e.shift();a==="switch"?r.push(1,...o(m(l,t.tag))):r.push(0,...o(m(l,t.tag)),...o(W(a,t.block))),s++}return[...i,...o(s),...r]},resume_throw:(e,t)=>{let i=o(m(e.shift(),t.type)),r=o(m(e.shift(),t.tag)),s=[],l=0;for(;e[0]?.[0]==="on";){let[,a,f]=e.shift();f==="switch"?s.push(1,...o(m(a,t.tag))):s.push(0,...o(m(a,t.tag)),...o(W(f,t.block))),l++}return[...i,...r,...o(l),...s]},resume_throw_ref:(e,t)=>{let i=o(m(e.shift(),t.type)),r=[],s=0;for(;e[0]?.[0]==="on";){let[,l,a]=e.shift();a==="switch"?r.push(1,...o(m(l,t.tag))):r.push(0,...o(m(l,t.tag)),...o(W(a,t.block))),s++}return[...i,...o(s),...r]}},K={};(function e(t,i){for(let r=0,s,l,a;r<t.length;r++)(s=t[r])&&(Array.isArray(s)?e(s,r):([l,a]=s.split(" "),V[l]=i?[i,...o(r)]:[r],a&&(K[l]=Ue[a])))})(V);var Be=(e,t)=>{let i=[],r=[];for(;e?.length;){let s=e.shift();if(s?.[0]==="@metadata"){r.push(s.slice(1));continue}Array.isArray(s)&&(s.loc!=null&&(h.loc=s.loc),h(`Unknown instruction ${s[0]}`));let[...l]=V[s]||h(`Unknown instruction ${s}`);if(K[s]&&(s==="select"&&e[0]?.length?l[0]++:K[s]===Ue.reftype&&!s.endsWith("_null")&&(e[0][1]==="null"||e[0][0]!=="ref")&&l[l.length-1]++,l.push(...K[s](e,t,s))),r.length){for(let[a,f]of r)(t.meta[a]??=[]).push([i.length,f]);r=[]}i.push(...l)}return i.push(11),i},le=e=>o(e).length,Je=(e,t)=>{let i=0,r=[];for(;e?.length;){let s=e.shift();if(s?.[0]==="@metadata"){r.push(s.slice(1));continue}Array.isArray(s)&&(s.loc!=null&&(h.loc=s.loc),h(`Unknown instruction ${s[0]}`));let a=(V[s]||h(`Unknown instruction ${s}`)).length;if(K[s]&&(a+=K[s](e,t,s).length),r.length){for(let[f,_]of r)(t.meta[f]??=[]).push([i,_]);r=[]}i+=a}return i+1},Ze=(e,t)=>{let[i,r]=e.shift();r||([,[r]]=t.type[m(i,t.type)]),t.local=Object.create(r),t.block=[],t.local.name="local",t.block.name="block",t._codeIdx===void 0&&(t._codeIdx=0);let s=t._codeIdx++;for(;e[0]?.[0]==="local";){let[,...c]=e.shift();if(E(c[0])){let x=c.shift();x in t.local?h(`Duplicate local ${x}`):t.local[x]=t.local.length}t.local.push(...c)}t.meta={};let l=Je(e,t),a=t.local.slice(r.length).reduce((c,x)=>(x==c[c.length-1]?.[1]?c[c.length-1][0]++:c.push([1,x]),c),[]),f=I(a.map(([c,x])=>[...o(c),...F(x,t)])),_=t.import.filter(c=>c[2][0]==="func").length+s;for(let c in t.meta){for(let x of t.meta[c])x[0]+=f.length;((t.metadata??={})[c]??=[]).push([_,t.meta[c]])}t.local=t.block=t.meta=null;let n=f.length+l;return(t.codeSizePrefix??=[])[s]=le(n),le(n)+n},G=(e,t)=>Be(T([e],t),t),m=(e,t,i)=>(i=E(e)?t[e]:+e,i in t?i:h(`Unknown ${t.name} ${e}`)),W=(e,t,i)=>(i=E(e)?t.length-t[e]:+e,isNaN(i)||i>t.length?h(`Bad label ${e}`):i),et=e=>{let t,i,r,s;for(;_e(e[0]);)[r,s]=e.shift().split("="),r==="offset"?i=+s:r==="align"?t=+s:h(`Unknown param ${r}=${s}`);return(i<0||i>4294967295)&&h(`Bad offset ${i}`),(t<=0||t>4294967295)&&h(`Bad align ${t}`),t&&(t=Math.log2(t))%1&&h(`Bad align ${t}`),[t,i]},ze=(e,t,i=0)=>{let[r,s]=et(e),l=(r??tt(t))|(i&&64);return i?[...o(l),...o(i),...o(s??0)]:[...o(l),...o(s??0)]},tt=e=>{let t=e.indexOf(".",3)+1,i=e.slice(1,e[0]==="v"?4:3);if(e[t]==="a"&&(t=e.indexOf(".",t)+1),e[0]==="m")return e.includes("64")?3:2;if(e[t]==="r"){let l=e.slice(t,t+6).match(/\d+/);return Math.log2(l?l[0]/8:+i/8)}let r=e[t]==="l"?t+4:t+5,s=e.slice(r).match(/(\d+)(x|_|$)/);return Math.log2(s?s[2]==="x"?8:s[1]/8:+i/8)},it=e=>{if(!Array.isArray(e))return null;let[t,...i]=e;if(t!=="i8"&&t!=="i16"&&t!=="i32"&&t!=="i64"&&t!=="f32"&&t!=="f64")return null;let r=[],s=new DataView(new ArrayBuffer(8));for(let l of i)t==="i8"?r.push(B.parse(l)&511&255):t==="i16"?(s.setInt16(0,B.parse(l),!0),r.push(...new Uint8Array(s.buffer,0,2))):t==="i32"?(s.setInt32(0,B.parse(l),!0),r.push(...new Uint8Array(s.buffer,0,4))):t==="i64"?(s.setBigInt64(0,BigInt(l),!0),r.push(...new Uint8Array(s.buffer,0,8))):t==="f32"?r.push(...R(l)):t==="f64"&&r.push(...L(l));return r},ee=e=>{let t=e[0]==="i64"&&e.shift(),i=e[e.length-1]==="shared"&&e.pop(),r=e.findIndex(n=>Array.isArray(n)&&n[0]==="pagesize"),s=-1;r>=0&&(s=Math.log2(+e.splice(r,1)[0][1]));let l=!isNaN(parseInt(e[1])),a=(s>=0?8:0)|(t?4:0)|(i?2:0)|(l?1:0),f=t?n=>{if(typeof n=="bigint")return n;let c=typeof n=="string"?n.replaceAll("_",""):String(n);return BigInt(c)}:te,_=s>=0?o(s):[];return l?[a,...o(f(e.shift())),...o(f(e.shift())),..._]:[a,...o(f(e.shift())),..._]},te=(e,t=4294967295)=>{let i=typeof e=="string"&&e[0]!=="+"?B.parse(e):typeof e=="number"?e:h(`Bad int ${e}`);return i>t?h(`Value out of range ${e}`):i},I=e=>[...o(e.length),...e.flat()];function Fe(e,t={}){typeof e=="string"&&(e=Y(e));let{indent:i=" ",newline:r=`
4
- `,comments:s=!0}=t;if(i||="",r||="",typeof e[0]=="string"&&e[0][0]!==";")return a(e);return e.filter(f=>s||!l(f)).map(f=>a(f)).join(r);function l(f){return typeof f=="string"&&f[1]===";"}function a(f,_=0){if(!Array.isArray(f))return f;let n=f[0];if(!n)return"";let c=!1;if(n==="try_table"){let A=1;for(typeof f[A]=="string"&&f[A][0]==="$"&&(n+=" "+f[A++]),Array.isArray(f[A])&&(f[A][0]==="result"||f[A][0]==="type")&&(n+=" "+a(f[A++],_));Array.isArray(f[A])&&/^catch/.test(f[A][0]);)n+=" "+a(f[A++],_).trim();for(;A<f.length;A++)n+=Array.isArray(f[A])?r+i.repeat(_+1)+a(f[A],_+1):" "+f[A];return`(${n+r+i.repeat(_)})`}let x=!!r&&f.length<4&&!f.some(A=>typeof A=="string"&&A[0]===";"&&A[1]===";"),U=i.repeat(_+1);for(let A=1;A<f.length;A++){let k=f[A]?.valueOf?.()??f[A];if(typeof k=="string"&&k[1]===";"){if(!s)continue;if(k[0]===";")if(r)n+=r+U+k.trimEnd(),c=!0;else{let y=n[n.length-1];y&&y!==" "&&y!=="("&&(n+=" "),n+=k.trimEnd()+`
5
- `}else{let y=n[n.length-1];y&&y!==" "&&y!=="("&&(n+=" "),n+=k.trimEnd()}}else if(Array.isArray(k))x&&(x=k.every(y=>!Array.isArray(y))),n+=r+U+a(k,_+1),c=!1;else if(f[0]==="data")x=!1,(r||n[n.length-1]!==")")&&(n+=r||" "),n+=U+k,c=!1;else{let y=n[n.length-1];c&&r?n+=r+U:y===`
6
- `?n+="":(y&&y!==")"&&y!==" "||r||y===")")&&(n+=" "),n+=k,c=!1}}return x?`(${n.replaceAll(r+U+"("," (")})`:`(${n+r+i.repeat(_)})`}}var Se="\uE000";function ae(e,t,i,r){if(typeof e!="function")throw Error(`watr: '${t}' is not bundled in this entry \u2014 import it from 'watr/${t}' and compose: compile(${t}(src))`);return e(i,r)}var rt=(e,t={})=>{if(!Array.isArray(e))return typeof e=="string"&&e[0]==="$"&&t.locals?.[e]?t.locals[e]:null;let[i,...r]=e,s=$e(i);return s||(i==="local.get"&&t.locals?.[r[0]]?t.locals[r[0]]:i==="call"&&t.funcs?.[r[0]]?t.funcs[r[0]].result?.[0]:null)};function he(e,t){if(e=t(e),Array.isArray(e))for(let i=0;i<e.length;i++){let r=he(e[i],t);r?._splice?(e.splice(i,1,...r),i+=r.length-1):e[i]=r}return e}function st(e,t){let i=[],r=new Map;return he(e,s=>{if(!Array.isArray(s))return s;if(s[0]==="call"&&typeof s[1]=="function"){let l=s[1];if(!r.has(l)){let f=[];for(let c=2;c<s.length;c++){let x=rt(s[c]);x&&f.push(x)}let _=i.length,n=l.name||`$fn${_}`;r.set(l,{idx:_,name:n.startsWith("$")?n:"$"+n,params:f,fn:l}),i.push(r.get(l))}let a=r.get(l);s[1]=a.name}return s}),i}function lt(e){return e.map(({name:t,params:i})=>["import",'"env"',`"${t.slice(1)}"`,["func",t,...i.map(r=>["param",r])]])}function ge(e,t,i){let{parse:r,compile:s,optimize:l,polyfill:a}=e,f={};if(!Array.isArray(t)&&i.length&&typeof i[i.length-1]=="object"&&i[i.length-1]!==null&&!i[i.length-1].byteLength&&(f=i.pop()),Array.isArray(t)&&t.raw){let _=t[0];for(let k=0;k<i.length;k++)_+=Se+t[k+1];let n=r(_),c=[],x=0;n=he(n,k=>{if(k===Se){let y=i[x++];if(typeof y=="function")return c.push(y),y;if(typeof y=="string"&&(y[0]==="("||/^\s*\(/.test(y))){let O=r(y);return Array.isArray(O)&&Array.isArray(O[0])&&(O._splice=!0),O}return y?.byteLength!==void 0?[...y]:typeof y=="bigint"?y.toString():y}return k});let U=null;if(c.length){let k=st(n,c);if(k.length){let y=lt(k);n[0]==="module"?n.splice(1,0,...y):typeof n[0]=="string"?n=[...y,n]:n.unshift(...y),U={env:{}};for(let O of k)U.env[O.name.slice(1)]=O.fn}}f.polyfill&&(n=ae(a,"polyfill",n,f.polyfill)),f.optimize&&(n=ae(l,"optimize",n,f.optimize));let A=s(n);return U&&(A._imports=U),A}if(f.polyfill||f.optimize){let _=typeof t=="string"?r(t):t;return f.polyfill&&(_=ae(a,"polyfill",_,f.polyfill)),f.optimize&&(_=ae(l,"optimize",_,f.optimize)),s(_)}return s(t)}function Me(e,t,i){let r=ge(e,t,i),s=new WebAssembly.Module(r);return new WebAssembly.Instance(s,r._imports).exports}var Oe={parse:Y,compile:pe};function zt(e,...t){return ge(Oe,e,t)}function at(e,...t){return Me(Oe,e,t)}var Nt=at;export{zt as compile,Nt as default,Y as parse,Fe as print,at as watr};
1
+ var et=Object.defineProperty;var tt=(e,t)=>{for(var i in t)et(e,i,{get:t[i],enumerable:!0})};var le={};tt(le,{f32:()=>H,f64:()=>Y,i16:()=>ft,i32:()=>F,i64:()=>R,i8:()=>lt,uleb:()=>c,uleb5:()=>st,v128:()=>de});var pe,Z,k=(e,t=pe)=>{if(t!=null&&Z){let i=1,r=1;for(let s=0;s<t&&s<Z.length;s++)Z.charCodeAt(s)===10?(i++,r=1):r++;e+=` at ${i}:${r}`}throw Error(e)},W=e=>{pe=e},he=e=>{Z=e},qe=()=>pe,Be=()=>Z,Ue=/^_|_$|[^\da-f]_|_[^\da-f]/i,Fe=/^[+-]?(?:0x[\da-f]+|\d+)$/i,it=new TextEncoder,rt=new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0}),Ne={n:10,r:13,t:9,'"':34,"'":39,"\\":92},ie=e=>{let t=[],i=1,r,s,l="",f=()=>(l&&t.push(...it.encode(l)),l="");for(;i<e.length-1;)s=e[i++],r=null,s==="\\"&&(e[i]==="u"?(i++,i++,s=String.fromCodePoint(parseInt(e.slice(i,i=e.indexOf("}",i)),16)),i++):Ne[e[i]]?r=Ne[e[i++]]:isNaN(r=parseInt(e[i]+e[i+1],16))?s+=e[i]:(i++,i++)),r!=null?(f(),t.push(r)):l+=s;return f(),t.valueOf=()=>e,t},Oe=e=>rt.decode(new Uint8Array(ie(e)));var c=(e,t=[])=>{if(e==null)return t;if(typeof e=="string"&&(e=/[_x]/i.test(e)?BigInt(e.replaceAll("_","")):F.parse(e)),typeof e=="bigint"){for(;;){let r=Number(e&0x7Fn);if(e>>=7n,e===0n){t.push(r);break}t.push(r|128)}return t}let i=e&127;return e>>>=7,e===0?(t.push(i),t):(t.push(i|128),c(e,t))};function st(e){let t=[];for(let i=0;i<5;i++){let r=e&127;e>>>=7,i<4&&(r|=128),t.push(r)}return t}var re=new Map;function F(e,t=[]){if(typeof e=="string"){let i=re.get(e);i===void 0&&(i=F.parse(e),re.size>65536&&re.clear(),re.set(e,i)),e=i}for(;;){let i=Number(e&127);if(e>>=7,e===0&&!(i&64)||e===-1&&i&64){t.push(i);break}t.push(i|128)}return t}var Ce=e=>!Ue.test(e)&&Fe.test(e=e.replaceAll("_",""))?e:k(`Bad int ${e}`),lt=F,ft=F;F.parse=e=>(e=parseInt(Ce(e)),(e<-2147483648||e>4294967295)&&k("i32 constant out of range"),e);function R(e,t=[]){for(typeof e=="string"?e=R.parse(e):typeof e=="number"&&(e=BigInt(e)),typeof e=="bigint"&&e>0x7fffffffffffffffn&&(e=e-0x10000000000000000n);;){let i=Number(e&0x7Fn);if(e>>=7n,e===0n&&!(i&64)||e===-1n&&i&64){t.push(i);break}t.push(i|128)}return t}var J=new ArrayBuffer(8),I=new Uint8Array(J),at=new Int32Array(J),nt=new Float32Array(J),ot=new Float64Array(J),ge=new BigInt64Array(J);R.parse=e=>{e=Ce(e);let t=e[0]==="-",i=t||e[0]==="+"?e.slice(1):e,r;if(i[0]==="0"&&(i[1]==="x"||i[1]==="X")){let l=i.slice(2).replace(/^0+/,"")||"0";r=t?"8000000000000000":"ffffffffffffffff",(l.length>16||l.length===16&&l.toLowerCase()>r)&&k("i64 constant out of range")}else{let l=i.replace(/^0+/,"")||"0";r=t?"9223372036854775808":"18446744073709551615",(l.length>r.length||l.length===r.length&&l>r)&&k("i64 constant out of range")}let s=BigInt(i);return t&&(s=0n-s),ge[0]=s,ge[0]};var ct=2147483648,mt=2139095040,Se=4194304;function H(e,t,i,r){if(typeof e=="string"&&(r=e.indexOf("nan"))>=0){if(e[r+3]===":"){let s=e.slice(r+4);i=s==="canonical"||s==="arithmetic"?Se:F.parse(s)}else i=Se;i=(i|mt)>>>0,e[0]==="-"&&(i=(i|ct)>>>0),at[0]=i|0}else i=typeof e=="string"?H.parse(e):e,nt[0]=i;if(t){t.push(I[0],I[1],I[2],I[3]);return}return[I[0],I[1],I[2],I[3]]}var _t=0x8000000000000000n,ut=0x7ff0000000000000n,Me=0x8000000000000n,se=new Map;function Y(e,t,i,r){if(typeof e=="string"){let s=se.get(e);if(s!==void 0){if(t){t.push(s[0],s[1],s[2],s[3],s[4],s[5],s[6],s[7]);return}return s.slice()}}if(typeof e=="string"&&(r=e.indexOf("nan"))>=0){if(e[r+3]===":"){let s=e.slice(r+4);i=s==="canonical"||s==="arithmetic"?Me:R.parse(s)}else i=Me;i|=ut,e[0]==="-"&&(i|=_t),ge[0]=i}else i=typeof e=="string"?Y.parse(e):e,ot[0]=i;if(typeof e=="string"&&(se.size>65536&&se.clear(),se.set(e,[I[0],I[1],I[2],I[3],I[4],I[5],I[6],I[7]])),t){t.push(I[0],I[1],I[2],I[3],I[4],I[5],I[6],I[7]);return}return[I[0],I[1],I[2],I[3],I[4],I[5],I[6],I[7]]}Y.parse=(e,t=Number.MAX_VALUE)=>{e=e.replaceAll("_","");let i=1;if(e[0]==="-"?(i=-1,e=e.slice(1)):e[0]==="+"&&(e=e.slice(1)),e[1]==="x"){let[r,s="0"]=e.split(/p/i),[l,f=""]=r.split("."),a=f.length??0,_=0;for(let h=l.length-1;h>=2;h--){let O=parseInt(l[h],16);_+=O*16**(l.length-1-h)}let n=f?parseInt("0x"+f)/16**a:0;s=parseInt(s,10);let o=i*(_+n)*2**s;return o=Math.max(-t,Math.min(t,o)),o}return e.includes("nan")?i<0?NaN:NaN:e.includes("inf")?i*(1/0):i*parseFloat(e)};H.parse=e=>Y.parse(e,34028234663852886e22);var de=e=>{let t=BigInt(typeof e=="string"?e.replaceAll("_",""):e),i=new Uint8Array(16);for(let r=0;r<16;r++)i[r]=Number(t&0xffn),t>>=8n;return[...i]};var De=["unreachable","nop","block block","loop block","if block","else","then",8,"throw tagidx",10,"throw_ref","end end","br labelidx","br_if labelidx","br_table br_table","return","call funcidx","call_indirect call_indirect","return_call funcidx","return_call_indirect call_indirect","call_ref typeidx","return_call_ref typeidx",26,"drop","select select",31,"try_table try_table","local.get localidx","local.set localidx","local.tee localidx","global.get globalidx","global.set globalidx","table.get tableidx","table.set tableidx",40,"i32.load memarg","i64.load memarg","f32.load memarg","f64.load memarg","i32.load8_s memarg","i32.load8_u memarg","i32.load16_s memarg","i32.load16_u memarg","i64.load8_s memarg","i64.load8_u memarg","i64.load16_s memarg","i64.load16_u memarg","i64.load32_s memarg","i64.load32_u memarg","i32.store memarg","i64.store memarg","f32.store memarg","f64.store memarg","i32.store8 memarg","i32.store16 memarg","i64.store8 memarg","i64.store16 memarg","i64.store32 memarg","memory.size opt_memory","memory.grow opt_memory","i32.const i32","i64.const i64","f32.const f32","f64.const f64","i32.eqz","i32.eq","i32.ne","i32.lt_s","i32.lt_u","i32.gt_s","i32.gt_u","i32.le_s","i32.le_u","i32.ge_s","i32.ge_u","i64.eqz","i64.eq","i64.ne","i64.lt_s","i64.lt_u","i64.gt_s","i64.gt_u","i64.le_s","i64.le_u","i64.ge_s","i64.ge_u","f32.eq","f32.ne","f32.lt","f32.gt","f32.le","f32.ge","f64.eq","f64.ne","f64.lt","f64.gt","f64.le","f64.ge","i32.clz","i32.ctz","i32.popcnt","i32.add","i32.sub","i32.mul","i32.div_s","i32.div_u","i32.rem_s","i32.rem_u","i32.and","i32.or","i32.xor","i32.shl","i32.shr_s","i32.shr_u","i32.rotl","i32.rotr","i64.clz","i64.ctz","i64.popcnt","i64.add","i64.sub","i64.mul","i64.div_s","i64.div_u","i64.rem_s","i64.rem_u","i64.and","i64.or","i64.xor","i64.shl","i64.shr_s","i64.shr_u","i64.rotl","i64.rotr","f32.abs","f32.neg","f32.ceil","f32.floor","f32.trunc","f32.nearest","f32.sqrt","f32.add","f32.sub","f32.mul","f32.div","f32.min","f32.max","f32.copysign","f64.abs","f64.neg","f64.ceil","f64.floor","f64.trunc","f64.nearest","f64.sqrt","f64.add","f64.sub","f64.mul","f64.div","f64.min","f64.max","f64.copysign","i32.wrap_i64","i32.trunc_f32_s","i32.trunc_f32_u","i32.trunc_f64_s","i32.trunc_f64_u","i64.extend_i32_s","i64.extend_i32_u","i64.trunc_f32_s","i64.trunc_f32_u","i64.trunc_f64_s","i64.trunc_f64_u","f32.convert_i32_s","f32.convert_i32_u","f32.convert_i64_s","f32.convert_i64_u","f32.demote_f64","f64.convert_i32_s","f64.convert_i32_u","f64.convert_i64_s","f64.convert_i64_u","f64.promote_f32","i32.reinterpret_f32","i64.reinterpret_f64","f32.reinterpret_i32","f64.reinterpret_i64","i32.extend8_s","i32.extend16_s","i64.extend8_s","i64.extend16_s","i64.extend32_s",208,"ref.null ref_null","ref.is_null","ref.func funcidx","ref.eq","ref.as_non_null","br_on_null labelidx","br_on_non_null labelidx",224,"cont.new typeidx","cont.bind cont_bind","suspend tagidx","resume resume","resume_throw resume_throw","resume_throw_ref resume_throw_ref","switch switch_cont",16449536,"struct.new typeidx","struct.new_default typeidx","struct.get typeidx_field","struct.get_s typeidx_field","struct.get_u typeidx_field","struct.set typeidx_field","array.new typeidx","array.new_default typeidx","array.new_fixed typeidx_multi","array.new_data typeidx_dataidx","array.new_elem typeidx_elemidx","array.get typeidx","array.get_s typeidx","array.get_u typeidx","array.set typeidx","array.len","array.fill typeidx","array.copy typeidx_typeidx","array.init_data typeidx_dataidx","array.init_elem typeidx_elemidx","ref.test reftype","ref.test_null reftype","ref.cast reftype","ref.cast_null reftype","br_on_cast reftype2","br_on_cast_fail reftype2","any.convert_extern","extern.convert_any","ref.i31","i31.get_s","i31.get_u",16449568,"struct.new_desc typeidx","struct.new_default_desc typeidx","ref.get_desc typeidx","ref.cast_desc_eq reftype",16449573,"br_on_cast_desc_eq reftype2","br_on_cast_desc_eq_fail reftype2",16449664,"string.new_utf8 memoryidx?","string.new_wtf16 memoryidx?","string.const stringidx","string.measure_utf8","string.measure_wtf8","string.measure_wtf16","string.encode_utf8 memoryidx?","string.encode_wtf16 memoryidx?","string.concat","string.eq","string.is_usv_sequence","string.new_lossy_utf8 memoryidx?","string.new_wtf8 memoryidx?","string.encode_lossy_utf8 memoryidx?","string.encode_wtf8 memoryidx?",16449680,"string.as_wtf8","stringview_wtf8.advance","stringview_wtf8.encode_utf8 memoryidx?","stringview_wtf8.slice","stringview_wtf8.encode_lossy_utf8 memoryidx?","stringview_wtf8.encode_wtf8 memoryidx?",16449688,"string.as_wtf16","stringview_wtf16.length","stringview_wtf16.get_codeunit","stringview_wtf16.encode memoryidx?","stringview_wtf16.slice",16449696,"string.as_iter","stringview_iter.next","stringview_iter.advance","stringview_iter.rewind","stringview_iter.slice",16449712,"string.new_utf8_array","string.new_wtf16_array","string.encode_utf8_array","string.encode_wtf16_array","string.new_lossy_utf8_array","string.new_wtf8_array","string.encode_lossy_utf8_array","string.encode_wtf8_array",16515072,"i32.trunc_sat_f32_s","i32.trunc_sat_f32_u","i32.trunc_sat_f64_s","i32.trunc_sat_f64_u","i64.trunc_sat_f32_s","i64.trunc_sat_f32_u","i64.trunc_sat_f64_s","i64.trunc_sat_f64_u","memory.init dataidx_memoryidx","data.drop dataidx","memory.copy memoryidx_memoryidx","memory.fill memoryidx?","table.init reversed","elem.drop elemidx","table.copy tableidx_tableidx","table.grow tableidx","table.size tableidx","table.fill tableidx",16515091,"i64.add128","i64.sub128","i64.mul_wide_s","i64.mul_wide_u",16515200,"f32.sqrt_ceil","f32.add_ceil","f32.sub_ceil","f32.mul_ceil","f32.div_ceil","f64.sqrt_ceil","f64.add_ceil","f64.sub_ceil","f64.mul_ceil","f64.div_ceil","f32.convert_ceil_i32_s","f32.convert_ceil_i32_u","f32.convert_ceil_i64_s","f32.convert_ceil_i64_u","f32.demote_ceil_f64","f64.convert_ceil_i32_s","f64.convert_ceil_i32_u","f64.convert_ceil_i64_s","f64.convert_ceil_i64_u","f64.promote_ceil_f32","f32.sqrt_floor","f32.add_floor","f32.sub_floor","f32.mul_floor","f32.div_floor","f64.sqrt_floor","f64.add_floor","f64.sub_floor","f64.mul_floor","f64.div_floor","f32.convert_floor_i32_s","f32.convert_floor_i32_u","f32.convert_floor_i64_s","f32.convert_floor_i64_u","f32.demote_floor_f64","f64.convert_floor_i32_s","f64.convert_floor_i32_u","f64.convert_floor_i64_s","f64.convert_floor_i64_u","f64.promote_floor_f32","f32.sqrt_trunc","f32.add_trunc","f32.sub_trunc","f32.mul_trunc","f32.div_trunc","f64.sqrt_trunc","f64.add_trunc","f64.sub_trunc","f64.mul_trunc","f64.div_trunc","f32.convert_trunc_i32_s","f32.convert_trunc_i32_u","f32.convert_trunc_i64_s","f32.convert_trunc_i64_u","f32.demote_trunc_f64","f64.convert_trunc_i32_s","f64.convert_trunc_i32_u","f64.convert_trunc_i64_s","f64.convert_trunc_i64_u","f64.promote_trunc_f32",16580608,"v128.load memarg","v128.load8x8_s memarg","v128.load8x8_u memarg","v128.load16x4_s memarg","v128.load16x4_u memarg","v128.load32x2_s memarg","v128.load32x2_u memarg","v128.load8_splat memarg","v128.load16_splat memarg","v128.load32_splat memarg","v128.load64_splat memarg","v128.store memarg","v128.const v128const","i8x16.shuffle shuffle","i8x16.swizzle","i8x16.splat","i16x8.splat","i32x4.splat","i64x2.splat","f32x4.splat","f64x2.splat","i8x16.extract_lane_s laneidx","i8x16.extract_lane_u laneidx","i8x16.replace_lane laneidx","i16x8.extract_lane_s laneidx","i16x8.extract_lane_u laneidx","i16x8.replace_lane laneidx","i32x4.extract_lane laneidx","i32x4.replace_lane laneidx","i64x2.extract_lane laneidx","i64x2.replace_lane laneidx","f32x4.extract_lane laneidx","f32x4.replace_lane laneidx","f64x2.extract_lane laneidx","f64x2.replace_lane laneidx","i8x16.eq","i8x16.ne","i8x16.lt_s","i8x16.lt_u","i8x16.gt_s","i8x16.gt_u","i8x16.le_s","i8x16.le_u","i8x16.ge_s","i8x16.ge_u","i16x8.eq","i16x8.ne","i16x8.lt_s","i16x8.lt_u","i16x8.gt_s","i16x8.gt_u","i16x8.le_s","i16x8.le_u","i16x8.ge_s","i16x8.ge_u","i32x4.eq","i32x4.ne","i32x4.lt_s","i32x4.lt_u","i32x4.gt_s","i32x4.gt_u","i32x4.le_s","i32x4.le_u","i32x4.ge_s","i32x4.ge_u","f32x4.eq","f32x4.ne","f32x4.lt","f32x4.gt","f32x4.le","f32x4.ge","f64x2.eq","f64x2.ne","f64x2.lt","f64x2.gt","f64x2.le","f64x2.ge","v128.not","v128.and","v128.andnot","v128.or","v128.xor","v128.bitselect","v128.any_true","v128.load8_lane memlane","v128.load16_lane memlane","v128.load32_lane memlane","v128.load64_lane memlane","v128.store8_lane memlane","v128.store16_lane memlane","v128.store32_lane memlane","v128.store64_lane memlane","v128.load32_zero memarg","v128.load64_zero memarg","f32x4.demote_f64x2_zero","f64x2.promote_low_f32x4","i8x16.abs","i8x16.neg","i8x16.popcnt","i8x16.all_true","i8x16.bitmask","i8x16.narrow_i16x8_s","i8x16.narrow_i16x8_u","f32x4.ceil","f32x4.floor","f32x4.trunc","f32x4.nearest","i8x16.shl","i8x16.shr_s","i8x16.shr_u","i8x16.add","i8x16.add_sat_s","i8x16.add_sat_u","i8x16.sub","i8x16.sub_sat_s","i8x16.sub_sat_u","f64x2.ceil","f64x2.floor","i8x16.min_s","i8x16.min_u","i8x16.max_s","i8x16.max_u","f64x2.trunc","i8x16.avgr_u","i16x8.extadd_pairwise_i8x16_s","i16x8.extadd_pairwise_i8x16_u","i32x4.extadd_pairwise_i16x8_s","i32x4.extadd_pairwise_i16x8_u","i16x8.abs","i16x8.neg","i16x8.q15mulr_sat_s","i16x8.all_true","i16x8.bitmask","i16x8.narrow_i32x4_s","i16x8.narrow_i32x4_u","i16x8.extend_low_i8x16_s","i16x8.extend_high_i8x16_s","i16x8.extend_low_i8x16_u","i16x8.extend_high_i8x16_u","i16x8.shl","i16x8.shr_s","i16x8.shr_u","i16x8.add","i16x8.add_sat_s","i16x8.add_sat_u","i16x8.sub","i16x8.sub_sat_s","i16x8.sub_sat_u","f64x2.nearest","i16x8.mul","i16x8.min_s","i16x8.min_u","i16x8.max_s","i16x8.max_u",16580763,"i16x8.avgr_u","i16x8.extmul_low_i8x16_s","i16x8.extmul_high_i8x16_s","i16x8.extmul_low_i8x16_u","i16x8.extmul_high_i8x16_u","i32x4.abs","i32x4.neg",16580771,"i32x4.all_true","i32x4.bitmask",16580775,"i32x4.extend_low_i16x8_s","i32x4.extend_high_i16x8_s","i32x4.extend_low_i16x8_u","i32x4.extend_high_i16x8_u","i32x4.shl","i32x4.shr_s","i32x4.shr_u","i32x4.add",16580785,"i32x4.sub",16580789,"i32x4.mul","i32x4.min_s","i32x4.min_u","i32x4.max_s","i32x4.max_u","i32x4.dot_i16x8_s",16580796,"i32x4.extmul_low_i16x8_s","i32x4.extmul_high_i16x8_s","i32x4.extmul_low_i16x8_u","i32x4.extmul_high_i16x8_u","i64x2.abs","i64x2.neg",16580803,"i64x2.all_true","i64x2.bitmask",16580807,"i64x2.extend_low_i32x4_s","i64x2.extend_high_i32x4_s","i64x2.extend_low_i32x4_u","i64x2.extend_high_i32x4_u","i64x2.shl","i64x2.shr_s","i64x2.shr_u","i64x2.add",16580817,"i64x2.sub",16580821,"i64x2.mul","i64x2.eq","i64x2.ne","i64x2.lt_s","i64x2.gt_s","i64x2.le_s","i64x2.ge_s","i64x2.extmul_low_i32x4_s","i64x2.extmul_high_i32x4_s","i64x2.extmul_low_i32x4_u","i64x2.extmul_high_i32x4_u","f32x4.abs","f32x4.neg",16580835,"f32x4.sqrt","f32x4.add","f32x4.sub","f32x4.mul","f32x4.div","f32x4.min","f32x4.max","f32x4.pmin","f32x4.pmax","f64x2.abs","f64x2.neg",16580847,"f64x2.sqrt","f64x2.add","f64x2.sub","f64x2.mul","f64x2.div","f64x2.min","f64x2.max","f64x2.pmin","f64x2.pmax","i32x4.trunc_sat_f32x4_s","i32x4.trunc_sat_f32x4_u","f32x4.convert_i32x4_s","f32x4.convert_i32x4_u","i32x4.trunc_sat_f64x2_s_zero","i32x4.trunc_sat_f64x2_u_zero","f64x2.convert_low_i32x4_s","f64x2.convert_low_i32x4_u","i8x16.relaxed_swizzle","i32x4.relaxed_trunc_f32x4_s","i32x4.relaxed_trunc_f32x4_u","i32x4.relaxed_trunc_f64x2_s_zero","i32x4.relaxed_trunc_f64x2_u_zero","f32x4.relaxed_madd","f32x4.relaxed_nmadd","f64x2.relaxed_madd","f64x2.relaxed_nmadd","i8x16.relaxed_laneselect","i16x8.relaxed_laneselect","i32x4.relaxed_laneselect","i64x2.relaxed_laneselect","f32x4.relaxed_min","f32x4.relaxed_max","f64x2.relaxed_min","f64x2.relaxed_max","i16x8.relaxed_q15mulr_s","i16x8.relaxed_dot_i8x16_i7x16_s","i32x4.relaxed_dot_i8x16_i7x16_add_s",16646144,"memory.atomic.notify memarg","memory.atomic.wait32 memarg","memory.atomic.wait64 memarg","atomic.fence opt_memory",16646160,"i32.atomic.load memarg","i64.atomic.load memarg","i32.atomic.load8_u memarg","i32.atomic.load16_u memarg","i64.atomic.load8_u memarg","i64.atomic.load16_u memarg","i64.atomic.load32_u memarg","i32.atomic.store memarg","i64.atomic.store memarg","i32.atomic.store8 memarg","i32.atomic.store16 memarg","i64.atomic.store8 memarg","i64.atomic.store16 memarg","i64.atomic.store32 memarg","i32.atomic.rmw.add memarg","i64.atomic.rmw.add memarg","i32.atomic.rmw8.add_u memarg","i32.atomic.rmw16.add_u memarg","i64.atomic.rmw8.add_u memarg","i64.atomic.rmw16.add_u memarg","i64.atomic.rmw32.add_u memarg","i32.atomic.rmw.sub memarg","i64.atomic.rmw.sub memarg","i32.atomic.rmw8.sub_u memarg","i32.atomic.rmw16.sub_u memarg","i64.atomic.rmw8.sub_u memarg","i64.atomic.rmw16.sub_u memarg","i64.atomic.rmw32.sub_u memarg","i32.atomic.rmw.and memarg","i64.atomic.rmw.and memarg","i32.atomic.rmw8.and_u memarg","i32.atomic.rmw16.and_u memarg","i64.atomic.rmw8.and_u memarg","i64.atomic.rmw16.and_u memarg","i64.atomic.rmw32.and_u memarg","i32.atomic.rmw.or memarg","i64.atomic.rmw.or memarg","i32.atomic.rmw8.or_u memarg","i32.atomic.rmw16.or_u memarg","i64.atomic.rmw8.or_u memarg","i64.atomic.rmw16.or_u memarg","i64.atomic.rmw32.or_u memarg","i32.atomic.rmw.xor memarg","i64.atomic.rmw.xor memarg","i32.atomic.rmw8.xor_u memarg","i32.atomic.rmw16.xor_u memarg","i64.atomic.rmw8.xor_u memarg","i64.atomic.rmw16.xor_u memarg","i64.atomic.rmw32.xor_u memarg","i32.atomic.rmw.xchg memarg","i64.atomic.rmw.xchg memarg","i32.atomic.rmw8.xchg_u memarg","i32.atomic.rmw16.xchg_u memarg","i64.atomic.rmw8.xchg_u memarg","i64.atomic.rmw16.xchg_u memarg","i64.atomic.rmw32.xchg_u memarg","i32.atomic.rmw.cmpxchg memarg","i64.atomic.rmw.cmpxchg memarg","i32.atomic.rmw8.cmpxchg_u memarg","i32.atomic.rmw16.cmpxchg_u memarg","i64.atomic.rmw8.cmpxchg_u memarg","i64.atomic.rmw16.cmpxchg_u memarg","i64.atomic.rmw32.cmpxchg_u memarg"],K={},ee={};for(let e=0,t=0;e<De.length;e++){let i=De[e];if(typeof i=="number"){t=i;continue}let r=i.indexOf(" "),s=r<0?i:i.slice(0,r);r>=0&&(ee[s]=i.slice(r+1)),K[s]=t++}var Le=e=>{if(typeof e!="string")return null;let t=e.indexOf(".");if(t<0)return null;let i=e.slice(0,t),r=i==="i32"||i==="i64"||i==="f32"||i==="f64";return r&&/^(eqz?|ne|[lg][te])(_[su])?$/.test(e.slice(t+1))?"i32":r||i==="v128"?i:e==="memory.size"||e==="memory.grow"?"i32":null},v={custom:0,type:1,import:2,func:3,table:4,memory:5,tag:13,strings:14,global:6,export:7,start:8,elem:9,datacount:12,code:10,data:11},q={i8:120,i16:119,i32:127,i64:126,f32:125,f64:124,void:64,v128:123,exn:105,noexn:116,nofunc:115,noextern:114,none:113,func:112,extern:111,any:110,eq:109,i31:108,struct:107,array:106,data:107,cont:104,nocont:117,string:103,stringview_wtf8:102,stringview_wtf16:96,stringview_iter:97,nullfuncref:115,nullexternref:114,nullexnref:116,nullref:113,funcref:112,externref:111,exnref:105,anyref:110,eqref:109,i31ref:108,structref:107,arrayref:106,contref:104,nocontref:117,stringref:103,ref:100,refnull:99,sub:80,subfinal:79,rec:78},V={func:96,struct:95,array:94,cont:93,sub:80,subfinal:79,rec:78},ye={func:0,table:1,memory:2,global:3,tag:4};var Q=e=>{let t=0,i=[],r="",s=0,l=0,f=()=>r&&(i.push(r),r=""),a=_=>{i.loc=_;for(let n,o,h;t<e.length;)if(n=e.charCodeAt(t),s===34)r+=e[t++],n===92?r+=e[t++]:n===34&&(f(),s=0);else if(s>59)n===40&&e.charCodeAt(t+1)===59?(s++,r+=e[t++]+e[t++]):n===59&&e.charCodeAt(t+1)===41?(r+=e[t++]+e[t++],--s===59&&(f(),s=0)):r+=e[t++];else if(s<0)n===10||n===13?(r+=e[t++],f(),s=0):s===-2&&n===41?(f(),s=0):r+=e[t++];else if(n===34)r!=="$"&&f(),s=34,r+=e[t++];else if(n===40&&e.charCodeAt(t+1)===59)f(),s=60,r=e[t++]+e[t++];else if(n===59&&e.charCodeAt(t+1)===59)f(),s=e.indexOf(`
2
+ `,t)<0?-2:-1,r=e[t++]+e[t++];else if(n===40&&e.charCodeAt(t+1)===64)f(),h=t,t+=2,r="@",l++,(o=i).push(i=[]),a(h),i=o;else if(n===40)f(),h=t++,l++,(o=i).push(i=[]),a(h),i=o;else{if(n===41)return f(),t++,l--;n<=32?(f(),t++):r+=e[t++]}s<0&&f(),f()};return a(0),s===34&&k("Unclosed quote",t),s>59&&k("Unclosed block comment",t),l>0&&k("Unclosed parenthesis",t),t<e.length&&k("Unexpected closing parenthesis",t),i.length>1?i:i[0]||[]};var je=e=>typeof e=="string"&&(e[0]===";"||e[0]==="("&&e[1]===";")||Array.isArray(e)&&e[0]?.[0]==="@"&&e[0]!=="@custom"&&!e[0]?.startsWith?.("@metadata.code."),We=(e,t)=>typeof e=="string"?e[0]==="$"&&e[1]==='"'?e.includes("\\")?"$"+Oe(e.slice(1)):"$"+e.slice(2,-1):e[0]==='"'?ie(e):e:Array.isArray(e)?(t=e.filter(i=>!je(i)).map(We),t.loc=e.loc,t.length===1&&t[0]?.[0]==="module"?t[0]:t):e;function Ve(e,t){typeof e=="string"?(he(e),e=Q(e)||[]):he(""),W(0),e=je(e)?[]:We(e)??[];let i=0;if(e[0]==="module"?(i++,B(e[i])&&i++):typeof e[0]=="string"&&(e=[e]),e[i]==="binary"){let u=Uint8Array.from(e.slice(++i).flat());return t?u.length:u}if(e[i]==="quote")return Ve(e.slice(++i).map(u=>u.valueOf().slice(1,-1)).flat().join(""),t);e=e.flatMap((u,y)=>{if(y<i||!Array.isArray(u)||u[0]!=="import")return[u];let[,p,...g]=u;if(!g.some(x=>Array.isArray(x)&&x[0]==="item"))return[u];if(Array.isArray(g.at(-1))&&g.at(-1)[0]!=="item"){let x=g.at(-1);return g.slice(0,-1).filter(b=>b[0]==="item").map(([,b])=>["import",p,b,x])}return g.filter(x=>x[0]==="item").map(([,x,b])=>["import",p,x,b])});let r=[];for(let u in v)(r[v[u]]=r[u]=[]).name=u;r.metadata={},e.slice(i).filter(u=>{if(!Array.isArray(u)){let g=qe(),A=Be(),x;for(;(g=A.indexOf(u,g))>=0;){if(x=A.charCodeAt(g-1),g>0&&(x>47&&x<58||x>64&&x<91||x>96&&x<123||x===95||x===36)){g++;continue}if(x=A.charCodeAt(g+u.length),x>47&&x<58||x>64&&x<91||x>96&&x<123||x===95){g++;continue}break}g>=0&&W(g),k(`Unexpected token ${u}`)}let[y,...p]=u;if(W(u.loc),y==="@custom")r.custom.push(p);else if(y==="rec")for(let g=0;g<p.length;g++){let[,...A]=p[g];be(A,r.type);let x=[];for(;A[0]?.[0]==="descriptor"||A[0]?.[0]==="describes";)x.push(A.shift());(A=Te(A,r)).push(g?!0:[r.type.length,p.length]),x.length&&(A.desc=A.desc?[...x,...A.desc]:x),r.type.push(A)}else if(y==="type"){be(p,r.type);let g=[];for(;p[0]?.[0]==="descriptor"||p[0]?.[0]==="describes";)g.push(p.shift());let A=Te(p,r);g.length&&(A.desc=A.desc?[...g,...A.desc]:g),r.type.push(A)}else if(y==="start"||y==="export")r[y].push(p);else return!0}).forEach(u=>{let[y,...p]=u;W(u.loc);let g;y==="import"&&([y,...p]=(g=p).pop());let A=r[y];for(A||k(`Unknown section ${y}`),be(p,A);p[0]?.[0]==="export";)r.export.push([p.shift()[1],[y,A?.length]]);if(p[0]?.[0]==="import"&&([,...g]=p.shift()),y==="table"){let x=p[0]==="i64",b=x?1:0;if(p[b+1]?.[0]==="elem"){let[E,[,...U]]=[p[b],p[b+1]];p=x?["i64",U.length,U.length,E]:[U.length,U.length,E],r.elem.push([["table",A.length],["offset",[x?"i64.const":"i32.const",x?0n:0]],E,...U])}}else if(y==="memory"){let x=p[0]==="i64",b=x?1:0;if(p[b]?.[0]==="data"){let E=p.find(G=>Array.isArray(G)&&G[0]==="pagesize")?.[1]??65536,[,...U]=p.splice(b,1)[0],j=""+Math.ceil(U.reduce((G,xe)=>G+xe.length,0)/E);r.data.push([["memory",A.length],[x?"i64.const":"i32.const",x?0n:0],...U]),p=x?["i64",j,j]:[j,j]}}else if(y==="func"){let[x,b,E]=_e(p,r);x??=ce(b,E,r),!g&&r.code.push([[x,b,E],...P(p,r)]),p=[["type",x]]}else if(y==="tag"){let[x,b]=_e(p,r);x??=ce(b,[],r),p=[["type",x]]}g&&(r.import.push([...g,[y,...p]]),p=null),A.push(p)});let s=(u,y=!0)=>{let p=r[u].filter(Boolean).map(g=>Ae[u](g,r)).filter(Boolean);return u===v.custom?p.flatMap(g=>[u,...z(g)]):p.length?[u,...z(y?z(p):p.flat())]:[]},l=()=>{let u=[];for(let y in r.metadata){let p=z(ie(`"metadata.code.${y}"`)),g=z(r.metadata[y].map(([A,x])=>[...c(A),...z(x.map(([b,E])=>[...c(b),...z(E)]))]));u.push(0,...z([...p,...g]))}return u},f=s(v.global),a=s(v.elem);if(t){let u=r.code.filter(Boolean).map(E=>dt(E,r)),y=u.length?N(u.length)+u.reduce((E,U)=>E+U,0):0,p=u.length?1+N(y)+y:0,g=l(),A=s(v.data),x=r.strings.length?[v.strings,...z([0,...z(r.strings.map(E=>z(E)))])]:[],b=[s(v.custom),s(v.type),s(v.import),s(v.func),s(v.table),s(v.memory),s(v.tag),x,f,s(v.export),s(v.start,!1),a,s(v.datacount,!1),g,A];return 8+p+b.reduce((E,U)=>E+U.length,0)}let _=r.code.filter(Boolean).map(u=>Ae[v.code](u,r)).filter(Boolean),n=[];if(_.length){let u=c(_.length);for(let y of _)for(let p=0;p<y.length;p++)u.push(y[p]);n=[v.code,...c(u.length)];for(let y=0;y<u.length;y++)n.push(u[y])}let o=l(),h=s(v.data),O=r.strings.length?[v.strings,...z([0,...z(r.strings.map(u=>z(u)))])]:[],w=[s(v.custom),s(v.type),s(v.import),s(v.func),s(v.table),s(v.memory),s(v.tag),O,f,s(v.export),s(v.start,!1),a,s(v.datacount,!1),n,o,h],$=8;for(let u of w)$+=u.length;let d=new Uint8Array($);d.set([0,97,115,109,1,0,0,0]);let L=8;for(let u of w)u.length&&(d.set(u,L),L+=u.length);let ze=Ze();return ze&&(d.metadata=ze),d;function Ze(){let u=!1;for(let b in r.metadata)u=!0;if(!u)return;let y={},g=8+w.slice(0,w.indexOf(n)).reduce((b,E)=>b+E.length,0)+n.length-_.reduce((b,E)=>b+E.length,0),A=[];for(let b=0,E=g;b<_.length;b++)A[b]=E+(r.codeSizePrefix?.[b]??0),E+=_[b].length;let x=r.import.filter(b=>b[2][0]==="func").length;for(let b in r.metadata){let E=[];for(let[U,j]of r.metadata[b]){let G=A[U-x];for(let[xe,Je]of j)E.push([G+xe,Je])}y[b]=E.sort((U,j)=>U[0]-j[0])}return y}}function ke(e){return Ve(e)}var S=e=>e?.[0]==="$"||!isNaN(e),B=e=>e?.[0]==="$",oe=e=>e?.[0]==="a"||e?.[0]==="o",C=null,xt=e=>{if(!C){C=Object.create(null);for(let t in K)t==="block"||t==="if"||t==="loop"?C[t]=1:t==="else"||t==="end"?C[t]=2:t==="select"?C[t]=3:t.endsWith("call_indirect")?C[t]=4:t==="table.init"?C[t]=5:t==="table.copy"||t==="memory.copy"?C[t]=6:t.startsWith("table.")?C[t]=7:t==="memory.init"?C[t]=8:t==="data.drop"||t==="array.new_data"||t==="array.init_data"?C[t]=9:(t.startsWith("memory.")||t.endsWith("load")||t.endsWith("store"))&&(C[t]=10)}return C[e]};function P(e,t,i=[],r=!1){for(r||(e=[...e]);e.length;){let s=e.shift();if(typeof s=="string"){i.push(s);let l=xt(s);if(l===void 0)continue;if(l===1)B(e[0])&&i.push(e.shift()),i.push(fe(e,t));else if(l===2)B(e[0])&&e.shift();else if(l===3)i.push(me(e)[1]);else if(l===4){let f=S(e[0])?e.shift():0,[a,_,n]=_e(e,t);i.push(f,["type",a??ce(_,n,t)])}else l===5?i.push(S(e[1])?e.shift():0,e.shift()):l===6?i.push(S(e[0])?e.shift():0,S(e[0])?e.shift():0):l===7?i.push(S(e[0])?e.shift():0):l===8?(i.push(...S(e[1])?[e.shift(),e.shift()].reverse():[e.shift(),0]),t.datacount&&(t.datacount[0]=!0)):l===9?(s==="data.drop"&&i.push(e.shift()),t.datacount&&(t.datacount[0]=!0)):S(e[0])&&i.push(e.shift())}else if(Array.isArray(s)){let l=s[0];if(s.loc!=null&&W(s.loc),l?.startsWith?.("@metadata.code.")){let a=l.slice(15);i.push(["@metadata",a,s[1]]);continue}if(typeof l!="string"||typeof K[l]!="number"){i.push(s);continue}let f=s.slice(1);if(l==="block"||l==="loop")i.push(l),B(f[0])&&i.push(f.shift()),i.push(fe(f,t)),P(f,t,i,!0),i.push("end");else if(l==="if"){let a=[],_=[];f.at(-1)?.[0]==="else"&&(_=P(f.pop().slice(1),t,[],!0)),f.at(-1)?.[0]==="then"&&(a=P(f.pop().slice(1),t,[],!0));let n=[l];B(f[0])&&n.push(f.shift()),n.push(fe(f,t)),P(f,t,i,!0);for(let o=0;o<n.length;o++)i.push(n[o]);for(let o=0;o<a.length;o++)i.push(a[o]);if(_.length){i.push("else");for(let o=0;o<_.length;o++)i.push(_[o])}i.push("end")}else if(l==="try_table"){for(i.push(l),B(f[0])&&i.push(f.shift()),i.push(fe(f,t));f[0]?.[0]==="catch"||f[0]?.[0]==="catch_ref"||f[0]?.[0]==="catch_all"||f[0]?.[0]==="catch_all_ref";)i.push(f.shift());P(f,t,i,!0),i.push("end")}else if(l==="ref.test"||l==="ref.cast"){let a=f[0];(!Array.isArray(a)||a[1]==="null"||a[0]!=="ref")&&(l+="_null"),P(f.slice(1),t,i,!0),i.push(l,a),e.unshift(...i.splice(i.length-2))}else{let a=[];for(;f.length&&(!Array.isArray(f[0])||f[0].valueOf!==Array.prototype.valueOf||"type,param,result,ref,exact,on".includes(f[0][0]));)a.push(f.shift());P(f,t,i,!0),i.push(l,...a),e.unshift(...i.splice(i.length-1-a.length))}}else i.push(s)}return i}var ce=(e,t,i,r="$"+e+">"+t)=>(i.type[r]??=i.type.push(["func",[e,t]])-1,r),we=(e,t)=>{let i=[];for(;e[0]?.[0]===t;){let[,...r]=e.shift(),s=B(r[0])&&r.shift();s&&(s in i?(()=>{throw Error(`Duplicate ${t} ${s}`)})():i[s]=i.length),i.push(...r)}return i},me=e=>{let t=we(e,"param"),i=we(e,"result");if(e[0]?.[0]==="param")throw Error("Unexpected param");return[t,i]},_e=(e,t)=>{if(e[0]?.[0]!=="type")return[,...me(e)];let[,i]=e.shift(),[r,s]=me(e),l=t.type[typeof i=="string"&&isNaN(i)?t.type[i]:+i];if(!l)throw Error(`Unknown type ${i}`);if((r.length||s.length)&&l[1].join(">")!==r+">"+s)throw Error(`Type ${i} mismatch`);return[i,...l[1]]},fe=(e,t)=>{let[i,r,s]=_e(e,t);if(!(!r.length&&!s.length))return!r.length&&s.length===1?["result",...s]:["type",i??ce(r,s,t)]},be=(e,t)=>{let i=B(e[0])&&e.shift();return i&&(i in t?k(`Duplicate ${t.name} ${i}`):t[i]=t.length),i},Te=([e],t)=>{let i="subfinal",r=[],s,l=[];e[0]==="sub"&&(i=e.shift(),e[0]==="final"&&(i+=e.shift()),e=(r=e).pop(),r=r.filter(a=>Array.isArray(a)&&(a[0]==="descriptor"||a[0]==="describes")?(l.push(a),!1):!0)),[s,...e]=e,s==="func"?(e=me(e),t.type["$"+e.join(">")]??=t.type.length):s==="struct"?e=we(e,"field"):s==="array"&&([e]=e);let f=[s,e,i,r];return l.length&&(f.desc=l),f},Ae=[([e,...t],i)=>{let r=t;return(t[0]?.[0]==="before"||t[0]?.[0]==="after")&&(r=t.slice(1)),[...z(e),...r.flat()]},(e,t)=>{let[i,r,s,l,f]=e;if(f===!0)return;let a=(e.desc??[]).flatMap(([n,o])=>[n==="descriptor"?77:76,...c(m(o,t.type))]),_=(n,o)=>n==="func"?[V.func,...z(o[0].map(h=>M(h,t))),...z(o[1].map(h=>M(h,t)))]:n==="array"?[V.array,...ae(o,t)]:n==="struct"?[V.struct,...z(o.map(h=>ae(h,t)))]:n==="cont"?[V.cont,...c(m(o[0]??o,t.type))]:[V[n]];if(f){let[n,o]=f,h=Array.from({length:o},(O,w)=>{let $=t.type[n+w],d=$.slice(0,4);return $.desc&&(d.desc=$.desc),Ae[v.type](d,t)});return[V.rec,...z(h)]}else if(s==="sub"||l?.length)return[V[s],...z(l.map(n=>m(n,t.type))),...a,..._(i,r)];return[...a,..._(i,r)]},([e,t,[i,...r]],s)=>{let l,f=ye[i];if(i==="func"){r[0]==="exact"&&r.shift()&&(f=32);let[[,_]]=r;l=c(m(_,s.type))}else if(i==="tag"){let[[,a]]=r;l=[0,...c(m(a,s.type))]}else i==="memory"?l=ne(r):i==="global"?l=ae(r[0],s):i==="table"?l=[...M(r.pop(),s),...ne(r)]:k(`Unknown kind ${i}`);return[...z(e),...z(t),f,...l]},([[,e]],t)=>c(m(e,t.type)),(e,t)=>{let i=ne(e),r=M(e.shift(),t),[s]=e;return s?[64,0,...r,...i,...X(s,t)]:[...r,...i]},(e,t)=>ne(e),([e,t],i)=>[...ae(e,i),...X(t,i)],([e,[t,i]],r)=>[...z(e),ye[t],...c(m(i,r[t]))],([e],t)=>c(m(e,t.func)),(e,t)=>{let i=0,r=0,s=0,l=0,f,a,_;e[0]==="declare"&&(e.shift(),r=1),e[0]?.[0]==="table"?([,f]=e.shift(),f=m(f,t.table)):(typeof e[0]=="string"||typeof e[0]=="number")&&(e[1]?.[0]==="offset"||Array.isArray(e[1])&&e[1][0]!=="item"&&!e[1][0]?.startsWith("ref"))&&(f=m(e.shift(),t.table)),e[0]?.[0]==="offset"||Array.isArray(e[0])&&e[0][0]!=="item"&&!e[0][0].startsWith("ref")?(a=e.shift(),a[0]==="offset"&&([,a]=a),a=X(a,t)):r||(i=1),q[e[0]]||e[0]?.[0]==="ref"?_=M(e.shift(),t):e[0]==="func"?_=[q[e.shift()]]:_=[q.func],e=e.map(o=>(o[0]==="item"&&(o=o.length===3&&o[1]==="ref.func"?o[2]:o[1]),o[0]==="ref.func"&&([,o]=o),typeof o!="string"&&(s=1),o)),_[0]!==q.funcref&&(l=1,s=1);let n=s<<2|(i||r?r:!!f||l)<<1|(i||r);return[n,...n===0?a:n===1?[0]:n===2?[...c(f||0),...a,0]:n===3?[0]:n===4?a:n===5?_:n===6?[...c(f||0),...a,..._]:_,...z(e.map(s?o=>X(typeof o=="string"?["ref.func",o]:o,t):o=>c(m(o,t.func))))]},(e,t)=>{let[i,r]=e.shift();r||([,[r]]=t.type[m(i,t.type)]),t.local=Object.create(r),t.block=[],t.local.name="local",t.block.name="block",t._codeIdx===void 0&&(t._codeIdx=0);let s=t._codeIdx++;for(;e[0]?.[0]==="local";){let[,...o]=e.shift();if(B(o[0])){let h=o.shift();h in t.local?k(`Duplicate local ${h}`):t.local[h]=t.local.length}t.local.push(...o)}t.meta={};let l=Re(e,t),f=t.local.slice(r.length).reduce((o,h)=>(h==o[o.length-1]?.[1]?o[o.length-1][0]++:o.push([1,h]),o),[]),a=z(f.map(([o,h])=>[...c(o),...M(h,t)])),_=t.import.filter(o=>o[2][0]==="func").length+s;for(let o in t.meta){for(let h of t.meta[o])h[0]+=a.length;((t.metadata??={})[o]??=[]).push([_,t.meta[o]])}t.local=t.block=t.meta=null;let n=c(a.length+l.length);(t.codeSizePrefix??=[])[s]=n.length;for(let o=0;o<a.length;o++)n.push(a[o]);for(let o=0;o<l.length;o++)n.push(l[o]);return n},(e,t)=>{let i,r=0;return e[0]?.[0]==="memory"?([,r]=e.shift(),r=m(r,t.memory)):(typeof e[0]=="string"||typeof e[0]=="number")&&(e[1]?.[0]==="offset"||Array.isArray(e[1])&&typeof e[1][0]=="string")&&(r=m(e.shift(),t.memory)),Array.isArray(e[0])&&typeof e[0]?.[0]=="string"&&(i=e.shift(),i[0]==="offset"&&([,i]=i),i??k("Bad offset",i)),[...r?[2,...c(r),...X(i,t)]:i?[0,...X(i,t)]:[1],...z(e.flatMap(s=>yt(s)??[...s]))]},(e,t)=>c(t.data.length),([[,e]],t)=>[0,...c(m(e,t.type))]],M=(e,t)=>e[0]==="ref"?e[1]=="null"?Array.isArray(e[2])&&e[2][0]==="exact"?[q.refnull,98,...c(m(e[2][1],t.type))]:q[e[2]]?[q[e[2]]]:[q.refnull,...c(m(e[e.length-1],t.type))]:Array.isArray(e[1])&&e[1][0]==="exact"?[q.ref,98,...c(m(e[1][1],t.type))]:[q.ref,...c(q[e[e.length-1]]||m(e[e.length-1],t.type))]:[q[e]??k(`Unknown type ${e}`)],ae=(e,t,i=e[0]==="mut"?1:0)=>[...M(i?e[1]:e,t),i],D=(e,t)=>{if(t){c(e,t);return}return c(e)},ve={reversed:(e,t)=>{let i=e.shift(),r=e.shift();return[...c(m(r,t.elem)),...c(m(i,t.table))]},block:(e,t,i,r)=>{t.block.push(1),B(e[0])&&(t.block[e.shift()]=t.block.length);let s=e.shift(),l=s?s[0]==="result"?M(s[1],t):c(m(s[1],t.type)):[q.void];if(r){for(let f=0;f<l.length;f++)r.push(l[f]);return}return l},try_table:(e,t)=>{B(e[0])&&(t.block[e.shift()]=t.block.length+1);let i=e.shift(),r=i?i[0]==="result"?M(i[1],t):c(m(i[1],t.type)):[q.void],s=[],l=0;for(;e[0]?.[0]==="catch"||e[0]?.[0]==="catch_ref"||e[0]?.[0]==="catch_all"||e[0]?.[0]==="catch_all_ref";){let f=e.shift(),a=f[0]==="catch"?0:f[0]==="catch_ref"?1:f[0]==="catch_all"?2:3;a<=1?s.push(a,...c(m(f[1],t.tag)),...c(T(f[2],t.block))):s.push(a,...c(T(f[1],t.block))),l++}return t.block.push(1),[...r,...c(l),...s]},end:(e,t)=>(t.block.pop(),[]),call_indirect:(e,t,i,r)=>{let s=e.shift(),[,l]=e.shift();if(r){c(m(l,t.type),r),c(m(s,t.table),r);return}return[...c(m(l,t.type)),...c(m(s,t.table))]},br_table:(e,t)=>{let i=[],r=0;for(;e[0]&&(!isNaN(e[0])||B(e[0]));)i.push(...c(T(e.shift(),t.block))),r++;return[...c(r-1),...i]},select:(e,t)=>{let i=e.shift()||[];return i.length?z(i.map(r=>M(r,t))):[]},ref_null:(e,t)=>{let i=e.shift();return Array.isArray(i)&&i[0]==="exact"?[98,...c(m(i[1],t.type))]:q[i]?[q[i]]:c(m(i,t.type))},memarg:(e,t,i,r)=>Pe(e,i,S(e[0])&&!oe(e[0])?m(e.shift(),t.memory):0,r),opt_memory:(e,t,i,r)=>D(m(S(e[0])?e.shift():0,t.memory),r),reftype:(e,t)=>{let i=M(e.shift(),t);return i.length>1?i.slice(1):i},reftype2:(e,t)=>{let i=T(e.shift(),t.block),r=M(e.shift(),t),s=M(e.shift(),t),l=f=>f.length>1?f.slice(1):f;return[(s[0]!==q.ref)<<1|r[0]!==q.ref,...c(i),...l(r),...l(s)]},v128const:e=>{let[t,i]=e.shift().split("x"),r=+t.slice(1),s=r>>>3;if(i=+i,t[0]==="i"){let f=i===16?new Uint8Array(16):i===8?new Uint16Array(8):i===4?new Uint32Array(4):new BigUint64Array(2);for(let a=0;a<i;a++)f[a]=le[t].parse(e.shift());return[...new Uint8Array(f.buffer)]}let l=new Uint8Array(16);for(let f=0;f<i;f++)l.set(le[t](e.shift()),f*s);return[...l]},shuffle:e=>{let t=[];for(let i=0;i<16;i++)t.push(te(e.shift(),32));return typeof e[0]=="string"&&!isNaN(e[0])&&k("invalid lane length"),t},memlane:(e,t,i)=>{let r=B(e[0])||S(e[0])&&(oe(e[1])||S(e[1]))?m(e.shift(),t.memory):0;return[...Pe(e,i,r),...c(te(e.shift()))]},labelidx:(e,t,i,r)=>D(T(e.shift(),t.block),r),laneidx:(e,t,i,r)=>{let s=te(e.shift(),255);if(r){r.push(s);return}return[s]},funcidx:(e,t,i,r)=>D(m(e.shift(),t.func),r),typeidx:(e,t,i,r)=>D(m(e.shift(),t.type),r),tableidx:(e,t,i,r)=>D(m(e.shift(),t.table),r),memoryidx:(e,t,i,r)=>D(m(e.shift(),t.memory),r),globalidx:(e,t,i,r)=>D(m(e.shift(),t.global),r),localidx:(e,t,i,r)=>D(m(e.shift(),t.local),r),dataidx:(e,t,i,r)=>D(m(e.shift(),t.data),r),elemidx:(e,t,i,r)=>D(m(e.shift(),t.elem),r),tagidx:(e,t,i,r)=>D(m(e.shift(),t.tag),r),"memoryidx?":(e,t,i,r)=>D(m(S(e[0])?e.shift():0,t.memory),r),stringidx:(e,t,i,r)=>{let s=e.shift(),l=s.valueOf(),f=t.strings.findIndex(a=>a.valueOf()===l);return f<0&&(f=t.strings.push(s)-1),D(f,r)},i32:(e,t,i,r)=>{if(r){F(e.shift(),r);return}return F(e.shift())},i64:(e,t,i,r)=>{if(r){R(e.shift(),r);return}return R(e.shift())},f32:(e,t,i,r)=>H(e.shift(),r),f64:(e,t,i,r)=>Y(e.shift(),r),v128:e=>de(e.shift()),typeidx_field:(e,t)=>{let i=m(e.shift(),t.type);return[...c(i),...c(m(e.shift(),t.type[i][1]))]},typeidx_multi:(e,t)=>[...c(m(e.shift(),t.type)),...c(e.shift())],typeidx_dataidx:(e,t)=>[...c(m(e.shift(),t.type)),...c(m(e.shift(),t.data))],typeidx_elemidx:(e,t)=>[...c(m(e.shift(),t.type)),...c(m(e.shift(),t.elem))],typeidx_typeidx:(e,t)=>[...c(m(e.shift(),t.type)),...c(m(e.shift(),t.type))],dataidx_memoryidx:(e,t)=>[...c(m(e.shift(),t.data)),...c(m(e.shift(),t.memory))],memoryidx_memoryidx:(e,t)=>[...c(m(e.shift(),t.memory)),...c(m(e.shift(),t.memory))],tableidx_tableidx:(e,t)=>[...c(m(e.shift(),t.table)),...c(m(e.shift(),t.table))],cont_bind:(e,t)=>[...c(m(e.shift(),t.type)),...c(m(e.shift(),t.type))],switch_cont:(e,t)=>[...c(m(e.shift(),t.type)),...c(m(e.shift(),t.tag))],resume:(e,t)=>{let i=c(m(e.shift(),t.type)),r=[],s=0;for(;e[0]?.[0]==="on";){let[,l,f]=e.shift();f==="switch"?r.push(1,...c(m(l,t.tag))):r.push(0,...c(m(l,t.tag)),...c(T(f,t.block))),s++}return[...i,...c(s),...r]},resume_throw:(e,t)=>{let i=c(m(e.shift(),t.type)),r=c(m(e.shift(),t.tag)),s=[],l=0;for(;e[0]?.[0]==="on";){let[,f,a]=e.shift();a==="switch"?s.push(1,...c(m(f,t.tag))):s.push(0,...c(m(f,t.tag)),...c(T(a,t.block))),l++}return[...i,...r,...c(l),...s]},resume_throw_ref:(e,t)=>{let i=c(m(e.shift(),t.type)),r=[],s=0;for(;e[0]?.[0]==="on";){let[,l,f]=e.shift();f==="switch"?r.push(1,...c(m(l,t.tag))):r.push(0,...c(m(l,t.tag)),...c(T(f,t.block))),s++}return[...i,...c(s),...r]}},Re=(e,t)=>{let i=[],r=[];for(;e?.length;){let s=e.shift();if(s?.[0]==="@metadata"){r.push(s.slice(1));continue}Array.isArray(s)&&(s.loc!=null&&W(s.loc),k(`Unknown instruction ${s[0]}`));let l=K[s];if(typeof l!="number"&&k(`Unknown instruction ${s}`),r.length){for(let[_,n]of r)(t.meta[_]??=[]).push([i.length,n]);r=[]}let f=i.length;l>65535?(i.push(l>>>16),c(l&65535,i)):i.push(l);let a=ee[s];if(a){s==="select"&&e[0]?.length?i[f]++:a==="reftype"&&!s.endsWith("_null")&&(e[0][1]==="null"||e[0][0]!=="ref")&&i[i.length-1]++;let _=ve[a](e,t,s,i);if(_)for(let n=0;n<_.length;n++)i.push(_[n])}}return i.push(11),i},N=e=>{if(typeof e!="number"||e<0)return c(e).length;let t=1;for(e>>>=7;e;)t++,e>>>=7;return t},pt=e=>{typeof e=="string"&&(e=F.parse(e));let t=1;for(;;){let i=e&127;if(e>>=7,e===0&&!(i&64)||e===-1&&i&64)return t;t++}},ht=(e,t,i=0)=>{let[r,s]=Ye(e),l=(r??Ge(t))|(i&&64);return i?N(l)+N(i)+N(s??0):N(l)+N(s??0)},Ie={};for(let e in ve)Ie[e]=(t,i,r)=>ve[e](t,i,r).length;Object.assign(Ie,{i32:e=>pt(e.shift()),f32:e=>(e.shift(),4),f64:e=>(e.shift(),8),localidx:(e,t)=>N(m(e.shift(),t.local)),funcidx:(e,t)=>N(m(e.shift(),t.func)),typeidx:(e,t)=>N(m(e.shift(),t.type)),tableidx:(e,t)=>N(m(e.shift(),t.table)),memoryidx:(e,t)=>N(m(e.shift(),t.memory)),globalidx:(e,t)=>N(m(e.shift(),t.global)),dataidx:(e,t)=>N(m(e.shift(),t.data)),elemidx:(e,t)=>N(m(e.shift(),t.elem)),tagidx:(e,t)=>N(m(e.shift(),t.tag)),labelidx:(e,t)=>N(T(e.shift(),t.block)),laneidx:e=>(te(e.shift(),255),1),memarg:(e,t,i)=>ht(e,i,S(e[0])&&!oe(e[0])?m(e.shift(),t.memory):0),opt_memory:(e,t)=>N(m(S(e[0])?e.shift():0,t.memory)),"memoryidx?":(e,t)=>N(m(S(e[0])?e.shift():0,t.memory)),call_indirect:(e,t)=>{let i=e.shift(),[,r]=e.shift();return N(m(r,t.type))+N(m(i,t.table))},block:(e,t)=>{t.block.push(1),B(e[0])&&(t.block[e.shift()]=t.block.length);let i=e.shift();return i?i[0]==="result"?M(i[1],t).length:N(m(i[1],t.type)):1},end:(e,t)=>(t.block.pop(),0),stringidx:(e,t)=>{let i=e.shift(),r=i.valueOf(),s=t.strings.findIndex(l=>l.valueOf()===r);return s<0&&(s=t.strings.push(i)-1),N(s)}});var gt=(e,t)=>{let i=0,r=[];for(;e?.length;){let s=e.shift();if(s?.[0]==="@metadata"){r.push(s.slice(1));continue}Array.isArray(s)&&(s.loc!=null&&W(s.loc),k(`Unknown instruction ${s[0]}`));let l=K[s];typeof l!="number"&&k(`Unknown instruction ${s}`);let f=l>65535?1+N(l&65535):1;if(ee[s]&&(f+=Ie[ee[s]](e,t,s)),r.length){for(let[a,_]of r)(t.meta[a]??=[]).push([i,_]);r=[]}i+=f}return i+1},dt=(e,t)=>{let[i,r]=e.shift();r||([,[r]]=t.type[m(i,t.type)]),t.local=Object.create(r),t.block=[],t.local.name="local",t.block.name="block",t._codeIdx===void 0&&(t._codeIdx=0);let s=t._codeIdx++;for(;e[0]?.[0]==="local";){let[,...o]=e.shift();if(B(o[0])){let h=o.shift();h in t.local?k(`Duplicate local ${h}`):t.local[h]=t.local.length}t.local.push(...o)}t.meta={};let l=gt(e,t),f=t.local.slice(r.length).reduce((o,h)=>(h==o[o.length-1]?.[1]?o[o.length-1][0]++:o.push([1,h]),o),[]),a=z(f.map(([o,h])=>[...c(o),...M(h,t)])),_=t.import.filter(o=>o[2][0]==="func").length+s;for(let o in t.meta){for(let h of t.meta[o])h[0]+=a.length;((t.metadata??={})[o]??=[]).push([_,t.meta[o]])}t.local=t.block=t.meta=null;let n=a.length+l;return(t.codeSizePrefix??=[])[s]=N(n),N(n)+n},X=(e,t)=>Re(P([e],t),t),m=(e,t,i)=>(i=B(e)?t[e]:+e,i>=0&&i<t.length||i in t?i:k(`Unknown ${t.name} ${e}`)),T=(e,t,i)=>(i=B(e)?t.length-t[e]:+e,isNaN(i)||i>t.length?k(`Bad label ${e}`):i),Ye=e=>{let t,i,r,s;for(;oe(e[0]);)[r,s]=e.shift().split("="),r==="offset"?i=+s:r==="align"?t=+s:k(`Unknown param ${r}=${s}`);return(i<0||i>4294967295)&&k(`Bad offset ${i}`),(t<=0||t>4294967295)&&k(`Bad align ${t}`),t&&(t=Math.log2(t))%1&&k(`Bad align ${t}`),[t,i]},Pe=(e,t,i=0,r)=>{let[s,l]=Ye(e),f=(s??Ge(t))|(i&&64);if(r){c(f,r),i&&c(i,r),c(l??0,r);return}return i?[...c(f),...c(i),...c(l??0)]:[...c(f),...c(l??0)]},Ge=e=>{let t=e.indexOf(".",3)+1,i=e.slice(1,e[0]==="v"?4:3);if(e[t]==="a"&&(t=e.indexOf(".",t)+1),e[0]==="m")return e.includes("64")?3:2;if(e[t]==="r"){let l=e.slice(t,t+6).match(/\d+/);return Math.log2(l?l[0]/8:+i/8)}let r=e[t]==="l"?t+4:t+5,s=e.slice(r).match(/(\d+)(x|_|$)/);return Math.log2(s?s[2]==="x"?8:s[1]/8:+i/8)},yt=e=>{if(!Array.isArray(e))return null;let[t,...i]=e;if(t!=="i8"&&t!=="i16"&&t!=="i32"&&t!=="i64"&&t!=="f32"&&t!=="f64")return null;let r=[],s=new DataView(new ArrayBuffer(8));for(let l of i)t==="i8"?r.push(F.parse(l)&511&255):t==="i16"?(s.setInt16(0,F.parse(l),!0),r.push(...new Uint8Array(s.buffer,0,2))):t==="i32"?(s.setInt32(0,F.parse(l),!0),r.push(...new Uint8Array(s.buffer,0,4))):t==="i64"?(s.setBigInt64(0,BigInt(l),!0),r.push(...new Uint8Array(s.buffer,0,8))):t==="f32"?r.push(...H(l)):t==="f64"&&r.push(...Y(l));return r},ne=e=>{let t=e[0]==="i64"&&e.shift(),i=e[e.length-1]==="shared"&&e.pop(),r=e.findIndex(n=>Array.isArray(n)&&n[0]==="pagesize"),s=-1;r>=0&&(s=Math.log2(+e.splice(r,1)[0][1]));let l=!isNaN(parseInt(e[1])),f=(s>=0?8:0)|(t?4:0)|(i?2:0)|(l?1:0),a=t?n=>{if(typeof n=="bigint")return n;let o=typeof n=="string"?n.replaceAll("_",""):String(n);return BigInt(o)}:te,_=s>=0?c(s):[];return l?[f,...c(a(e.shift())),...c(a(e.shift())),..._]:[f,...c(a(e.shift())),..._]},te=(e,t=4294967295)=>{let i=typeof e=="string"&&e[0]!=="+"?F.parse(e):typeof e=="number"?e:k(`Bad int ${e}`);return i>t?k(`Value out of range ${e}`):i},z=e=>[...c(e.length),...e.flat()];function He(e,t={}){typeof e=="string"&&(e=Q(e));let{indent:i=" ",newline:r=`
3
+ `,comments:s=!0}=t;if(i||="",r||="",typeof e[0]=="string"&&e[0][0]!==";")return f(e);return e.filter(a=>s||!l(a)).map(a=>f(a)).join(r);function l(a){return typeof a=="string"&&(a[0]===";"||a[0]==="("&&a[1]===";")}function f(a,_=0){if(!Array.isArray(a))return a;let n=a[0];if(!n)return"";let o=!1;if(n==="try_table"){let w=1;for(typeof a[w]=="string"&&a[w][0]==="$"&&(n+=" "+a[w++]),Array.isArray(a[w])&&(a[w][0]==="result"||a[w][0]==="type")&&(n+=" "+f(a[w++],_));Array.isArray(a[w])&&/^catch/.test(a[w][0]);)n+=" "+f(a[w++],_).trim();for(;w<a.length;w++)n+=Array.isArray(a[w])?r+i.repeat(_+1)+f(a[w],_+1):" "+a[w];return`(${n+r+i.repeat(_)})`}let h=!!r&&a.length<4&&!a.some(w=>typeof w=="string"&&w[0]===";"&&w[1]===";"),O=i.repeat(_+1);for(let w=1;w<a.length;w++){let $=a[w]?.valueOf?.()??a[w];if(typeof $=="string"&&($[0]===";"||$[0]==="("&&$[1]===";")){if(!s)continue;if($[0]===";")if(r)n+=r+O+$.trimEnd(),o=!0;else{let d=n[n.length-1];d&&d!==" "&&d!=="("&&(n+=" "),n+=$.trimEnd()+`
4
+ `}else{let d=n[n.length-1];d&&d!==" "&&d!=="("&&(n+=" "),n+=$.trimEnd()}}else if(Array.isArray($))h&&(h=$.every(d=>!Array.isArray(d))),n+=r+O+f($,_+1),o=!1;else if(a[0]==="data")h=!1,(r||n[n.length-1]!==")")&&(n+=r||" "),n+=O+$,o=!1;else{let d=n[n.length-1];o&&r?n+=r+O:d===`
5
+ `?n+="":(d&&d!==")"&&d!==" "||r||d===")")&&(n+=" "),n+=$,o=!1}}return h?`(${n.replaceAll(r+O+"("," (")})`:`(${n+r+i.repeat(_)})`}}var Ke="\uE000";function ue(e,t,i,r){if(typeof e!="function")throw Error(`watr: '${t}' is not bundled in this entry \u2014 import it from 'watr/${t}' and compose: compile(${t}(src))`);return e(i,r)}var bt=(e,t={})=>{if(!Array.isArray(e))return typeof e=="string"&&e[0]==="$"&&t.locals?.[e]?t.locals[e]:null;let[i,...r]=e,s=Le(i);return s||(i==="local.get"&&t.locals?.[r[0]]?t.locals[r[0]]:i==="call"&&t.funcs?.[r[0]]?t.funcs[r[0]].result?.[0]:null)};function $e(e,t){if(e=t(e),Array.isArray(e))for(let i=0;i<e.length;i++){let r=$e(e[i],t);r?._splice?(e.splice(i,1,...r),i+=r.length-1):e[i]=r}return e}function wt(e,t){let i=[],r=new Map;return $e(e,s=>{if(!Array.isArray(s))return s;if(s[0]==="call"&&typeof s[1]=="function"){let l=s[1];if(!r.has(l)){let a=[];for(let o=2;o<s.length;o++){let h=bt(s[o]);h&&a.push(h)}let _=i.length,n=l.name||`$fn${_}`;r.set(l,{idx:_,name:n.startsWith("$")?n:"$"+n,params:a,fn:l}),i.push(r.get(l))}let f=r.get(l);s[1]=f.name}return s}),i}function At(e){return e.map(({name:t,params:i})=>["import",'"env"',`"${t.slice(1)}"`,["func",t,...i.map(r=>["param",r])]])}function Ee(e,t,i){let{parse:r,compile:s,optimize:l,polyfill:f}=e,a={};if(!Array.isArray(t)&&i.length&&typeof i[i.length-1]=="object"&&i[i.length-1]!==null&&!i[i.length-1].byteLength&&(a=i.pop()),Array.isArray(t)&&t.raw){let _=t[0];for(let $=0;$<i.length;$++)_+=Ke+t[$+1];let n=r(_),o=[],h=0;n=$e(n,$=>{if($===Ke){let d=i[h++];if(typeof d=="function")return o.push(d),d;if(typeof d=="string"&&(d[0]==="("||/^\s*\(/.test(d))){let L=r(d);return Array.isArray(L)&&Array.isArray(L[0])&&(L._splice=!0),L}return d?.byteLength!==void 0?[...d]:typeof d=="bigint"?d.toString():d}return $});let O=null;if(o.length){let $=wt(n,o);if($.length){let d=At($);n[0]==="module"?n.splice(1,0,...d):typeof n[0]=="string"?n=[...d,n]:n.unshift(...d),O={env:{}};for(let L of $)O.env[L.name.slice(1)]=L.fn}}a.polyfill&&(n=ue(f,"polyfill",n,a.polyfill)),a.optimize&&(n=ue(l,"optimize",n,a.optimize));let w=s(n);return O&&(w._imports=O),w}if(a.polyfill||a.optimize){let _=typeof t=="string"?r(t):t;return a.polyfill&&(_=ue(f,"polyfill",_,a.polyfill)),a.optimize&&(_=ue(l,"optimize",_,a.optimize)),s(_)}return s(t)}function Qe(e,t,i){let r=Ee(e,t,i),s=new WebAssembly.Module(r);return new WebAssembly.Instance(s,r._imports).exports}var Xe={parse:Q,compile:ke};function Vt(e,...t){return Ee(Xe,e,t)}function vt(e,...t){return Qe(Xe,e,t)}var Rt=vt;export{Vt as compile,Rt as default,Q as parse,He as print,vt as watr};
package/dist/watr.wasm CHANGED
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "watr",
3
- "version": "5.0.0",
3
+ "version": "5.1.1",
4
4
  "description": "Light & fast WAT compiler – WebAssembly Text to binary, parse, print, transform",
5
5
  "main": "watr.js",
6
6
  "bin": {
@@ -59,7 +59,7 @@
59
59
  "scripts": {
60
60
  "build": "npm run build:js && npm run build:wasm",
61
61
  "build:js": "esbuild watr.js --bundle --format=esm --outfile=dist/watr.js && esbuild watr.js --bundle --format=esm --minify --outfile=dist/watr.min.js",
62
- "build:wasm": "npx jz watr.js -O3 -o dist/watr.wasm",
62
+ "build:wasm": "npx jz watr.js -O3 --memory 4096 -o dist/watr.wasm",
63
63
  "test": "node test",
64
64
  "test:wasm": "WATR_WASM=1 node test",
65
65
  "test:repl": "npx playwright test",
@@ -107,7 +107,7 @@
107
107
  "devDependencies": {
108
108
  "@playwright/test": "^1.57.0",
109
109
  "esbuild": "^0.24.2",
110
- "jz": "^0.7.0",
110
+ "jz": "^0.8.1",
111
111
  "tst": "^9.0.0"
112
112
  }
113
113
  }
package/readme.md CHANGED
@@ -59,11 +59,25 @@ npx watr input.wat --polyfill # newer features → MVP
59
59
 
60
60
  ## Metrics
61
61
 
62
- * **watr** — ~43 KB minified (~14 KB gzipped), 4,460 op/s
63
- * [spec/wast.js](https://github.com/WebAssembly/spec) — 216 KB, 2,185 op/s
64
- * [wabt](https://github.com/WebAssembly/wabt) — 282 KB, 1,273 op/s
65
- * [binaryen](https://github.com/WebAssembly/binaryen) — 1,100 KB, 718 op/s
66
- * [wat-compiler](https://github.com/stagas/wat-compiler) — ~152 KB (+ wabt dep), 539 op/s
62
+ * **watr** — ~44 KB minified (~14 KB gzipped), 3,123 op/s
63
+ * [spec/wast.js](https://github.com/WebAssembly/spec) — 216 KB, 1,509 op/s
64
+ * [wabt](https://github.com/WebAssembly/wabt) — 282 KB, 859 op/s
65
+ * [binaryen](https://github.com/WebAssembly/binaryen) — 1,100 KB, 473 op/s
66
+ * [wat-compiler](https://github.com/stagas/wat-compiler) — ~152 KB (+ wabt dep), 355 op/s
67
+
68
+ ### Optimizer vs binaryen (wasm-opt 128)
69
+
70
+ | | size (total) | time (batch) | footprint |
71
+ |---|---|---|---|
72
+ | **watr/optimize** | **19,734 B** | **~110 ms** in-process | 149 KB min (46 KB gz) |
73
+ | `wasm-opt -Oz` | 19,852 B | 990 ms CLI | ~1.1 MB js / native binary |
74
+ | `wasm-opt -O3` | 22,302 B | — | — |
75
+
76
+ <sup>Measured on [test/example](./test/example) (21 modules, `optimize(src)` defaults vs `wasm-opt -all`).<br>
77
+ Smaller than `-O3` on every module and than `-Oz` in aggregate (19,734 vs 19,852 B); ties or beats `-Oz` on 18 of 20 files.
78
+ On a 5.5 MB module watr's output is 1.7% SMALLER than `-Oz` (261,345 vs 265,977 B — cross-function outlining);
79
+ binaryen's native core is faster there (0.44 s vs ~2.6 s optimize + 0.19 s compile) — watr's edge is output size, batch/in-process use
80
+ with no process spawn, and a ~25× smaller footprint.</sup>
67
81
 
68
82
 
69
83
  ## Used by