watr 5.1.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.js +3 -3
- package/dist/watr.min.js +5 -5
- package/dist/watr.wasm +0 -0
- package/package.json +1 -1
- package/readme.md +2 -3
- package/src/compile.js +9 -1
- package/src/print.js +8 -3
- package/types/src/compile.d.ts.map +1 -1
- package/types/src/print.d.ts.map +1 -1
package/dist/watr.js
CHANGED
|
@@ -1137,7 +1137,7 @@ var parse_default = (str2) => {
|
|
|
1137
1137
|
};
|
|
1138
1138
|
|
|
1139
1139
|
// src/compile.js
|
|
1140
|
-
var isDroppable = (n) => typeof n === "string" && (n[0] === ";" || n[1] === ";") || Array.isArray(n) && n[0]?.[0] === "@" && n[0] !== "@custom" && !n[0]?.startsWith?.("@metadata.code.");
|
|
1140
|
+
var isDroppable = (n) => typeof n === "string" && (n[0] === ";" || n[0] === "(" && n[1] === ";") || Array.isArray(n) && n[0]?.[0] === "@" && n[0] !== "@custom" && !n[0]?.startsWith?.("@metadata.code.");
|
|
1141
1141
|
var cleanup = (node, result) => {
|
|
1142
1142
|
if (typeof node === "string") return (
|
|
1143
1143
|
// normalize quoted ids: $"name" -> $name (if no escapes), else $unescaped
|
|
@@ -2171,7 +2171,7 @@ function print(tree, options = {}) {
|
|
|
2171
2171
|
if (typeof tree[0] === "string" && tree[0][0] !== ";") return printNode(tree);
|
|
2172
2172
|
return tree.filter((node) => comments || !isComment(node)).map((node) => printNode(node)).join(newline);
|
|
2173
2173
|
function isComment(node) {
|
|
2174
|
-
return typeof node === "string" && node[1] === ";";
|
|
2174
|
+
return typeof node === "string" && (node[0] === ";" || node[0] === "(" && node[1] === ";");
|
|
2175
2175
|
}
|
|
2176
2176
|
function printNode(node, level = 0) {
|
|
2177
2177
|
if (!Array.isArray(node)) return node;
|
|
@@ -2190,7 +2190,7 @@ function print(tree, options = {}) {
|
|
|
2190
2190
|
let curIndent = indent.repeat(level + 1);
|
|
2191
2191
|
for (let i = 1; i < node.length; i++) {
|
|
2192
2192
|
const sub = node[i]?.valueOf?.() ?? node[i];
|
|
2193
|
-
if (typeof sub === "string" && sub[1] === ";") {
|
|
2193
|
+
if (typeof sub === "string" && (sub[0] === ";" || sub[0] === "(" && sub[1] === ";")) {
|
|
2194
2194
|
if (!comments) continue;
|
|
2195
2195
|
if (sub[0] === ";") {
|
|
2196
2196
|
if (newline) {
|
package/dist/watr.min.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
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("."),n=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 a=f?parseInt("0x"+f)/16**n:0;s=parseInt(s,10);let o=i*(_+a)*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=""),n=_=>{i.loc=_;for(let a,o,h;t<e.length;)if(a=e.charCodeAt(t),s===34)r+=e[t++],a===92?r+=e[t++]:a===34&&(f(),s=0);else if(s>59)a===40&&e.charCodeAt(t+1)===59?(s++,r+=e[t++]+e[t++]):a===59&&e.charCodeAt(t+1)===41?(r+=e[t++]+e[t++],--s===59&&(f(),s=0)):r+=e[t++];else if(s<0)a===10||a===13?(r+=e[t++],f(),s=0):s===-2&&a===41?(f(),s=0):r+=e[t++];else if(a===34)r!=="$"&&f(),s=34,r+=e[t++];else if(a===40&&e.charCodeAt(t+1)===59)f(),s=60,r=e[t++]+e[t++];else if(a===59&&e.charCodeAt(t+1)===59)f(),s=e.indexOf(`
|
|
2
|
-
`,t)<0?-2:-1,r=e[t++]+e[t++];else if(a===40&&e.charCodeAt(t+1)===64)f(),h=t,t+=2,r="@",l++,(o=i).push(i=[]),n(h),i=o;else if(a===40)f(),h=t++,l++,(o=i).push(i=[]),n(h),i=o;else{if(a===41)return f(),t++,l--;a<=32?(f(),t++):r+=e[t++]}s<0&&f(),f()};return n(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[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),n=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),n,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),a=[];if(_.length){let u=c(_.length);for(let y of _)for(let p=0;p<y.length;p++)u.push(y[p]);a=[v.code,...c(u.length)];for(let y=0;y<u.length;y++)a.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),n,s(v.datacount,!1),a,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(a)).reduce((b,E)=>b+E.length,0)+a.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,[n,_,a]=_e(e,t);i.push(f,["type",n??ce(_,a,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 n=l.slice(15);i.push(["@metadata",n,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 n=[],_=[];f.at(-1)?.[0]==="else"&&(_=P(f.pop().slice(1),t,[],!0)),f.at(-1)?.[0]==="then"&&(n=P(f.pop().slice(1),t,[],!0));let a=[l];B(f[0])&&a.push(f.shift()),a.push(fe(f,t)),P(f,t,i,!0);for(let o=0;o<a.length;o++)i.push(a[o]);for(let o=0;o<n.length;o++)i.push(n[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 n=f[0];(!Array.isArray(n)||n[1]==="null"||n[0]!=="ref")&&(l+="_null"),P(f.slice(1),t,i,!0),i.push(l,n),e.unshift(...i.splice(i.length-2))}else{let n=[];for(;f.length&&(!Array.isArray(f[0])||f[0].valueOf!==Array.prototype.valueOf||"type,param,result,ref,exact,on".includes(f[0][0]));)n.push(f.shift());P(f,t,i,!0),i.push(l,...n),e.unshift(...i.splice(i.length-1-n.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(n=>Array.isArray(n)&&(n[0]==="descriptor"||n[0]==="describes")?(l.push(n),!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 n=(e.desc??[]).flatMap(([a,o])=>[a==="descriptor"?77:76,...c(m(o,t.type))]),_=(a,o)=>a==="func"?[V.func,...z(o[0].map(h=>M(h,t))),...z(o[1].map(h=>M(h,t)))]:a==="array"?[V.array,...ae(o,t)]:a==="struct"?[V.struct,...z(o.map(h=>ae(h,t)))]:a==="cont"?[V.cont,...c(m(o[0]??o,t.type))]:[V[a]];if(f){let[a,o]=f,h=Array.from({length:o},(O,w)=>{let $=t.type[a+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(a=>m(a,t.type))),...n,..._(i,r)];return[...n,..._(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[[,n]]=r;l=[0,...c(m(n,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,n,_;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")?(n=e.shift(),n[0]==="offset"&&([,n]=n),n=X(n,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 a=s<<2|(i||r?r:!!f||l)<<1|(i||r);return[a,...a===0?n:a===1?[0]:a===2?[...c(f||0),...n,0]:a===3?[0]:a===4?n:a===5?_:a===6?[...c(f||0),...n,..._]:_,...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),[]),n=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]+=n.length;((t.metadata??={})[o]??=[]).push([_,t.meta[o]])}t.local=t.block=t.meta=null;let a=c(n.length+l.length);(t.codeSizePrefix??=[])[s]=a.length;for(let o=0;o<n.length;o++)a.push(n[o]);for(let o=0;o<l.length;o++)a.push(l[o]);return a},(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(),n=f[0]==="catch"?0:f[0]==="catch_ref"?1:f[0]==="catch_all"?2:3;n<=1?s.push(n,...c(m(f[1],t.tag)),...c(T(f[2],t.block))):s.push(n,...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 n=0;n<i;n++)f[n]=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(n=>n.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,n]=e.shift();n==="switch"?s.push(1,...c(m(f,t.tag))):s.push(0,...c(m(f,t.tag)),...c(T(n,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[_,a]of r)(t.meta[_]??=[]).push([i.length,a]);r=[]}let f=i.length;l>65535?(i.push(l>>>16),c(l&65535,i)):i.push(l);let n=ee[s];if(n){s==="select"&&e[0]?.length?i[f]++:n==="reftype"&&!s.endsWith("_null")&&(e[0][1]==="null"||e[0][0]!=="ref")&&i[i.length-1]++;let _=ve[n](e,t,s,i);if(_)for(let a=0;a<_.length;a++)i.push(_[a])}}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[n,_]of r)(t.meta[n]??=[]).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),[]),n=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]+=n.length;((t.metadata??={})[o]??=[]).push([_,t.meta[o]])}t.local=t.block=t.meta=null;let a=n.length+l;return(t.codeSizePrefix??=[])[s]=N(a),N(a)+a},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(a=>Array.isArray(a)&&a[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),n=t?a=>{if(typeof a=="bigint")return a;let o=typeof a=="string"?a.replaceAll("_",""):String(a);return BigInt(o)}:te,_=s>=0?c(s):[];return l?[f,...c(n(e.shift())),...c(n(e.shift())),..._]:[f,...c(n(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(
|
|
4
|
-
`}else{let d=
|
|
5
|
-
`?
|
|
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
package/readme.md
CHANGED
|
@@ -67,18 +67,17 @@ npx watr input.wat --polyfill # newer features → MVP
|
|
|
67
67
|
|
|
68
68
|
### Optimizer vs binaryen (wasm-opt 128)
|
|
69
69
|
|
|
70
|
-
Measured on [test/example](./test/example) (21 modules, `optimize(src)` defaults vs `wasm-opt -all`):
|
|
71
|
-
|
|
72
70
|
| | size (total) | time (batch) | footprint |
|
|
73
71
|
|---|---|---|---|
|
|
74
72
|
| **watr/optimize** | **19,734 B** | **~110 ms** in-process | 149 KB min (46 KB gz) |
|
|
75
73
|
| `wasm-opt -Oz` | 19,852 B | 990 ms CLI | ~1.1 MB js / native binary |
|
|
76
74
|
| `wasm-opt -O3` | 22,302 B | — | — |
|
|
77
75
|
|
|
76
|
+
<sup>Measured on [test/example](./test/example) (21 modules, `optimize(src)` defaults vs `wasm-opt -all`).<br>
|
|
78
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.
|
|
79
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);
|
|
80
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
|
|
81
|
-
with no process spawn, and a ~25× smaller footprint
|
|
80
|
+
with no process spawn, and a ~25× smaller footprint.</sup>
|
|
82
81
|
|
|
83
82
|
|
|
84
83
|
## Used by
|
package/src/compile.js
CHANGED
|
@@ -17,8 +17,16 @@ import { err, unescape, str, setErrLoc, setErrSrc, getErrLoc, getErrSrc } from '
|
|
|
17
17
|
// load past parse — strip them. Predicate stays separate from `cleanup` so
|
|
18
18
|
// neither has to invent a "drop me" sentinel and risk colliding with a
|
|
19
19
|
// legitimate `null`/`undefined` immediate in the AST.
|
|
20
|
+
// A block-comment token is `(;…` (parse.js: `buf = '(' + ';'`) — checking n[1]===';'
|
|
21
|
+
// ALONE (without also requiring n[0]==='(') also matches an ordinary quoted STRING
|
|
22
|
+
// whose CONTENT happens to start with ';' (a string token always starts with n[0]==='"',
|
|
23
|
+
// so n[1] is its first content byte). A data-segment string is exactly this shape once
|
|
24
|
+
// packData splits a segment at a zero run and the surviving byte run starts with ';'
|
|
25
|
+
// (e.g. a WAT-text stdlib template's own comment, interned as static data) — cleanup()
|
|
26
|
+
// then silently drops that segment's whole content as if it were a comment. Mirrors the
|
|
27
|
+
// already-correct guard in optimize.js's own comment-strip (`c[0]==='(' && c[1]===';'`).
|
|
20
28
|
const isDroppable = (n) =>
|
|
21
|
-
(typeof n === 'string' && (n[0] === ';' || n[1] === ';')) ||
|
|
29
|
+
(typeof n === 'string' && (n[0] === ';' || (n[0] === '(' && n[1] === ';'))) ||
|
|
22
30
|
(Array.isArray(n) && n[0]?.[0] === '@' && n[0] !== '@custom' && !n[0]?.startsWith?.('@metadata.code.'))
|
|
23
31
|
|
|
24
32
|
const cleanup = (node, result) => {
|
package/src/print.js
CHANGED
|
@@ -28,7 +28,10 @@ export default function print(tree, options = {}) {
|
|
|
28
28
|
.join(newline)
|
|
29
29
|
|
|
30
30
|
function isComment(node) {
|
|
31
|
-
|
|
31
|
+
// node[1]===';' alone also matches a plain string starting with ';' (n[0] is
|
|
32
|
+
// always '"' for a real string token, so n[1] is its first content byte) — a
|
|
33
|
+
// block comment is '(;…', so also require n[0]==='(' to disambiguate.
|
|
34
|
+
return typeof node === 'string' && (node[0] === ';' || (node[0] === '(' && node[1] === ';'))
|
|
32
35
|
}
|
|
33
36
|
|
|
34
37
|
function printNode(node, level = 0) {
|
|
@@ -60,8 +63,10 @@ export default function print(tree, options = {}) {
|
|
|
60
63
|
for (let i = 1; i < node.length; i++) {
|
|
61
64
|
const sub = node[i]?.valueOf?.() ?? node[i] // "\00abc\ff" strings are stored as arrays but have ._ with original value
|
|
62
65
|
|
|
63
|
-
// comments - skip if not enabled
|
|
64
|
-
|
|
66
|
+
// comments - skip if not enabled. sub[1]===';' alone would also match a plain
|
|
67
|
+
// string starting with ';' (n[0] is always '"' for a real string; block comments
|
|
68
|
+
// are '(;…', so n[0]==='(' must hold too) — see isComment above.
|
|
69
|
+
if (typeof sub === 'string' && (sub[0] === ';' || (sub[0] === '(' && sub[1] === ';'))) {
|
|
65
70
|
if (!comments) continue
|
|
66
71
|
// line comments (;;) - MUST end with newline to avoid consuming following elements
|
|
67
72
|
if (sub[0] === ';') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../src/compile.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../src/compile.js"],"names":[],"mappings":"AA8VA;;;;GAIG;AACH,iDAAiE;AAEjE;;;;GAIG;AACH,sCAA4D;AAg8BrD,0CAcN"}
|
package/types/src/print.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"print.d.ts","sourceRoot":"","sources":["../../src/print.js"],"names":[],"mappings":"AAGA;;;;;;;;;GASG;AACH,oCAPW,MAAM,QAAQ,YAEtB;IAAyB,MAAM,GAAvB,MAAM;IACW,OAAO,GAAxB,MAAM;IACY,QAAQ,GAA1B,OAAO;CACf,GAAU,MAAM,
|
|
1
|
+
{"version":3,"file":"print.d.ts","sourceRoot":"","sources":["../../src/print.js"],"names":[],"mappings":"AAGA;;;;;;;;;GASG;AACH,oCAPW,MAAM,QAAQ,YAEtB;IAAyB,MAAM,GAAvB,MAAM;IACW,OAAO,GAAxB,MAAM;IACY,QAAQ,GAA1B,OAAO;CACf,GAAU,MAAM,CA+GlB"}
|