UNPKG

watr

Version:

Light & fast WAT compiler – WebAssembly Text to binary, parse, print, transform

6 lines 102 kB
var De=Object.defineProperty;var Re=(t,e)=>{for(var r in e)De(t,r,{get:e[r],enumerable:!0})};var bt={};Re(bt,{f32:()=>ct,f64:()=>ft,i16:()=>He,i32:()=>P,i64:()=>nt,i8:()=>Ge,uleb:()=>h,uleb5:()=>je,v128:()=>Dt});var B=(t,e=B.loc)=>{if(e!=null&&B.src){let r=1,i=1;for(let s=0;s<e&&s<B.src.length;s++)B.src[s]===` `?(r++,i=1):i++;t+=` at ${r}:${i}`}throw Error(t)},se=/^_|_$|[^\da-f]_|_[^\da-f]/i,ne=/^[+-]?(?:0x[\da-f]+|\d+)$/i,We=new TextEncoder,Pe=new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0}),ie={n:10,r:13,t:9,'"':34,"'":39,"\\":92},At=t=>{let e=[],r=1,i,s,n="",l=()=>(n&&e.push(...We.encode(n)),n="");for(;r<t.length-1;)s=t[r++],i=null,s==="\\"&&(t[r]==="u"?(r++,r++,s=String.fromCodePoint(parseInt(t.slice(r,r=t.indexOf("}",r)),16)),r++):ie[t[r]]?i=ie[t[r++]]:isNaN(i=parseInt(t[r]+t[r+1],16))?s+=t[r]:(r++,r++)),i!=null?(l(),e.push(i)):n+=s;return l(),e.valueOf=()=>t,e},le=t=>Pe.decode(new Uint8Array(At(t))),G=t=>Array.isArray(t)?t.map(G):t,S=(t,e,r,i)=>{if(e(t,r,i),Array.isArray(t))for(let s=0;s<t.length;s++)S(t[s],e,t,s)},U=(t,e,r,i)=>{if(Array.isArray(t))for(let n=0;n<t.length;n++)U(t[n],e,t,n);let s=e(t,r,i);return s!==void 0&&r&&(r[i]=s),s!==void 0?s:t};var h=(t,e=[])=>{if(t==null)return e;if(typeof t=="string"&&(t=/[_x]/i.test(t)?BigInt(t.replaceAll("_","")):P.parse(t)),typeof t=="bigint"){for(;;){let i=Number(t&0x7Fn);if(t>>=7n,t===0n){e.push(i);break}e.push(i|128)}return e}let r=t&127;return t>>>=7,t===0?(e.push(r),e):(e.push(r|128),h(t,e))};function je(t){let e=[];for(let r=0;r<5;r++){let i=t&127;t>>>=7,r<4&&(i|=128),e.push(i)}return e}function P(t,e=[]){for(typeof t=="string"&&(t=P.parse(t));;){let r=Number(t&127);if(t>>=7,t===0&&!(r&64)||t===-1&&r&64){e.push(r);break}e.push(r|128)}return e}var oe=t=>!se.test(t)&&ne.test(t=t.replaceAll("_",""))?t:B(`Bad int ${t}`),Ge=P,He=P;P.parse=t=>(t=parseInt(oe(t)),(t<-2147483648||t>4294967295)&&B("i32 constant out of range"),t);function nt(t,e=[]){for(typeof t=="string"?t=nt.parse(t):typeof t=="number"&&(t=BigInt(t)),typeof t=="bigint"&&t>0x7fffffffffffffffn&&(t=t-0x10000000000000000n);;){let r=Number(t&0x7Fn);if(t>>=7n,t===0n&&!(r&64)||t===-1n&&r&64){e.push(r);break}e.push(r|128)}return e}var _t=new ArrayBuffer(8),X=new Uint8Array(_t),Ve=new Int32Array(_t),Ye=new Float32Array(_t),Xe=new Float64Array(_t),Lt=new BigInt64Array(_t);nt.parse=t=>{t=oe(t);let e=t[0]==="-",r=e||t[0]==="+"?t.slice(1):t,i;if(r[0]==="0"&&(r[1]==="x"||r[1]==="X")){let n=r.slice(2).replace(/^0+/,"")||"0";i=e?"8000000000000000":"ffffffffffffffff",(n.length>16||n.length===16&&n.toLowerCase()>i)&&B("i64 constant out of range")}else{let n=r.replace(/^0+/,"")||"0";i=e?"9223372036854775808":"18446744073709551615",(n.length>i.length||n.length===i.length&&n>i)&&B("i64 constant out of range")}let s=BigInt(r);return e&&(s=0n-s),Lt[0]=s,Lt[0]};var Ze=2147483648,Ke=2139095040,ae=4194304;function ct(t,e,r){if(typeof t=="string"&&(r=t.indexOf("nan"))>=0){if(t[r+3]===":"){let i=t.slice(r+4);e=i==="canonical"||i==="arithmetic"?ae:P.parse(i)}else e=ae;e=(e|Ke)>>>0,t[0]==="-"&&(e=(e|Ze)>>>0),Ve[0]=e|0}else e=typeof t=="string"?ct.parse(t):t,Ye[0]=e;return[X[0],X[1],X[2],X[3]]}var Qe=0x8000000000000000n,Je=0x7ff0000000000000n,fe=0x8000000000000n;function ft(t,e,r){if(typeof t=="string"&&(r=t.indexOf("nan"))>=0){if(t[r+3]===":"){let i=t.slice(r+4);e=i==="canonical"||i==="arithmetic"?fe:nt.parse(i)}else e=fe;e|=Je,t[0]==="-"&&(e|=Qe),Lt[0]=e}else e=typeof t=="string"?ft.parse(t):t,Xe[0]=e;return[X[0],X[1],X[2],X[3],X[4],X[5],X[6],X[7]]}ft.parse=(t,e=Number.MAX_VALUE)=>{t=t.replaceAll("_","");let r=1;if(t[0]==="-"?(r=-1,t=t.slice(1)):t[0]==="+"&&(t=t.slice(1)),t[1]==="x"){let[i,s="0"]=t.split(/p/i),[n,l=""]=i.split("."),a=l.length??0,o=0;for(let u=n.length-1;u>=2;u--){let p=parseInt(n[u],16);o+=p*16**(n.length-1-u)}let f=l?parseInt("0x"+l)/16**a:0;s=parseInt(s,10);let c=r*(o+f)*2**s;return c=Math.max(-e,Math.min(e,c)),c}return t.includes("nan")?r<0?NaN:NaN:t.includes("inf")?r*(1/0):r*parseFloat(t)};ct.parse=t=>ft.parse(t,34028234663852886e22);var Dt=t=>{let e=BigInt(typeof t=="string"?t.replaceAll("_",""):t),r=new Uint8Array(16);for(let i=0;i<16;i++)r[i]=Number(e&0xffn),e>>=8n;return[...r]};var ht=["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"]],xt=t=>{if(typeof t!="string")return null;let e=t.indexOf(".");if(e<0)return null;let r=t.slice(0,e),i=r==="i32"||r==="i64"||r==="f32"||r==="f64";return i&&/^(eqz?|ne|[lg][te])(_[su])?$/.test(t.slice(e+1))?"i32":i||r==="v128"?r:t==="memory.size"||t==="memory.grow"?"i32":null},R={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},W={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},lt={func:96,struct:95,array:94,cont:93,sub:80,subfinal:79,rec:78},Rt={func:0,table:1,memory:2,global:3,tag:4};var et=t=>{let e=0,r=[],i="",s=0,n=0,l=()=>i&&(r.push(i),i=""),a=o=>{r.loc=o;for(let f,c,u;e<t.length;)if(f=t.charCodeAt(e),s===34)i+=t[e++],f===92?i+=t[e++]:f===34&&(l(),s=0);else if(s>59)f===40&&t.charCodeAt(e+1)===59?(s++,i+=t[e++]+t[e++]):f===59&&t.charCodeAt(e+1)===41?(i+=t[e++]+t[e++],--s===59&&(l(),s=0)):i+=t[e++];else if(s<0)f===10||f===13?(i+=t[e++],l(),s=0):s===-2&&f===41?(l(),s=0):i+=t[e++];else if(f===34)i!=="$"&&l(),s=34,i+=t[e++];else if(f===40&&t.charCodeAt(e+1)===59)l(),s=60,i=t[e++]+t[e++];else if(f===59&&t.charCodeAt(e+1)===59)l(),s=t.indexOf(` `,e)<0?-2:-1,i=t[e++]+t[e++];else if(f===40&&t.charCodeAt(e+1)===64)l(),u=e,e+=2,i="@",n++,(c=r).push(r=[]),a(u),r=c;else if(f===40)l(),u=e++,n++,(c=r).push(r=[]),a(u),r=c;else{if(f===41)return l(),e++,n--;f<=32?(l(),e++):i+=t[e++]}s<0&&l(),l()};return a(0),s===34&&B("Unclosed quote",e),s>59&&B("Unclosed block comment",e),n>0&&B("Unclosed parenthesis",e),e<t.length&&B("Unexpected closing parenthesis",e),r.length>1?r:r[0]||[]};var ye=t=>typeof t=="string"&&(t[0]===";"||t[1]===";")||Array.isArray(t)&&t[0]?.[0]==="@"&&t[0]!=="@custom"&&!t[0]?.startsWith?.("@metadata.code."),pe=(t,e)=>typeof t=="string"?t[0]==="$"&&t[1]==='"'?t.includes("\\")?"$"+le(t.slice(1)):"$"+t.slice(2,-1):t[0]==='"'?At(t):t:Array.isArray(t)?(e=t.filter(r=>!ye(r)).map(pe),e.loc=t.loc,e.length===1&&e[0]?.[0]==="module"?e[0]:e):t;function yt(t){typeof t=="string"?(B.src=t,t=et(t)||[]):B.src="",B.loc=0,t=ye(t)?[]:pe(t)??[];let e=0;if(t[0]==="module"?(e++,H(t[e])&&e++):typeof t[0]=="string"&&(t=[t]),t[e]==="binary")return Uint8Array.from(t.slice(++e).flat());if(t[e]==="quote")return yt(t.slice(++e).map(u=>u.valueOf().slice(1,-1)).flat().join(""));t=t.flatMap((u,p)=>{if(p<e||!Array.isArray(u)||u[0]!=="import")return[u];let[,y,...g]=u;if(!g.some(_=>Array.isArray(_)&&_[0]==="item"))return[u];if(Array.isArray(g.at(-1))&&g.at(-1)[0]!=="item"){let _=g.at(-1);return g.slice(0,-1).filter(b=>b[0]==="item").map(([,b])=>["import",y,b,_])}return g.filter(_=>_[0]==="item").map(([,_,b])=>["import",y,_,b])});let r=[];for(let u in R)(r[R[u]]=r[u]=[]).name=u;r.metadata={},t.slice(e).filter(u=>{if(!Array.isArray(u)){let g=B.loc,m=B.src,_;for(;(g=m.indexOf(u,g))>=0;){if(_=m.charCodeAt(g-1),g>0&&(_>47&&_<58||_>64&&_<91||_>96&&_<123||_===95||_===36)){g++;continue}if(_=m.charCodeAt(g+u.length),_>47&&_<58||_>64&&_<91||_>96&&_<123||_===95){g++;continue}break}g>=0&&(B.loc=g),B(`Unexpected token ${u}`)}let[p,...y]=u;if(B.loc=u.loc,p==="@custom")r.custom.push(y);else if(p==="rec")for(let g=0;g<y.length;g++){let[,...m]=y[g];Wt(m,r.type);let _=[];for(;m[0]?.[0]==="descriptor"||m[0]?.[0]==="describes";)_.push(m.shift());(m=ce(m,r)).push(g?!0:[r.type.length,y.length]),_.length&&(m.desc=m.desc?[..._,...m.desc]:_),r.type.push(m)}else if(p==="type"){Wt(y,r.type);let g=[];for(;y[0]?.[0]==="descriptor"||y[0]?.[0]==="describes";)g.push(y.shift());let m=ce(y,r);g.length&&(m.desc=m.desc?[...g,...m.desc]:g),r.type.push(m)}else if(p==="start"||p==="export")r[p].push(y);else return!0}).forEach(u=>{let[p,...y]=u;B.loc=u.loc;let g;p==="import"&&([p,...y]=(g=y).pop());let m=r[p];for(m||B(`Unknown section ${p}`),Wt(y,m);y[0]?.[0]==="export";)r.export.push([y.shift()[1],[p,m?.length]]);if(y[0]?.[0]==="import"&&([,...g]=y.shift()),p==="table"){let _=y[0]==="i64",b=_?1:0;if(y[b+1]?.[0]==="elem"){let[v,[,...A]]=[y[b],y[b+1]];y=_?["i64",A.length,A.length,v]:[A.length,A.length,v],r.elem.push([["table",m.length],["offset",[_?"i64.const":"i32.const",_?0n:0]],v,...A])}}else if(p==="memory"){let _=y[0]==="i64",b=_?1:0;if(y[b]?.[0]==="data"){let v=y.find(I=>Array.isArray(I)&&I[0]==="pagesize")?.[1]??65536,[,...A]=y.splice(b,1)[0],z=""+Math.ceil(A.reduce((I,M)=>I+M.length,0)/v);r.data.push([["memory",m.length],[_?"i64.const":"i32.const",_?0n:0],...A]),y=_?["i64",z,z]:[z,z]}}else if(p==="func"){let[_,b,v]=Nt(y,r);_??=Mt(b,v,r),!g&&r.code.push([[_,b,v],...st(y,r)]),y=[["type",_]]}else if(p==="tag"){let[_,b]=Nt(y,r);_??=Mt(b,[],r),y=[["type",_]]}g&&(r.import.push([...g,[p,...y]]),y=null),m.push(y)});let i=(u,p=!0)=>{let y=r[u].filter(Boolean).map(g=>me[u](g,r)).filter(Boolean);return u===R.custom?y.flatMap(g=>[u,...L(g)]):y.length?[u,...L(p?L(y):y.flat())]:[]},s=()=>{let u=[];for(let p in r.metadata){let y=L(At(`"metadata.code.${p}"`)),g=L(r.metadata[p].map(([m,_])=>[...h(m),...L(_.map(([b,v])=>[...h(b),...L(v)]))]));u.push(0,...L([...y,...g]))}return u},n=i(R.global),l=i(R.elem),a=i(R.code),o=s(),f=i(R.data),c=r.strings.length?[R.strings,...L([0,...L(r.strings.map(u=>L(u)))])]:[];return Uint8Array.from([0,97,115,109,1,0,0,0,...i(R.custom),...i(R.type),...i(R.import),...i(R.func),...i(R.table),...i(R.memory),...i(R.tag),...c,...n,...i(R.export),...i(R.start,!1),...l,...i(R.datacount,!1),...a,...o,...f])}var Z=t=>t?.[0]==="$"||!isNaN(t),H=t=>t?.[0]==="$",Pt=t=>t?.[0]==="a"||t?.[0]==="o";function st(t,e){let r=[];for(t=[...t];t.length;){let i=t.shift();if(typeof i=="string")if(r.push(i),i==="block"||i==="if"||i==="loop")H(t[0])&&r.push(t.shift()),r.push(wt(t,e));else if(i==="else"||i==="end")H(t[0])&&t.shift();else if(i==="select")r.push(Bt(t)[1]);else if(i.endsWith("call_indirect")){let s=Z(t[0])?t.shift():0,[n,l,a]=Nt(t,e);r.push(s,["type",n??Mt(l,a,e)])}else i==="table.init"?r.push(Z(t[1])?t.shift():0,t.shift()):i==="table.copy"||i==="memory.copy"?r.push(Z(t[0])?t.shift():0,Z(t[0])?t.shift():0):i.startsWith("table.")?r.push(Z(t[0])?t.shift():0):i==="memory.init"?(r.push(...Z(t[1])?[t.shift(),t.shift()].reverse():[t.shift(),0]),e.datacount&&(e.datacount[0]=!0)):i==="data.drop"||i==="array.new_data"||i==="array.init_data"?(i==="data.drop"&&r.push(t.shift()),e.datacount&&(e.datacount[0]=!0)):(i.startsWith("memory.")||i.endsWith("load")||i.endsWith("store"))&&Z(t[0])&&r.push(t.shift());else if(Array.isArray(i)){let s=i[0];if(i.loc!=null&&(B.loc=i.loc),s?.startsWith?.("@metadata.code.")){let l=s.slice(15);r.push(["@metadata",l,i[1]]);continue}if(typeof s!="string"||!Array.isArray(ht[s])){r.push(i);continue}let n=i.slice(1);if(s==="block"||s==="loop")r.push(s),H(n[0])&&r.push(n.shift()),r.push(wt(n,e),...st(n,e),"end");else if(s==="if"){let l=[],a=[];n.at(-1)?.[0]==="else"&&(a=st(n.pop().slice(1),e)),n.at(-1)?.[0]==="then"&&(l=st(n.pop().slice(1),e));let o=[s];H(n[0])&&o.push(n.shift()),o.push(wt(n,e)),r.push(...st(n,e),...o,...l),a.length&&r.push("else",...a),r.push("end")}else if(s==="try_table"){for(r.push(s),H(n[0])&&r.push(n.shift()),r.push(wt(n,e));n[0]?.[0]==="catch"||n[0]?.[0]==="catch_ref"||n[0]?.[0]==="catch_all"||n[0]?.[0]==="catch_all_ref";)r.push(n.shift());r.push(...st(n,e),"end")}else if(s==="ref.test"||s==="ref.cast"){let l=n[0];(!Array.isArray(l)||l[1]==="null"||l[0]!=="ref")&&(s+="_null"),r.push(...st(n.slice(1),e),s,l),t.unshift(...r.splice(r.length-2))}else{let l=[];for(;n.length&&(!Array.isArray(n[0])||n[0].valueOf!==Array.prototype.valueOf||"type,param,result,ref,exact,on".includes(n[0][0]));)l.push(n.shift());r.push(...st(n,e),s,...l),t.unshift(...r.splice(r.length-1-l.length))}}else r.push(i)}return r}var Mt=(t,e,r,i="$"+t+">"+e)=>(r.type[i]??=r.type.push(["func",[t,e]])-1,i),jt=(t,e)=>{let r=[];for(;t[0]?.[0]===e;){let[,...i]=t.shift(),s=H(i[0])&&i.shift();s&&(s in r?(()=>{throw Error(`Duplicate ${e} ${s}`)})():r[s]=r.length),r.push(...i)}return r},Bt=t=>{let e=jt(t,"param"),r=jt(t,"result");if(t[0]?.[0]==="param")throw Error("Unexpected param");return[e,r]},Nt=(t,e)=>{if(t[0]?.[0]!=="type")return[,...Bt(t)];let[,r]=t.shift(),[i,s]=Bt(t),n=e.type[typeof r=="string"&&isNaN(r)?e.type[r]:+r];if(!n)throw Error(`Unknown type ${r}`);if((i.length||s.length)&&n[1].join(">")!==i+">"+s)throw Error(`Type ${r} mismatch`);return[r,...n[1]]},wt=(t,e)=>{let[r,i,s]=Nt(t,e);if(!(!i.length&&!s.length))return!i.length&&s.length===1?["result",...s]:["type",r??Mt(i,s,e)]},Wt=(t,e)=>{let r=H(t[0])&&t.shift();return r&&(r in e?B(`Duplicate ${e.name} ${r}`):e[r]=e.length),r},ce=([t],e)=>{let r="subfinal",i=[],s,n=[];t[0]==="sub"&&(r=t.shift(),t[0]==="final"&&(r+=t.shift()),t=(i=t).pop(),i=i.filter(a=>Array.isArray(a)&&(a[0]==="descriptor"||a[0]==="describes")?(n.push(a),!1):!0)),[s,...t]=t,s==="func"?(t=Bt(t),e.type["$"+t.join(">")]??=e.type.length):s==="struct"?t=jt(t,"field"):s==="array"&&([t]=t);let l=[s,t,r,i];return n.length&&(l.desc=n),l},me=[([t,...e],r)=>{let i=e;return(e[0]?.[0]==="before"||e[0]?.[0]==="after")&&(i=e.slice(1)),[...L(t),...i.flat()]},(t,e)=>{let[r,i,s,n,l]=t;if(l===!0)return;let a=(t.desc??[]).flatMap(([f,c])=>[f==="descriptor"?77:76,...h($(c,e.type))]),o=(f,c)=>f==="func"?[lt.func,...L(c[0].map(u=>Y(u,e))),...L(c[1].map(u=>Y(u,e)))]:f==="array"?[lt.array,...vt(c,e)]:f==="struct"?[lt.struct,...L(c.map(u=>vt(u,e)))]:f==="cont"?[lt.cont,...h($(c[0]??c,e.type))]:[lt[f]];if(l){let[f,c]=l,u=Array.from({length:c},(p,y)=>{let g=e.type[f+y],m=g.slice(0,4);return g.desc&&(m.desc=g.desc),me[R.type](m,e)});return[lt.rec,...L(u)]}else if(s==="sub"||n?.length)return[lt[s],...L(n.map(f=>$(f,e.type))),...a,...o(r,i)];return[...a,...o(r,i)]},([t,e,[r,...i]],s)=>{let n,l=Rt[r];if(r==="func"){i[0]==="exact"&&i.shift()&&(l=32);let[[,o]]=i;n=h($(o,s.type))}else if(r==="tag"){let[[,a]]=i;n=[0,...h($(a,s.type))]}else r==="memory"?n=$t(i):r==="global"?n=vt(i[0],s):r==="table"?n=[...Y(i.pop(),s),...$t(i)]:B(`Unknown kind ${r}`);return[...L(t),...L(e),l,...n]},([[,t]],e)=>h($(t,e.type)),(t,e)=>{let r=$t(t),i=Y(t.shift(),e),[s]=t;return s?[64,0,...i,...r,...ut(s,e)]:[...i,...r]},(t,e)=>$t(t),([t,e],r)=>[...vt(t,r),...ut(e,r)],([t,[e,r]],i)=>[...L(t),Rt[e],...h($(r,i[e]))],([t],e)=>h($(t,e.func)),(t,e)=>{let r=0,i=0,s=0,n=0,l,a,o;t[0]==="declare"&&(t.shift(),i=1),t[0]?.[0]==="table"?([,l]=t.shift(),l=$(l,e.table)):(typeof t[0]=="string"||typeof t[0]=="number")&&(t[1]?.[0]==="offset"||Array.isArray(t[1])&&t[1][0]!=="item"&&!t[1][0]?.startsWith("ref"))&&(l=$(t.shift(),e.table)),t[0]?.[0]==="offset"||Array.isArray(t[0])&&t[0][0]!=="item"&&!t[0][0].startsWith("ref")?(a=t.shift(),a[0]==="offset"&&([,a]=a),a=ut(a,e)):i||(r=1),W[t[0]]||t[0]?.[0]==="ref"?o=Y(t.shift(),e):t[0]==="func"?o=[W[t.shift()]]:o=[W.func],t=t.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)),o[0]!==W.funcref&&(n=1,s=1);let f=s<<2|(r||i?i:!!l||n)<<1|(r||i);return[f,...f===0?a:f===1?[0]:f===2?[...h(l||0),...a,0]:f===3?[0]:f===4?a:f===5?o:f===6?[...h(l||0),...a,...o]:o,...L(t.map(s?c=>ut(typeof c=="string"?["ref.func",c]:c,e):c=>h($(c,e.func))))]},(t,e)=>{let[r,i]=t.shift();i||([,[i]]=e.type[$(r,e.type)]),e.local=Object.create(i),e.block=[],e.local.name="local",e.block.name="block",e._codeIdx===void 0&&(e._codeIdx=0);let s=e._codeIdx++;for(;t[0]?.[0]==="local";){let[,...o]=t.shift();if(H(o[0])){let f=o.shift();f in e.local?B(`Duplicate local ${f}`):e.local[f]=e.local.length}e.local.push(...o)}e.meta={};let n=_e(t,e),l=e.import.filter(o=>o[2][0]==="func").length+s;for(let o in e.meta)((e.metadata??={})[o]??=[]).push([l,e.meta[o]]);let a=e.local.slice(i.length).reduce((o,f)=>(f==o[o.length-1]?.[1]?o[o.length-1][0]++:o.push([1,f]),o),[]);return e.local=e.block=e.meta=null,L([...L(a.map(([o,f])=>[...h(o),...Y(f,e)])),...n])},(t,e)=>{let r,i=0;return t[0]?.[0]==="memory"?([,i]=t.shift(),i=$(i,e.memory)):(typeof t[0]=="string"||typeof t[0]=="number")&&(t[1]?.[0]==="offset"||Array.isArray(t[1])&&typeof t[1][0]=="string")&&(i=$(t.shift(),e.memory)),Array.isArray(t[0])&&typeof t[0]?.[0]=="string"&&(r=t.shift(),r[0]==="offset"&&([,r]=r),r??B("Bad offset",r)),[...i?[2,...h(i),...ut(r,e)]:r?[0,...ut(r,e)]:[1],...L(t.flatMap(s=>rr(s)??[...s]))]},(t,e)=>h(e.data.length),([[,t]],e)=>[0,...h($(t,e.type))]],Y=(t,e)=>t[0]==="ref"?t[1]=="null"?Array.isArray(t[2])&&t[2][0]==="exact"?[W.refnull,98,...h($(t[2][1],e.type))]:W[t[2]]?[W[t[2]]]:[W.refnull,...h($(t[t.length-1],e.type))]:Array.isArray(t[1])&&t[1][0]==="exact"?[W.ref,98,...h($(t[1][1],e.type))]:[W.ref,...h(W[t[t.length-1]]||$(t[t.length-1],e.type))]:[W[t]??B(`Unknown type ${t}`)],vt=(t,e,r=t[0]==="mut"?1:0)=>[...Y(r?t[1]:t,e),r],ge={null:()=>[],reversed:(t,e)=>{let r=t.shift(),i=t.shift();return[...h($(i,e.elem)),...h($(r,e.table))]},block:(t,e)=>{e.block.push(1),H(t[0])&&(e.block[t.shift()]=e.block.length);let r=t.shift();return r?r[0]==="result"?Y(r[1],e):h($(r[1],e.type)):[W.void]},try_table:(t,e)=>{H(t[0])&&(e.block[t.shift()]=e.block.length+1);let r=t.shift(),i=r?r[0]==="result"?Y(r[1],e):h($(r[1],e.type)):[W.void],s=[],n=0;for(;t[0]?.[0]==="catch"||t[0]?.[0]==="catch_ref"||t[0]?.[0]==="catch_all"||t[0]?.[0]==="catch_all_ref";){let l=t.shift(),a=l[0]==="catch"?0:l[0]==="catch_ref"?1:l[0]==="catch_all"?2:3;a<=1?s.push(a,...h($(l[1],e.tag)),...h(at(l[2],e.block))):s.push(a,...h(at(l[1],e.block))),n++}return e.block.push(1),[...i,...h(n),...s]},end:(t,e)=>(e.block.pop(),[]),call_indirect:(t,e)=>{let r=t.shift(),[,i]=t.shift();return[...h($(i,e.type)),...h($(r,e.table))]},br_table:(t,e)=>{let r=[],i=0;for(;t[0]&&(!isNaN(t[0])||H(t[0]));)r.push(...h(at(t.shift(),e.block))),i++;return[...h(i-1),...r]},select:(t,e)=>{let r=t.shift()||[];return r.length?L(r.map(i=>Y(i,e))):[]},ref_null:(t,e)=>{let r=t.shift();return Array.isArray(r)&&r[0]==="exact"?[98,...h($(r[1],e.type))]:W[r]?[W[r]]:h($(r,e.type))},memarg:(t,e,r)=>ue(t,r,Z(t[0])&&!Pt(t[0])?$(t.shift(),e.memory):0),opt_memory:(t,e)=>h($(Z(t[0])?t.shift():0,e.memory)),reftype:(t,e)=>{let r=Y(t.shift(),e);return r.length>1?r.slice(1):r},reftype2:(t,e)=>{let r=at(t.shift(),e.block),i=Y(t.shift(),e),s=Y(t.shift(),e),n=l=>l.length>1?l.slice(1):l;return[(s[0]!==W.ref)<<1|i[0]!==W.ref,...h(r),...n(i),...n(s)]},v128const:t=>{let[e,r]=t.shift().split("x"),i=+e.slice(1),s=i>>>3;if(r=+r,e[0]==="i"){let l=r===16?new Uint8Array(16):r===8?new Uint16Array(8):r===4?new Uint32Array(4):new BigUint64Array(2);for(let a=0;a<r;a++)l[a]=bt[e].parse(t.shift());return[...new Uint8Array(l.buffer)]}let n=new Uint8Array(16);for(let l=0;l<r;l++)n.set(bt[e](t.shift()),l*s);return[...n]},shuffle:t=>{let e=[];for(let r=0;r<16;r++)e.push(kt(t.shift(),32));return typeof t[0]=="string"&&!isNaN(t[0])&&B("invalid lane length"),e},memlane:(t,e,r)=>{let i=H(t[0])||Z(t[0])&&(Pt(t[1])||Z(t[1]))?$(t.shift(),e.memory):0;return[...ue(t,r,i),...h(kt(t.shift()))]},"*":t=>h(t.shift()),labelidx:(t,e)=>h(at(t.shift(),e.block)),laneidx:t=>[kt(t.shift(),255)],funcidx:(t,e)=>h($(t.shift(),e.func)),typeidx:(t,e)=>h($(t.shift(),e.type)),tableidx:(t,e)=>h($(t.shift(),e.table)),memoryidx:(t,e)=>h($(t.shift(),e.memory)),globalidx:(t,e)=>h($(t.shift(),e.global)),localidx:(t,e)=>h($(t.shift(),e.local)),dataidx:(t,e)=>h($(t.shift(),e.data)),elemidx:(t,e)=>h($(t.shift(),e.elem)),tagidx:(t,e)=>h($(t.shift(),e.tag)),"memoryidx?":(t,e)=>h($(Z(t[0])?t.shift():0,e.memory)),stringidx:(t,e)=>{let r=t.shift(),i=r.valueOf(),s=e.strings.findIndex(n=>n.valueOf()===i);return s<0&&(s=e.strings.push(r)-1),h(s)},i32:t=>P(t.shift()),i64:t=>nt(t.shift()),f32:t=>ct(t.shift()),f64:t=>ft(t.shift()),v128:t=>Dt(t.shift()),typeidx_field:(t,e)=>{let r=$(t.shift(),e.type);return[...h(r),...h($(t.shift(),e.type[r][1]))]},typeidx_multi:(t,e)=>[...h($(t.shift(),e.type)),...h(t.shift())],typeidx_dataidx:(t,e)=>[...h($(t.shift(),e.type)),...h($(t.shift(),e.data))],typeidx_elemidx:(t,e)=>[...h($(t.shift(),e.type)),...h($(t.shift(),e.elem))],typeidx_typeidx:(t,e)=>[...h($(t.shift(),e.type)),...h($(t.shift(),e.type))],dataidx_memoryidx:(t,e)=>[...h($(t.shift(),e.data)),...h($(t.shift(),e.memory))],memoryidx_memoryidx:(t,e)=>[...h($(t.shift(),e.memory)),...h($(t.shift(),e.memory))],tableidx_tableidx:(t,e)=>[...h($(t.shift(),e.table)),...h($(t.shift(),e.table))],cont_bind:(t,e)=>[...h($(t.shift(),e.type)),...h($(t.shift(),e.type))],switch_cont:(t,e)=>[...h($(t.shift(),e.type)),...h($(t.shift(),e.tag))],resume:(t,e)=>{let r=h($(t.shift(),e.type)),i=[],s=0;for(;t[0]?.[0]==="on";){let[,n,l]=t.shift();l==="switch"?i.push(1,...h($(n,e.tag))):i.push(0,...h($(n,e.tag)),...h(at(l,e.block))),s++}return[...r,...h(s),...i]},resume_throw:(t,e)=>{let r=h($(t.shift(),e.type)),i=h($(t.shift(),e.tag)),s=[],n=0;for(;t[0]?.[0]==="on";){let[,l,a]=t.shift();a==="switch"?s.push(1,...h($(l,e.tag))):s.push(0,...h($(l,e.tag)),...h(at(a,e.block))),n++}return[...r,...i,...h(n),...s]},resume_throw_ref:(t,e)=>{let r=h($(t.shift(),e.type)),i=[],s=0;for(;t[0]?.[0]==="on";){let[,n,l]=t.shift();l==="switch"?i.push(1,...h($(n,e.tag))):i.push(0,...h($(n,e.tag)),...h(at(l,e.block))),s++}return[...r,...h(s),...i]}},It={};(function t(e,r){for(let i=0,s,n,l;i<e.length;i++)(s=e[i])&&(Array.isArray(s)?t(s,i):([n,l]=s.split(" "),ht[n]=r?[r,...h(i)]:[i],l&&(It[n]=ge[l])))})(ht);var _e=(t,e)=>{let r=[],i=[];for(;t?.length;){let s=t.shift();if(s?.[0]==="@metadata"){i.push(s.slice(1));continue}Array.isArray(s)&&(s.loc!=null&&(B.loc=s.loc),B(`Unknown instruction ${s[0]}`));let[...n]=ht[s]||B(`Unknown instruction ${s}`);It[s]&&(s==="select"&&t[0]?.length?n[0]++:It[s]===ge.reftype&&!s.endsWith("_null")&&(t[0][1]==="null"||t[0][0]!=="ref")&&n[n.length-1]++,n.push(...It[s](t,e,s)));for(let[l,a]of i)(e.meta[l]??=[]).push([r.length,a]);r.push(...n)}return r.push(11),r},ut=(t,e)=>_e(st([t],e),e),$=(t,e,r)=>(r=H(t)?e[t]:+t,r in e?r:B(`Unknown ${e.name} ${t}`)),at=(t,e,r)=>(r=H(t)?e.length-e[t]:+t,isNaN(r)||r>e.length?B(`Bad label ${t}`):r),tr=t=>{let e,r,i,s;for(;Pt(t[0]);)[i,s]=t.shift().split("="),i==="offset"?r=+s:i==="align"?e=+s:B(`Unknown param ${i}=${s}`);return(r<0||r>4294967295)&&B(`Bad offset ${r}`),(e<=0||e>4294967295)&&B(`Bad align ${e}`),e&&(e=Math.log2(e))%1&&B(`Bad align ${e}`),[e,r]},ue=(t,e,r=0)=>{let[i,s]=tr(t),n=(i??er(e))|(r&&64);return r?[...h(n),...h(r),...h(s??0)]:[...h(n),...h(s??0)]},er=t=>{let e=t.indexOf(".",3)+1,r=t.slice(1,t[0]==="v"?4:3);if(t[e]==="a"&&(e=t.indexOf(".",e)+1),t[0]==="m")return t.includes("64")?3:2;if(t[e]==="r"){let n=t.slice(e,e+6).match(/\d+/);return Math.log2(n?n[0]/8:+r/8)}let i=t[e]==="l"?e+4:e+5,s=t.slice(i).match(/(\d+)(x|_|$)/);return Math.log2(s?s[2]==="x"?8:s[1]/8:+r/8)},rr=t=>{if(!Array.isArray(t))return null;let[e,...r]=t;if(e!=="i8"&&e!=="i16"&&e!=="i32"&&e!=="i64"&&e!=="f32"&&e!=="f64")return null;let i=[],s=new DataView(new ArrayBuffer(8));for(let n of r)e==="i8"?i.push(P.parse(n)&511&255):e==="i16"?(s.setInt16(0,P.parse(n),!0),i.push(...new Uint8Array(s.buffer,0,2))):e==="i32"?(s.setInt32(0,P.parse(n),!0),i.push(...new Uint8Array(s.buffer,0,4))):e==="i64"?(s.setBigInt64(0,BigInt(n),!0),i.push(...new Uint8Array(s.buffer,0,8))):e==="f32"?i.push(...ct(n)):e==="f64"&&i.push(...ft(n));return i},$t=t=>{let e=t[0]==="i64"&&t.shift(),r=t[t.length-1]==="shared"&&t.pop(),i=t.findIndex(f=>Array.isArray(f)&&f[0]==="pagesize"),s=-1;i>=0&&(s=Math.log2(+t.splice(i,1)[0][1]));let n=!isNaN(parseInt(t[1])),l=(s>=0?8:0)|(e?4:0)|(r?2:0)|(n?1:0),a=e?f=>{if(typeof f=="bigint")return f;let c=typeof f=="string"?f.replaceAll("_",""):String(f);return BigInt(c)}:kt,o=s>=0?h(s):[];return n?[l,...h(a(t.shift())),...h(a(t.shift())),...o]:[l,...h(a(t.shift())),...o]},kt=(t,e=4294967295)=>{let r=typeof t=="string"&&t[0]!=="+"?P.parse(t):typeof t=="number"?t:B(`Bad int ${t}`);return r>e?B(`Value out of range ${t}`):r},L=t=>[...h(t.length),...t.flat()];function he(t,e={}){typeof t=="string"&&(t=et(t));let{indent:r=" ",newline:i=` `,comments:s=!0}=e;if(r||="",i||="",typeof t[0]=="string"&&t[0][0]!==";")return l(t);return t.filter(a=>s||!n(a)).map(a=>l(a)).join(i);function n(a){return typeof a=="string"&&a[1]===";"}function l(a,o=0){if(!Array.isArray(a))return a;let f=a[0];if(!f)return"";let c=!1;if(f==="try_table"){let y=1;for(typeof a[y]=="string"&&a[y][0]==="$"&&(f+=" "+a[y++]),Array.isArray(a[y])&&(a[y][0]==="result"||a[y][0]==="type")&&(f+=" "+l(a[y++],o));Array.isArray(a[y])&&/^catch/.test(a[y][0]);)f+=" "+l(a[y++],o).trim();for(;y<a.length;y++)f+=Array.isArray(a[y])?i+r.repeat(o+1)+l(a[y],o+1):" "+a[y];return`(${f+i+r.repeat(o)})`}let u=!!i&&a.length<4&&!a.some(y=>typeof y=="string"&&y[0]===";"&&y[1]===";"),p=r.repeat(o+1);for(let y=1;y<a.length;y++){let g=a[y]?.valueOf?.()??a[y];if(typeof g=="string"&&g[1]===";"){if(!s)continue;if(g[0]===";")if(i)f+=i+p+g.trimEnd(),c=!0;else{let m=f[f.length-1];m&&m!==" "&&m!=="("&&(f+=" "),f+=g.trimEnd()+` `}else{let m=f[f.length-1];m&&m!==" "&&m!=="("&&(f+=" "),f+=g.trimEnd()}}else if(Array.isArray(g))u&&(u=g.every(m=>!Array.isArray(m))),f+=i+p+l(g,o+1),c=!1;else if(a[0]==="data")u=!1,(i||f[f.length-1]!==")")&&(f+=i||" "),f+=p+g,c=!1;else{let m=f[f.length-1];c&&i?f+=i+p:m===` `?f+="":(m&&m!==")"&&m!==" "||i||m===")")&&(f+=" "),f+=g,c=!1}}return u?`(${f.replaceAll(i+p+"("," (")})`:`(${f+i+r.repeat(o)})`}}var de=(t,e)=>{let r=[],i=t[0]==="module"?1:0;for(let s=i;s<t.length;s++)Array.isArray(t[s])&&t[s][0]===e&&r.push({node:t[s],idx:s});return r},St=(t,e,r)=>t.splice(e,0,r),ir=0,rt=t=>`$__${t}${ir++}`,sr=(t,e)=>{let r=new Set;if(S(t,f=>{Array.isArray(f)&&f[0]==="ref.func"&&r.add(f[1])}),!r.size)return t;let i=rt("fntbl"),s=[...r],n=Object.fromEntries(s.map((f,c)=>[f,c])),l=de(t,"func"),a=l.length?l[0].idx:t[0]==="module"?1:0;St(t,a,["table",i,"funcref",["elem",...s]]);let o={};return S(t,f=>{if(!Array.isArray(f)||f[0]!=="func")return;let c=typeof f[1]=="string"&&f[1][0]==="$"?f[1]:null;if(!c)return;let u=[],p=[];for(let y of f){if(Array.isArray(y)&&y[0]==="param")for(let g=1;g<y.length;g++)y[g][0]!=="$"&&u.push(y[g]);if(Array.isArray(y)&&y[0]==="result")for(let g=1;g<y.length;g++)p.push(y[g])}o[c]={params:u,results:p}}),U(t,(f,c,u)=>{if(!(!Array.isArray(f)||!c)){if(f[0]==="ref.func"&&n[f[1]]!==void 0&&(c[u]=["i32.const",n[f[1]]]),f[0]==="call_ref"){let p=f[1],y=f.slice(2);c[u]=["call_indirect",i,["type",p],...y]}if(f[0]==="return_call_ref"){let p=f[1],y=f.slice(2);c[u]=["return_call_indirect",i,["type",p],...y]}}}),t},nr={"i32.extend8_s":["i32",24],"i32.extend16_s":["i32",16],"i64.extend8_s":["i64",56n],"i64.extend16_s":["i64",48n],"i64.extend32_s":["i64",32n]},lr=(t,e)=>(U(t,(r,i,s)=>{if(!Array.isArray(r)||!i)return;let n=nr[r[0]];if(!n)return;let[l,a]=n,o=r.slice(1);i[s]=[`${l}.shr_s`,[`${l}.shl`,...o,[`${l}.const`,a]],[`${l}.const`,a]]}),t),xe={"i32.trunc_sat_f32_s":{itype:"i32",ftype:"f32",signed:!0,min:-2147483648,max:2147483647},"i32.trunc_sat_f32_u":{itype:"i32",ftype:"f32",signed:!1,min:0,max:4294967295},"i32.trunc_sat_f64_s":{itype:"i32",ftype:"f64",signed:!0,min:-2147483648,max:2147483647},"i32.trunc_sat_f64_u":{itype:"i32",ftype:"f64",signed:!1,min:0,max:4294967295},"i64.trunc_sat_f32_s":{itype:"i64",ftype:"f32",signed:!0,min:-9223372036854775808n,max:9223372036854775807n},"i64.trunc_sat_f32_u":{itype:"i64",ftype:"f32",signed:!1,min:0n,max:18446744073709551615n},"i64.trunc_sat_f64_s":{itype:"i64",ftype:"f64",signed:!0,min:-9223372036854775808n,max:9223372036854775807n},"i64.trunc_sat_f64_u":{itype:"i64",ftype:"f64",signed:!1,min:0n,max:18446744073709551615n}},ar=(t,e)=>{let r=new Set;if(S(t,s=>{Array.isArray(s)&&xe[s[0]]&&r.add(s[0])}),!r.size)return t;let i={};for(let s of r){let{itype:n,ftype:l,signed:a,min:o,max:f}=xe[s],c=rt(`trunc_${n}_${l}_${a?"s":"u"}`);i[s]=c;let u=`${n}.trunc_${l}_${a?"s":"u"}`,p=n==="i64"?0n:0,y=["func",c,["param","$v",l],["result",n],["if",["result",n],[`${l}.ne`,["local.get","$v"],["local.get","$v"]],["then",[`${n}.const`,p]],["else",["if",["result",n],[`${l}.lt`,["local.get","$v"],[`${l}.const`,typeof o=="bigint"?Number(o):o]],["then",[`${n}.const`,o]],["else",["if",["result",n],[`${l}.gt`,["local.get","$v"],[`${l}.const`,typeof f=="bigint"?Number(f):f]],["then",[`${n}.const`,f]],["else",[u,["local.get","$v"]]]]]]]]];t.push(y)}return U(t,(s,n,l)=>{!Array.isArray(s)||!n||i[s[0]]&&(n[l]=["call",i[s[0]],...s.slice(1)])}),t},fr=(t,e)=>{let r=new Set,i=new Set;S(t,l=>{if(Array.isArray(l)){if(l[0]==="memory.copy"){let a=typeof l[1]=="number"?l[1]:0,o=typeof l[2]=="number"?l[2]:0;r.add(`${a}_${o}`)}if(l[0]==="memory.fill"){let a=typeof l[1]=="number"?l[1]:0;i.add(a)}}});let s={},n={};for(let l of r){let[a,o]=l.split("_").map(Number),f=rt(`memcpy${l==="0_0"?"":"_"+l}`);s[l]=f;let c=a?["i32.store8",a]:["i32.store8"],u=o?["i32.load8_u",o]:["i32.load8_u"];t.push(["func",f,["param","$dst","i32"],["param","$src","i32"],["param","$len","i32"],["local","$i","i32"],["block","$done",["loop","$loop",["br_if","$done",["i32.ge_u",["local.get","$i"],["local.get","$len"]]],[...c,["i32.add",["local.get","$dst"],["local.get","$i"]],[...u,["i32.add",["local.get","$src"],["local.get","$i"]]]],["local.set","$i",["i32.add",["local.get","$i"],["i32.const",1]]],["br","$loop"]]]])}for(let l of i){let a=rt(`memset${l===0?"":"_"+l}`);n[l]=a;let o=l?["i32.store8",l]:["i32.store8"];t.push(["func",a,["param","$dst","i32"],["param","$val","i32"],["param","$len","i32"],["local","$i","i32"],["block","$done",["loop","$loop",["br_if","$done",["i32.ge_u",["local.get","$i"],["local.get","$len"]]],[...o,["i32.add",["local.get","$dst"],["local.get","$i"]],["local.get","$val"]],["local.set","$i",["i32.add",["local.get","$i"],["i32.const",1]]],["br","$loop"]]]])}return U(t,(l,a,o)=>{if(!(!Array.isArray(l)||!a)){if(l[0]==="memory.copy"){let f=typeof l[1]=="number"?l[1]:0,c=typeof l[2]=="number"?l[2]:0,u=l.filter(p=>Array.isArray(p)||typeof p=="string"&&p[0]==="$");a[o]=["call",s[`${f}_${c}`],...u]}if(l[0]==="memory.fill"){let f=typeof l[1]=="number"?l[1]:0,c=l.filter(u=>Array.isArray(u)||typeof u=="string"&&u[0]==="$");a[o]=["call",n[f],...c]}}}),t},or=(t,e)=>{let r=!1;return S(t,i=>{Array.isArray(i)&&(i[0]==="return_call"||i[0]==="return_call_indirect")&&(r=!0)}),r&&U(t,(i,s,n)=>{!Array.isArray(i)||!s||(i[0]==="return_call"&&(s[n]=["return",["call",...i.slice(1)]]),i[0]==="return_call_indirect"&&(s[n]=["return",["call_indirect",...i.slice(1)]]))}),t},cr=(t,e)=>(U(t,(r,i,s)=>{if(!(!Array.isArray(r)||!i)&&(r[0]==="ref.i31"&&(i[s]=["i32.and",...r.slice(1),["i32.const",2147483647]]),r[0]==="i31.get_u"&&(i[s]=r.length>1?r[1]:["drop"]),r[0]==="i31.get_s")){let n=r.slice(1);i[s]=["i32.shr_s",["i32.shl",...n,["i32.const",1]],["i32.const",1]]}}),t),ur=(t,e)=>{let r={};S(t,s=>{if(!Array.isArray(s)||s[0]!=="global")return;let n=typeof s[1]=="string"&&s[1][0]==="$"?s[1]:null;if(n)for(let l=s.length-1;l>=0;l--){let a=s[l];if(Array.isArray(a)&&(a[0]==="i32.const"||a[0]==="i64.const"||a[0]==="f32.const"||a[0]==="f64.const")){r[n]={type:a[0].split(".")[0],value:a[1]};break}}});let i=s=>{if(!Array.isArray(s))return s;let n=s[0];if(n==="global.get"&&r[s[1]]){let l=r[s[1]];return[`${l.type}.const`,l.value]}if(n==="i32.add"||n==="i64.add"){let l=i(s[1]),a=i(s[2]);if(l&&a&&l[0]?.endsWith(".const")&&a[0]?.endsWith(".const")){let o=n.split(".")[0],f=o==="i64"?BigInt(l[1]):Number(l[1]),c=o==="i64"?BigInt(a[1]):Number(a[1]);return[`${o}.const`,f+c]}}if(n==="i32.sub"||n==="i64.sub"){let l=i(s[1]),a=i(s[2]);if(l&&a&&l[0]?.endsWith(".const")&&a[0]?.endsWith(".const")){let o=n.split(".")[0],f=o==="i64"?BigInt(l[1]):Number(l[1]),c=o==="i64"?BigInt(a[1]):Number(a[1]);return[`${o}.const`,f-c]}}if(n==="i32.mul"||n==="i64.mul"){let l=i(s[1]),a=i(s[2]);if(l&&a&&l[0]?.endsWith(".const")&&a[0]?.endsWith(".const")){let o=n.split(".")[0],f=o==="i64"?BigInt(l[1]):Number(l[1]),c=o==="i64"?BigInt(a[1]):Number(a[1]);return[`${o}.const`,f*c]}}return s};return U(t,(s,n,l)=>{if(!(!Array.isArray(s)||s[0]!=="global"||!n)){for(let a=2;a<s.length;a++)if(Array.isArray(s[a])){let o=i(s[a]);o!==s[a]&&(s[a]=o)}}}),t},yr=(t,e)=>{let r=new Map,i=[];if(S(t,a=>{if(!Array.isArray(a)||a[0]!=="func")return;let o=typeof a[1]=="string"&&a[1][0]==="$"?a[1]:null,f=[];for(let c of a)if(Array.isArray(c)&&c[0]==="result")for(let u=1;u<c.length;u++)f.push(c[u]);f.length>1&&o&&r.set(o,f)}),!r.size)return t;let s=Math.max(...[...r.values()].map(a=>a.length)),n={};for(let[a,o]of r)for(let f=1;f<o.length;f++){let c=o[f];if(n[c]||(n[c]=[]),n[c].length<f){let u=rt(`ret_${c}_${n[c].length}`);n[c].push(u),i.push(["global",u,["mut",c],[`${c}.const`,c==="i64"?0n:0]])}}let l=t[0]==="module"?1:0;for(let a of i.reverse())St(t,l,a);return U(t,(a,o,f)=>{if(!Array.isArray(a)||a[0]!=="func")return;let c=typeof a[1]=="string"&&a[1][0]==="$"?a[1]:null;if(!c||!r.has(c))return;let u=r.get(c);for(let p=0;p<a.length;p++)if(Array.isArray(a[p])&&a[p][0]==="result"){a[p]=["result",u[0]];break}}),t},dt={i32:4,i64:8,f32:4,f64:8},pr=(t,e)=>{let r=new Map,i=new Map,s=1;if(S(t,m=>{if(!Array.isArray(m)||m[0]!=="type")return;let _=typeof m[1]=="string"&&m[1][0]==="$"?m[1]:null;if(_){for(let b of m)if(Array.isArray(b)){if(b[0]==="struct"){let v=[];for(let A of b)if(Array.isArray(A)&&A[0]==="field"){let z=typeof A[1]=="string"&&A[1][0]==="$"?A[1]:null,I=z?A[2]:A[1],M=Array.isArray(I)&&I[0]==="mut"?I[1]:I;v.push({name:z,type:M})}r.set(_,{kind:"struct",fields:v}),i.set(_,s++)}if(b[0]==="array"){let v=b[1],A=Array.isArray(v)&&v[0]==="mut"?v[1]:v;r.set(_,{kind:"array",elemType:A}),i.set(_,s++)}}}}),!r.size)return t;let n=de(t,"memory").length>0,l=rt("alloc"),a=rt("heap_ptr"),o=t[0]==="module"?1:0;n||St(t,o,["memory",1]),St(t,o+1,["global",a,["mut","i32"],["i32.const",1024]]);let f=["func",l,["param","$size","i32"],["result","i32"],["local","$ptr","i32"],["local.set","$ptr",["global.get",a]],["global.set",a,["i32.add",["global.get",a],["local.get","$size"]]],["local.get","$ptr"]];t.push(f);let c=m=>{let _=4;for(let b of m.fields)_+=dt[b.type]||4;return _},u=(m,_)=>{let b=4;for(let v=0;v<_;v++)b+=dt[m.fields[v].type]||4;return b},p=(m,_)=>{for(let b=0;b<m.fields.length;b++)if(m.fields[b].name===_)return b;return-1},y=0,g=()=>`$__gc_tmp${y++}`;return S(t,m=>{if(!Array.isArray(m)||m[0]!=="func")return;let _=!1,b=!1,v=!1,A=!1;if(S(m,I=>{Array.isArray(I)&&((I[0]==="struct.new"||I[0]==="struct.new_default")&&(_=!0),(I[0]==="array.new"||I[0]==="array.new_default")&&(b=!0,v=!0,A=!0))}),!_&&!b)return;let z=1;for(let I=1;I<m.length;I++){let M=m[I];if(Array.isArray(M)&&(M[0]==="param"||M[0]==="result"||M[0]==="local"||M[0]==="export"||M[0]==="type"))z=I+1;else if(typeof M=="string"&&M[0]==="$")z=I+1;else if(!Array.isArray(M))z=I+1;else break}_&&m.splice(z++,0,["local","$__gc_ptr","i32"]),b&&m.splice(z++,0,["local","$__gc_aptr","i32"]),v&&m.splice(z++,0,["local","$__gc_alen","i32"]),A&&m.splice(z++,0,["local","$__gc_aidx","i32"])}),U(t,(m,_,b)=>{if(!(!Array.isArray(m)||!_)){if(m[0]==="struct.new"||m[0]==="struct.new_default"){let v=m[1],A=r.get(v);if(!A||A.kind!=="struct")return;let z=c(A),I=i.get(v),M=m.slice(2),C="$__gc_ptr",O=[["local.set",C,["call",l,["i32.const",z]]],["i32.store",["local.get",C],["i32.const",I]]];if(m[0]==="struct.new")for(let q=0;q<A.fields.length;q++){let x=A.fields[q],d=u(A,q),k=x.type==="i64"?"i64.store":x.type==="f32"?"f32.store":x.type==="f64"?"f64.store":"i32.store";O.push([k,["i32.add",["local.get",C],["i32.const",d]],M[q]||[`${x.type}.const`,0]])}else for(let q=0;q<A.fields.length;q++){let x=A.fields[q],d=u(A,q),k=x.type==="i64"?"i64.store":x.type==="f32"?"f32.store":x.type==="f64"?"f64.store":"i32.store",D=x.type==="i64"?["i64.const",0n]:x.type==="f32"?["f32.const",0]:x.type==="f64"?["f64.const",0]:["i32.const",0];O.push([k,["i32.add",["local.get",C],["i32.const",d]],D])}O.push(["local.get",C]),_[b]=["block",["result","i32"],...O]}if(m[0]==="struct.get"){let v=m[1],A=m[2]