(module (type $FUNCSIG$v (func)) (type $FUNCSIG$iii (func (param i32 i32) (result i32))) (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) (type $FUNCSIG$ddd (func (param f64 f64) (result f64))) (type $FUNCSIG$ddi (func (param f64 i32) (result f64))) (type $FUNCSIG$i (func (result i32))) (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\1b\00\00\00s\00t\00d\00/\00o\00p\00e\00r\00a\00t\00o\00r\00-\00o\00v\00e\00r\00l\00o\00a\00d\00i\00n\00g\00.\00t\00s") (table $0 1 funcref) (elem (i32.const 0) $null) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) (global $std/operator-overloading/a1 (mut i32) (i32.const 0)) (global $std/operator-overloading/a2 (mut i32) (i32.const 0)) (global $std/operator-overloading/a (mut i32) (i32.const 0)) (global $std/operator-overloading/s1 (mut i32) (i32.const 0)) (global $std/operator-overloading/s2 (mut i32) (i32.const 0)) (global $std/operator-overloading/s (mut i32) (i32.const 0)) (global $std/operator-overloading/m1 (mut i32) (i32.const 0)) (global $std/operator-overloading/m2 (mut i32) (i32.const 0)) (global $std/operator-overloading/m (mut i32) (i32.const 0)) (global $std/operator-overloading/d1 (mut i32) (i32.const 0)) (global $std/operator-overloading/d2 (mut i32) (i32.const 0)) (global $std/operator-overloading/d (mut i32) (i32.const 0)) (global $std/operator-overloading/f1 (mut i32) (i32.const 0)) (global $std/operator-overloading/f2 (mut i32) (i32.const 0)) (global $std/operator-overloading/f (mut i32) (i32.const 0)) (global $std/operator-overloading/p1 (mut i32) (i32.const 0)) (global $std/operator-overloading/p2 (mut i32) (i32.const 0)) (global $std/operator-overloading/p (mut i32) (i32.const 0)) (global $std/operator-overloading/n1 (mut i32) (i32.const 0)) (global $std/operator-overloading/n2 (mut i32) (i32.const 0)) (global $std/operator-overloading/n (mut i32) (i32.const 0)) (global $std/operator-overloading/o1 (mut i32) (i32.const 0)) (global $std/operator-overloading/o2 (mut i32) (i32.const 0)) (global $std/operator-overloading/o (mut i32) (i32.const 0)) (global $std/operator-overloading/x1 (mut i32) (i32.const 0)) (global $std/operator-overloading/x2 (mut i32) (i32.const 0)) (global $std/operator-overloading/x (mut i32) (i32.const 0)) (global $std/operator-overloading/eq1 (mut i32) (i32.const 0)) (global $std/operator-overloading/eq2 (mut i32) (i32.const 0)) (global $std/operator-overloading/eq (mut i32) (i32.const 0)) (global $std/operator-overloading/eq3 (mut i32) (i32.const 0)) (global $std/operator-overloading/eq4 (mut i32) (i32.const 0)) (global $std/operator-overloading/eqf (mut i32) (i32.const 0)) (global $std/operator-overloading/gt1 (mut i32) (i32.const 0)) (global $std/operator-overloading/gt2 (mut i32) (i32.const 0)) (global $std/operator-overloading/gt (mut i32) (i32.const 0)) (global $std/operator-overloading/gte1 (mut i32) (i32.const 0)) (global $std/operator-overloading/gte2 (mut i32) (i32.const 0)) (global $std/operator-overloading/gte (mut i32) (i32.const 0)) (global $std/operator-overloading/le1 (mut i32) (i32.const 0)) (global $std/operator-overloading/le2 (mut i32) (i32.const 0)) (global $std/operator-overloading/le (mut i32) (i32.const 0)) (global $std/operator-overloading/leq1 (mut i32) (i32.const 0)) (global $std/operator-overloading/leq2 (mut i32) (i32.const 0)) (global $std/operator-overloading/leq (mut i32) (i32.const 0)) (global $std/operator-overloading/shr (mut i32) (i32.const 0)) (global $std/operator-overloading/sres (mut i32) (i32.const 0)) (global $std/operator-overloading/shu (mut i32) (i32.const 0)) (global $std/operator-overloading/ures (mut i32) (i32.const 0)) (global $std/operator-overloading/shl (mut i32) (i32.const 0)) (global $std/operator-overloading/pos (mut i32) (i32.const 0)) (global $std/operator-overloading/pres (mut i32) (i32.const 0)) (global $std/operator-overloading/neg (mut i32) (i32.const 0)) (global $std/operator-overloading/nres (mut i32) (i32.const 0)) (global $std/operator-overloading/not (mut i32) (i32.const 0)) (global $std/operator-overloading/res (mut i32) (i32.const 0)) (global $std/operator-overloading/excl (mut i32) (i32.const 0)) (global $std/operator-overloading/bres (mut i32) (i32.const 0)) (global $std/operator-overloading/incdec (mut i32) (i32.const 0)) (global $std/operator-overloading/tmp (mut i32) (i32.const 0)) (global $std/operator-overloading/ais1 (mut i32) (i32.const 0)) (global $std/operator-overloading/ais2 (mut i32) (i32.const 0)) (global $std/operator-overloading/ais (mut i32) (i32.const 0)) (global $std/operator-overloading/aii1 (mut i32) (i32.const 0)) (global $std/operator-overloading/aii2 (mut i32) (i32.const 0)) (global $std/operator-overloading/aii (mut i32) (i32.const 0)) (export "memory" (memory $0)) (export "table" (table $0)) (start $start) (func $~lib/allocator/arena/__memory_allocate (; 1 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) global.get $~lib/allocator/arena/offset local.tee $0 i32.const 15 i32.add i32.const -8 i32.and local.tee $1 current_memory local.tee $2 i32.const 16 i32.shl i32.gt_u if local.get $2 local.get $1 local.get $0 i32.sub i32.const 65535 i32.add i32.const -65536 i32.and i32.const 16 i32.shr_u local.tee $3 local.get $2 local.get $3 i32.gt_s select grow_memory i32.const 0 i32.lt_s if local.get $3 grow_memory i32.const 0 i32.lt_s if unreachable end end end local.get $1 global.set $~lib/allocator/arena/offset local.get $0 ) (func $std/operator-overloading/Tester#constructor (; 2 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) call $~lib/allocator/arena/__memory_allocate local.tee $2 local.get $0 i32.store local.get $2 local.get $1 i32.store offset=4 local.get $2 ) (func $~lib/math/NativeMath.scalbn (; 3 ;) (type $FUNCSIG$ddi) (param $0 f64) (param $1 i32) (result f64) local.get $1 i32.const 1023 i32.gt_s if (result f64) local.get $0 f64.const 8988465674311579538646525e283 f64.mul local.set $0 local.get $1 i32.const 1023 i32.sub local.tee $1 i32.const 1023 i32.gt_s if (result f64) local.get $1 i32.const 1023 i32.sub local.tee $1 i32.const 1023 local.get $1 i32.const 1023 i32.lt_s select local.set $1 local.get $0 f64.const 8988465674311579538646525e283 f64.mul else local.get $0 end else local.get $1 i32.const -1022 i32.lt_s if (result f64) local.get $0 f64.const 2.004168360008973e-292 f64.mul local.set $0 local.get $1 i32.const 969 i32.add local.tee $1 i32.const -1022 i32.lt_s if (result f64) local.get $1 i32.const 969 i32.add local.tee $1 i32.const -1022 local.get $1 i32.const -1022 i32.gt_s select local.set $1 local.get $0 f64.const 2.004168360008973e-292 f64.mul else local.get $0 end else local.get $0 end end local.get $1 i64.extend_i32_s i64.const 1023 i64.add i64.const 52 i64.shl f64.reinterpret_i64 f64.mul ) (func $~lib/math/NativeMath.pow (; 4 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) (local $2 f64) (local $3 f64) (local $4 i32) (local $5 i32) (local $6 f64) (local $7 i32) (local $8 f64) (local $9 i32) (local $10 f64) (local $11 i32) (local $12 i32) (local $13 i32) (local $14 f64) (local $15 i32) (local $16 f64) (local $17 i64) (local $18 i32) (local $19 f64) (local $20 i32) (local $21 i32) local.get $0 i64.reinterpret_f64 local.tee $17 i64.const 32 i64.shr_u i32.wrap_i64 local.set $18 local.get $17 i32.wrap_i64 local.set $20 local.get $18 i32.const 2147483647 i32.and local.set $5 local.get $1 i64.reinterpret_f64 local.tee $17 i64.const 32 i64.shr_u i32.wrap_i64 local.tee $13 i32.const 2147483647 i32.and local.set $11 local.get $11 local.get $17 i32.wrap_i64 local.tee $21 i32.or i32.eqz if f64.const 1 return end local.get $5 i32.const 2146435072 i32.gt_s local.tee $4 i32.eqz if local.get $5 i32.const 2146435072 i32.eq local.tee $4 if local.get $20 i32.const 0 i32.ne local.set $4 end end local.get $4 i32.eqz if local.get $11 i32.const 2146435072 i32.gt_s local.set $4 end local.get $4 i32.eqz if local.get $11 i32.const 2146435072 i32.eq local.tee $4 if local.get $21 i32.const 0 i32.ne local.set $4 end end local.get $4 if local.get $0 local.get $1 f64.add return end local.get $18 i32.const 0 i32.lt_s if local.get $11 i32.const 1128267776 i32.ge_s if (result i32) i32.const 2 else local.get $11 i32.const 1072693248 i32.ge_s if (result i32) local.get $21 local.get $11 local.get $11 i32.const 20 i32.shr_s i32.const 1023 i32.sub local.tee $12 i32.const 20 i32.gt_s local.tee $4 select local.tee $7 i32.const 52 i32.const 20 local.get $4 select local.get $12 i32.sub local.tee $9 i32.shr_s local.set $4 i32.const 2 local.get $4 i32.const 1 i32.and i32.sub i32.const 0 local.get $4 local.get $9 i32.shl local.get $7 i32.eq select else i32.const 0 end end local.set $15 end local.get $21 i32.eqz if local.get $11 i32.const 2146435072 i32.eq if local.get $5 i32.const 1072693248 i32.sub local.get $20 i32.or if local.get $5 i32.const 1072693248 i32.ge_s if local.get $13 i32.const 0 i32.lt_s if f64.const 0 local.set $1 end local.get $1 return else f64.const 0 local.get $1 f64.neg local.get $13 i32.const 0 i32.ge_s select return end unreachable else f64.const nan:0x8000000000000 return end unreachable end local.get $11 i32.const 1072693248 i32.eq if local.get $13 i32.const 0 i32.ge_s if local.get $0 return end f64.const 1 local.get $0 f64.div return end local.get $13 i32.const 1073741824 i32.eq if local.get $0 local.get $0 f64.mul return end local.get $13 i32.const 1071644672 i32.eq if local.get $18 i32.const 0 i32.ge_s if local.get $0 f64.sqrt return end end end local.get $0 f64.abs local.set $2 local.get $20 i32.eqz if local.get $5 i32.eqz local.tee $4 i32.eqz if local.get $5 i32.const 2146435072 i32.eq local.set $4 end local.get $4 i32.eqz if local.get $5 i32.const 1072693248 i32.eq local.set $4 end local.get $4 if f64.const 1 local.get $2 f64.div local.get $2 local.get $13 i32.const 0 i32.lt_s select local.set $2 local.get $18 i32.const 0 i32.lt_s if (result f64) local.get $5 i32.const 1072693248 i32.sub local.get $15 i32.or if (result f64) local.get $2 f64.neg local.get $2 local.get $15 i32.const 1 i32.eq select else local.get $2 local.get $2 f64.sub local.tee $14 local.get $14 f64.div end else local.get $2 end return end end f64.const 1 local.set $10 local.get $18 i32.const 0 i32.lt_s if local.get $15 i32.eqz if local.get $0 local.get $0 f64.sub local.tee $14 local.get $14 f64.div return end f64.const -1 f64.const 1 local.get $15 i32.const 1 i32.eq select local.set $10 end local.get $11 i32.const 1105199104 i32.gt_s if (result f64) local.get $11 i32.const 1139802112 i32.gt_s if local.get $5 i32.const 1072693247 i32.le_s if f64.const inf f64.const 0 local.get $13 i32.const 0 i32.lt_s select return end local.get $5 i32.const 1072693248 i32.ge_s if f64.const inf f64.const 0 local.get $13 i32.const 0 i32.gt_s select return end end local.get $5 i32.const 1072693247 i32.lt_s if local.get $13 i32.const 0 i32.lt_s if (result f64) local.get $10 f64.const 1.e+300 f64.mul f64.const 1.e+300 f64.mul else local.get $10 f64.const 1e-300 f64.mul f64.const 1e-300 f64.mul end return end local.get $5 i32.const 1072693248 i32.gt_s if local.get $13 i32.const 0 i32.gt_s if (result f64) local.get $10 f64.const 1.e+300 f64.mul f64.const 1.e+300 f64.mul else local.get $10 f64.const 1e-300 f64.mul f64.const 1e-300 f64.mul end return end local.get $2 f64.const 1 f64.sub local.tee $3 local.get $3 f64.mul f64.const 0.5 local.get $3 f64.const 0.3333333333333333 local.get $3 f64.const 0.25 f64.mul f64.sub f64.mul f64.sub f64.mul local.set $0 f64.const 1.4426950216293335 local.get $3 f64.mul local.tee $16 local.get $3 f64.const 1.9259629911266175e-08 f64.mul local.get $0 f64.const 1.4426950408889634 f64.mul f64.sub local.tee $6 f64.add local.set $8 local.get $6 local.get $8 i64.reinterpret_f64 i64.const -4294967296 i64.and f64.reinterpret_i64 local.tee $8 local.get $16 f64.sub f64.sub else i32.const 0 local.set $7 local.get $5 i32.const 1048576 i32.lt_s if (result i32) local.get $2 f64.const 9007199254740992 f64.mul local.tee $2 i64.reinterpret_f64 i64.const 32 i64.shr_u i32.wrap_i64 local.set $5 i32.const -53 else i32.const 0 end local.get $5 i32.const 20 i32.shr_s i32.const 1023 i32.sub i32.add local.set $7 local.get $5 i32.const 1048575 i32.and local.tee $9 i32.const 1072693248 i32.or local.set $5 local.get $9 i32.const 235662 i32.le_s if (result i32) i32.const 0 else local.get $9 i32.const 767610 i32.lt_s if (result i32) i32.const 1 else local.get $7 i32.const 1 i32.add local.set $7 local.get $5 i32.const -1048576 i32.add local.set $5 i32.const 0 end end local.set $12 local.get $2 i64.reinterpret_f64 i64.const 4294967295 i64.and local.get $5 i64.extend_i32_s i64.const 32 i64.shl i64.or f64.reinterpret_i64 local.tee $2 f64.const 1.5 f64.const 1 local.get $12 select local.tee $0 f64.sub local.tee $16 f64.const 1 local.get $2 local.get $0 f64.add f64.div local.tee $6 f64.mul local.set $14 local.get $2 local.get $5 i32.const 1 i32.shr_s i32.const 536870912 i32.or i32.const 524288 i32.add local.get $12 i32.const 18 i32.shl i32.add i64.extend_i32_s i64.const 32 i64.shl f64.reinterpret_i64 local.tee $8 local.get $0 f64.sub f64.sub local.set $2 local.get $14 local.get $14 f64.mul local.tee $3 local.get $3 f64.mul f64.const 0.5999999999999946 local.get $3 f64.const 0.4285714285785502 local.get $3 f64.const 0.33333332981837743 local.get $3 f64.const 0.272728123808534 local.get $3 f64.const 0.23066074577556175 local.get $3 f64.const 0.20697501780033842 f64.mul f64.add f64.mul f64.add f64.mul f64.add f64.mul f64.add f64.mul f64.add f64.mul local.set $19 local.get $6 local.get $16 local.get $14 i64.reinterpret_f64 i64.const -4294967296 i64.and f64.reinterpret_i64 local.tee $6 local.get $8 f64.mul f64.sub local.get $6 local.get $2 f64.mul f64.sub f64.mul local.set $0 f64.const 3 local.get $6 local.get $6 f64.mul local.tee $3 f64.add local.get $19 local.get $0 local.get $6 local.get $14 f64.add f64.mul f64.add local.tee $19 f64.add local.set $8 local.get $19 local.get $8 i64.reinterpret_f64 i64.const -4294967296 i64.and f64.reinterpret_i64 local.tee $8 f64.const 3 f64.sub local.get $3 f64.sub f64.sub local.set $2 local.get $6 local.get $8 f64.mul local.tee $16 local.get $0 local.get $8 f64.mul local.get $2 local.get $14 f64.mul f64.add local.tee $6 f64.add local.set $0 local.get $6 local.get $0 i64.reinterpret_f64 i64.const -4294967296 i64.and f64.reinterpret_i64 local.tee $0 local.get $16 f64.sub f64.sub local.set $6 f64.const 0.9617967009544373 local.get $0 f64.mul local.tee $19 f64.const -7.028461650952758e-09 local.get $0 f64.mul local.get $6 f64.const 0.9617966939259756 f64.mul f64.add f64.const 1.350039202129749e-08 f64.const 0 local.get $12 select f64.add local.tee $2 f64.add f64.const 0.5849624872207642 f64.const 0 local.get $12 select local.tee $0 f64.add local.get $7 f64.convert_i32_s local.tee $3 f64.add local.set $8 local.get $2 local.get $8 i64.reinterpret_f64 i64.const -4294967296 i64.and f64.reinterpret_i64 local.tee $8 local.get $3 f64.sub local.get $0 f64.sub local.get $19 f64.sub f64.sub end local.set $2 local.get $1 local.get $1 i64.reinterpret_f64 i64.const -4294967296 i64.and f64.reinterpret_i64 local.tee $0 f64.sub local.get $8 f64.mul local.get $1 local.get $2 f64.mul f64.add local.tee $6 local.get $0 local.get $8 f64.mul local.tee $0 f64.add local.tee $2 i64.reinterpret_f64 local.tee $17 i32.wrap_i64 local.set $4 block $folding-inner1 block $folding-inner0 local.get $17 i64.const 32 i64.shr_u i32.wrap_i64 local.tee $9 i32.const 1083179008 i32.ge_s if local.get $9 i32.const 1083179008 i32.sub local.get $4 i32.or br_if $folding-inner0 local.get $6 f64.const 8.008566259537294e-17 f64.add local.get $2 local.get $0 f64.sub f64.gt br_if $folding-inner0 else local.get $9 i32.const 2147483647 i32.and i32.const 1083231232 i32.ge_s if local.get $9 i32.const -1064252416 i32.sub local.get $4 i32.or br_if $folding-inner1 local.get $6 local.get $2 local.get $0 f64.sub f64.le br_if $folding-inner1 end end local.get $9 i32.const 2147483647 i32.and local.tee $4 i32.const 20 i32.shr_s i32.const 1023 i32.sub local.set $12 i32.const 0 local.set $7 local.get $4 i32.const 1071644672 i32.gt_s if i32.const 1048576 local.get $12 i32.const 1 i32.add i32.shr_s local.get $9 i32.add local.tee $7 i32.const 2147483647 i32.and i32.const 20 i32.shr_s i32.const 1023 i32.sub local.set $12 i32.const 1048575 local.get $12 i32.shr_s i32.const -1 i32.xor local.get $7 i32.and i64.extend_i32_s i64.const 32 i64.shl f64.reinterpret_i64 local.set $3 local.get $7 i32.const 1048575 i32.and i32.const 1048576 i32.or i32.const 20 local.get $12 i32.sub i32.shr_s local.set $7 i32.const 0 local.get $7 i32.sub local.get $7 local.get $9 i32.const 0 i32.lt_s select local.set $7 local.get $0 local.get $3 f64.sub local.set $0 end local.get $6 local.get $0 f64.add i64.reinterpret_f64 i64.const -4294967296 i64.and f64.reinterpret_i64 local.tee $3 f64.const 0.6931471824645996 f64.mul local.tee $16 local.get $6 local.get $3 local.get $0 f64.sub f64.sub f64.const 0.6931471805599453 f64.mul local.get $3 f64.const -1.904654299957768e-09 f64.mul f64.add local.tee $6 f64.add local.tee $2 local.get $2 f64.mul local.set $3 local.get $10 f64.const 1 local.get $2 local.get $2 local.get $3 f64.const 0.16666666666666602 local.get $3 f64.const -2.7777777777015593e-03 local.get $3 f64.const 6.613756321437934e-05 local.get $3 f64.const -1.6533902205465252e-06 local.get $3 f64.const 4.1381367970572385e-08 f64.mul f64.add f64.mul f64.add f64.mul f64.add f64.mul f64.add f64.mul f64.sub local.tee $8 f64.mul local.get $8 f64.const 2 f64.sub f64.div local.get $6 local.get $2 local.get $16 f64.sub f64.sub local.tee $0 local.get $2 local.get $0 f64.mul f64.add f64.sub local.get $2 f64.sub f64.sub local.tee $2 i64.reinterpret_f64 i64.const 32 i64.shr_u i32.wrap_i64 local.get $7 i32.const 20 i32.shl i32.add local.tee $9 i32.const 20 i32.shr_s i32.const 0 i32.le_s if (result f64) local.get $2 local.get $7 call $~lib/math/NativeMath.scalbn else local.get $2 i64.reinterpret_f64 i64.const 4294967295 i64.and local.get $9 i64.extend_i32_s i64.const 32 i64.shl i64.or f64.reinterpret_i64 end f64.mul return end local.get $10 f64.const 1.e+300 f64.mul f64.const 1.e+300 f64.mul return end local.get $10 f64.const 1e-300 f64.mul f64.const 1e-300 f64.mul ) (func $std/operator-overloading/Tester.pow (; 5 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load f64.convert_i32_s local.get $1 i32.load f64.convert_i32_s call $~lib/math/NativeMath.pow i32.trunc_f64_s local.get $0 i32.load offset=4 f64.convert_i32_s local.get $1 i32.load offset=4 f64.convert_i32_s call $~lib/math/NativeMath.pow i32.trunc_f64_s call $std/operator-overloading/Tester#constructor ) (func $start:std/operator-overloading (; 6 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) i32.const 72 global.set $~lib/allocator/arena/startOffset global.get $~lib/allocator/arena/startOffset global.set $~lib/allocator/arena/offset i32.const 1 i32.const 2 call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/a1 i32.const 2 i32.const 3 call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/a2 global.get $std/operator-overloading/a1 local.tee $0 i32.load global.get $std/operator-overloading/a2 local.tee $1 i32.load i32.add local.get $0 i32.load offset=4 local.get $1 i32.load offset=4 i32.add call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/a global.get $std/operator-overloading/a i32.load i32.const 3 i32.eq local.tee $0 if (result i32) global.get $std/operator-overloading/a i32.load offset=4 i32.const 5 i32.eq else local.get $0 end i32.eqz if i32.const 0 i32.const 8 i32.const 147 i32.const 0 call $~lib/env/abort unreachable end i32.const 2 i32.const 3 call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/s1 i32.const 2 i32.const -3 call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/s2 global.get $std/operator-overloading/s1 local.tee $0 i32.load global.get $std/operator-overloading/s2 local.tee $1 i32.load i32.sub local.get $0 i32.load offset=4 local.get $1 i32.load offset=4 i32.sub call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/s global.get $std/operator-overloading/s i32.load i32.eqz local.tee $0 if (result i32) global.get $std/operator-overloading/s i32.load offset=4 i32.const 6 i32.eq else local.get $0 end i32.eqz if i32.const 0 i32.const 8 i32.const 153 i32.const 0 call $~lib/env/abort unreachable end i32.const 2 i32.const 5 call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/m1 i32.const 3 i32.const 2 call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/m2 global.get $std/operator-overloading/m1 local.tee $0 i32.load global.get $std/operator-overloading/m2 local.tee $1 i32.load i32.mul local.get $0 i32.load offset=4 local.get $1 i32.load offset=4 i32.mul call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/m global.get $std/operator-overloading/m i32.load i32.const 6 i32.eq local.tee $0 if (result i32) global.get $std/operator-overloading/m i32.load offset=4 i32.const 10 i32.eq else local.get $0 end i32.eqz if i32.const 0 i32.const 8 i32.const 159 i32.const 0 call $~lib/env/abort unreachable end i32.const 6 i32.const 50 call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/d1 i32.const 3 i32.const 10 call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/d2 global.get $std/operator-overloading/d1 local.tee $0 i32.load global.get $std/operator-overloading/d2 local.tee $1 i32.load i32.div_s local.get $0 i32.load offset=4 local.get $1 i32.load offset=4 i32.div_s call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/d global.get $std/operator-overloading/d i32.load i32.const 2 i32.eq local.tee $0 if (result i32) global.get $std/operator-overloading/d i32.load offset=4 i32.const 5 i32.eq else local.get $0 end i32.eqz if i32.const 0 i32.const 8 i32.const 165 i32.const 0 call $~lib/env/abort unreachable end i32.const 10 i32.const 10 call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/f1 i32.const 6 i32.const 10 call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/f2 global.get $std/operator-overloading/f1 local.tee $0 i32.load global.get $std/operator-overloading/f2 local.tee $1 i32.load i32.rem_s local.get $0 i32.load offset=4 local.get $1 i32.load offset=4 i32.rem_s call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/f global.get $std/operator-overloading/f i32.load i32.const 4 i32.eq local.tee $0 if (result i32) global.get $std/operator-overloading/f i32.load offset=4 i32.eqz else local.get $0 end i32.eqz if i32.const 0 i32.const 8 i32.const 171 i32.const 0 call $~lib/env/abort unreachable end i32.const 2 i32.const 3 call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/p1 i32.const 4 i32.const 5 call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/p2 global.get $std/operator-overloading/p1 global.get $std/operator-overloading/p2 call $std/operator-overloading/Tester.pow global.set $std/operator-overloading/p global.get $std/operator-overloading/p i32.load i32.const 16 i32.eq local.tee $0 if (result i32) global.get $std/operator-overloading/p i32.load offset=4 i32.const 243 i32.eq else local.get $0 end i32.eqz if i32.const 0 i32.const 8 i32.const 177 i32.const 0 call $~lib/env/abort unreachable end i32.const 255 i32.const 15 call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/n1 i32.const 15 i32.const 255 call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/n2 global.get $std/operator-overloading/n1 local.tee $0 i32.load global.get $std/operator-overloading/n2 local.tee $1 i32.load i32.and local.get $0 i32.load offset=4 local.get $1 i32.load offset=4 i32.and call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/n global.get $std/operator-overloading/n i32.load i32.const 15 i32.eq local.tee $0 if (result i32) global.get $std/operator-overloading/n i32.load offset=4 i32.const 15 i32.eq else local.get $0 end i32.eqz if i32.const 0 i32.const 8 i32.const 183 i32.const 0 call $~lib/env/abort unreachable end i32.const 3855 i32.const 255 call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/o1 i32.const 61680 i32.const 0 call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/o2 global.get $std/operator-overloading/o1 local.tee $0 i32.load global.get $std/operator-overloading/o2 local.tee $1 i32.load i32.or local.get $0 i32.load offset=4 local.get $1 i32.load offset=4 i32.or call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/o global.get $std/operator-overloading/o i32.load i32.const 65535 i32.eq local.tee $0 if (result i32) global.get $std/operator-overloading/o i32.load offset=4 i32.const 255 i32.eq else local.get $0 end i32.eqz if i32.const 0 i32.const 8 i32.const 189 i32.const 0 call $~lib/env/abort unreachable end i32.const 255 i32.const 255 call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/x1 i32.const 65280 i32.const 0 call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/x2 global.get $std/operator-overloading/x1 local.tee $0 i32.load global.get $std/operator-overloading/x2 local.tee $1 i32.load i32.xor local.get $0 i32.load offset=4 local.get $1 i32.load offset=4 i32.xor call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/x global.get $std/operator-overloading/x i32.load i32.const 65535 i32.eq local.tee $0 if (result i32) global.get $std/operator-overloading/x i32.load offset=4 i32.const 255 i32.eq else local.get $0 end i32.eqz if i32.const 0 i32.const 8 i32.const 195 i32.const 0 call $~lib/env/abort unreachable end i32.const 1 i32.const -2 call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/eq1 i32.const 1 i32.const -2 call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/eq2 global.get $std/operator-overloading/eq1 local.tee $1 i32.load global.get $std/operator-overloading/eq2 local.tee $2 i32.load i32.eq local.tee $0 if (result i32) local.get $1 i32.load offset=4 local.get $2 i32.load offset=4 i32.eq else local.get $0 end global.set $std/operator-overloading/eq global.get $std/operator-overloading/eq i32.const 1 i32.ne if i32.const 0 i32.const 8 i32.const 201 i32.const 0 call $~lib/env/abort unreachable end i32.const 1 i32.const 0 call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/eq3 i32.const 0 i32.const 1 call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/eq4 global.get $std/operator-overloading/eq3 local.tee $1 i32.load global.get $std/operator-overloading/eq4 local.tee $2 i32.load i32.eq local.tee $0 if (result i32) local.get $1 i32.load offset=4 local.get $2 i32.load offset=4 i32.eq else local.get $0 end global.set $std/operator-overloading/eqf global.get $std/operator-overloading/eqf if i32.const 0 i32.const 8 i32.const 207 i32.const 0 call $~lib/env/abort unreachable end global.get $std/operator-overloading/eq1 local.tee $1 i32.load global.get $std/operator-overloading/eq2 local.tee $2 i32.load i32.ne local.tee $0 if (result i32) local.get $1 i32.load offset=4 local.get $2 i32.load offset=4 i32.ne else local.get $0 end global.set $std/operator-overloading/eq global.get $std/operator-overloading/eq if i32.const 0 i32.const 8 i32.const 211 i32.const 0 call $~lib/env/abort unreachable end global.get $std/operator-overloading/eq3 local.tee $1 i32.load global.get $std/operator-overloading/eq4 local.tee $2 i32.load i32.ne local.tee $0 if (result i32) local.get $1 i32.load offset=4 local.get $2 i32.load offset=4 i32.ne else local.get $0 end global.set $std/operator-overloading/eqf global.get $std/operator-overloading/eqf i32.const 1 i32.ne if i32.const 0 i32.const 8 i32.const 215 i32.const 0 call $~lib/env/abort unreachable end i32.const 2 i32.const 2147483647 call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/gt1 i32.const 1 i32.const 0 call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/gt2 global.get $std/operator-overloading/gt1 local.tee $1 i32.load global.get $std/operator-overloading/gt2 local.tee $2 i32.load i32.gt_s local.tee $0 if (result i32) local.get $1 i32.load offset=4 local.get $2 i32.load offset=4 i32.gt_s else local.get $0 end global.set $std/operator-overloading/gt global.get $std/operator-overloading/gt i32.const 1 i32.ne if i32.const 0 i32.const 8 i32.const 221 i32.const 0 call $~lib/env/abort unreachable end i32.const 2 i32.const 2 call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/gte1 i32.const 2 i32.const 2 call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/gte2 global.get $std/operator-overloading/gte1 local.tee $1 i32.load global.get $std/operator-overloading/gte2 local.tee $2 i32.load i32.ge_s local.tee $0 if (result i32) local.get $1 i32.load offset=4 local.get $2 i32.load offset=4 i32.ge_s else local.get $0 end global.set $std/operator-overloading/gte global.get $std/operator-overloading/gte i32.const 1 i32.ne if i32.const 0 i32.const 8 i32.const 227 i32.const 0 call $~lib/env/abort unreachable end i32.const 5 i32.const -1 call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/le1 i32.const 6 i32.const 6 call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/le2 global.get $std/operator-overloading/le1 local.tee $1 i32.load global.get $std/operator-overloading/le2 local.tee $2 i32.load i32.lt_s local.tee $0 if (result i32) local.get $1 i32.load offset=4 local.get $2 i32.load offset=4 i32.lt_s else local.get $0 end global.set $std/operator-overloading/le global.get $std/operator-overloading/le i32.const 1 i32.ne if i32.const 0 i32.const 8 i32.const 233 i32.const 0 call $~lib/env/abort unreachable end i32.const 4 i32.const 3 call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/leq1 i32.const 4 i32.const 3 call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/leq2 global.get $std/operator-overloading/leq1 local.tee $1 i32.load global.get $std/operator-overloading/leq2 local.tee $2 i32.load i32.le_s local.tee $0 if (result i32) local.get $1 i32.load offset=4 local.get $2 i32.load offset=4 i32.le_s else local.get $0 end global.set $std/operator-overloading/leq global.get $std/operator-overloading/leq i32.const 1 i32.ne if i32.const 0 i32.const 8 i32.const 239 i32.const 0 call $~lib/env/abort unreachable end i32.const 8 i32.const 16 call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/shr global.get $std/operator-overloading/shr local.tee $0 i32.load i32.const 3 i32.shr_s local.get $0 i32.load offset=4 i32.const 3 i32.shr_s call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/sres global.get $std/operator-overloading/sres i32.load i32.const 1 i32.eq local.tee $0 if (result i32) global.get $std/operator-overloading/sres i32.load offset=4 i32.const 2 i32.eq else local.get $0 end i32.eqz if i32.const 0 i32.const 8 i32.const 244 i32.const 0 call $~lib/env/abort unreachable end i32.const -8 i32.const -16 call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/shu global.get $std/operator-overloading/shu local.tee $0 i32.load i32.const 3 i32.shr_u local.get $0 i32.load offset=4 i32.const 3 i32.shr_u call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/ures global.get $std/operator-overloading/ures i32.load i32.const 536870911 i32.eq local.tee $0 if (result i32) global.get $std/operator-overloading/ures i32.load offset=4 i32.const 536870910 i32.eq else local.get $0 end i32.eqz if i32.const 0 i32.const 8 i32.const 249 i32.const 0 call $~lib/env/abort unreachable end i32.const 1 i32.const 2 call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/shl global.get $std/operator-overloading/shl local.tee $0 i32.load i32.const 3 i32.shl local.get $0 i32.load offset=4 i32.const 3 i32.shl call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/sres global.get $std/operator-overloading/sres i32.load i32.const 8 i32.eq local.tee $0 if (result i32) global.get $std/operator-overloading/sres i32.load offset=4 i32.const 16 i32.eq else local.get $0 end i32.eqz if i32.const 0 i32.const 8 i32.const 254 i32.const 0 call $~lib/env/abort unreachable end i32.const 1 i32.const -2 call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/pos global.get $std/operator-overloading/pos local.tee $0 i32.load local.get $0 i32.load offset=4 call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/pres global.get $std/operator-overloading/pres i32.load global.get $std/operator-overloading/pos i32.load i32.eq local.tee $0 if (result i32) global.get $std/operator-overloading/pres i32.load offset=4 global.get $std/operator-overloading/pos i32.load offset=4 i32.eq else local.get $0 end i32.eqz if i32.const 0 i32.const 8 i32.const 259 i32.const 0 call $~lib/env/abort unreachable end i32.const -1 i32.const -2 call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/neg i32.const 0 global.get $std/operator-overloading/neg local.tee $0 i32.load i32.sub i32.const 0 local.get $0 i32.load offset=4 i32.sub call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/nres global.get $std/operator-overloading/nres i32.load i32.const 0 global.get $std/operator-overloading/neg i32.load i32.sub i32.eq local.tee $0 if (result i32) global.get $std/operator-overloading/nres i32.load offset=4 i32.const 0 global.get $std/operator-overloading/neg i32.load offset=4 i32.sub i32.eq else local.get $0 end i32.eqz if i32.const 0 i32.const 8 i32.const 264 i32.const 0 call $~lib/env/abort unreachable end i32.const 255 i32.const 16 call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/not global.get $std/operator-overloading/not local.tee $0 i32.load i32.const -1 i32.xor local.get $0 i32.load offset=4 i32.const -1 i32.xor call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/res global.get $std/operator-overloading/res i32.load global.get $std/operator-overloading/not i32.load i32.const -1 i32.xor i32.eq local.tee $0 if (result i32) global.get $std/operator-overloading/res i32.load offset=4 global.get $std/operator-overloading/not i32.load offset=4 i32.const -1 i32.xor i32.eq else local.get $0 end i32.eqz if i32.const 0 i32.const 8 i32.const 269 i32.const 0 call $~lib/env/abort unreachable end i32.const 0 i32.const 0 call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/excl global.get $std/operator-overloading/excl local.tee $1 i32.load i32.eqz local.tee $0 if (result i32) local.get $1 i32.load offset=4 i32.eqz else local.get $0 end global.set $std/operator-overloading/bres global.get $std/operator-overloading/bres local.set $1 global.get $std/operator-overloading/excl i32.load i32.eqz local.tee $0 if (result i32) global.get $std/operator-overloading/excl i32.load offset=4 i32.eqz else local.get $0 end local.get $1 i32.ne if i32.const 0 i32.const 8 i32.const 274 i32.const 0 call $~lib/env/abort unreachable end global.get $std/operator-overloading/bres i32.const 1 i32.ne if i32.const 0 i32.const 8 i32.const 275 i32.const 0 call $~lib/env/abort unreachable end i32.const 0 i32.const 1 call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/incdec global.get $std/operator-overloading/incdec local.tee $0 local.get $0 i32.load i32.const 1 i32.add i32.store local.get $0 local.get $0 i32.load offset=4 i32.const 1 i32.add i32.store offset=4 local.get $0 global.set $std/operator-overloading/incdec global.get $std/operator-overloading/incdec i32.load i32.const 1 i32.eq local.tee $0 if (result i32) global.get $std/operator-overloading/incdec i32.load offset=4 i32.const 2 i32.eq else local.get $0 end i32.eqz if i32.const 0 i32.const 8 i32.const 281 i32.const 0 call $~lib/env/abort unreachable end global.get $std/operator-overloading/incdec local.tee $0 local.get $0 i32.load i32.const 1 i32.sub i32.store local.get $0 local.get $0 i32.load offset=4 i32.const 1 i32.sub i32.store offset=4 local.get $0 global.set $std/operator-overloading/incdec global.get $std/operator-overloading/incdec i32.load i32.eqz local.tee $0 if (result i32) global.get $std/operator-overloading/incdec i32.load offset=4 i32.const 1 i32.eq else local.get $0 end i32.eqz if i32.const 0 i32.const 8 i32.const 284 i32.const 0 call $~lib/env/abort unreachable end i32.const 0 i32.const 1 call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/incdec global.get $std/operator-overloading/incdec local.tee $0 i32.load i32.const 1 i32.add local.get $0 i32.load offset=4 i32.const 1 i32.add call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/incdec local.get $0 global.set $std/operator-overloading/tmp global.get $std/operator-overloading/tmp i32.load i32.eqz local.tee $0 if (result i32) global.get $std/operator-overloading/tmp i32.load offset=4 i32.const 1 i32.eq else local.get $0 end i32.eqz if i32.const 0 i32.const 8 i32.const 289 i32.const 0 call $~lib/env/abort unreachable end global.get $std/operator-overloading/incdec i32.load i32.const 1 i32.eq local.tee $0 if (result i32) global.get $std/operator-overloading/incdec i32.load offset=4 i32.const 2 i32.eq else local.get $0 end i32.eqz if i32.const 0 i32.const 8 i32.const 290 i32.const 0 call $~lib/env/abort unreachable end global.get $std/operator-overloading/incdec local.tee $0 i32.load i32.const 1 i32.sub local.get $0 i32.load offset=4 i32.const 1 i32.sub call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/incdec local.get $0 global.set $std/operator-overloading/tmp global.get $std/operator-overloading/tmp i32.load i32.const 1 i32.eq local.tee $0 if (result i32) global.get $std/operator-overloading/tmp i32.load offset=4 i32.const 2 i32.eq else local.get $0 end i32.eqz if i32.const 0 i32.const 8 i32.const 293 i32.const 0 call $~lib/env/abort unreachable end global.get $std/operator-overloading/incdec i32.load i32.eqz local.tee $0 if (result i32) global.get $std/operator-overloading/incdec i32.load offset=4 i32.const 1 i32.eq else local.get $0 end i32.eqz if i32.const 0 i32.const 8 i32.const 294 i32.const 0 call $~lib/env/abort unreachable end i32.const 1 i32.const 2 call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/ais1 global.get $std/operator-overloading/ais1 local.tee $0 i32.load i32.const 1 i32.add local.get $0 i32.load offset=4 i32.const 1 i32.add call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/ais1 i32.const 2 i32.const 3 call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/ais2 global.get $std/operator-overloading/ais1 local.tee $0 i32.load global.get $std/operator-overloading/ais2 local.tee $1 i32.load i32.add local.get $0 i32.load offset=4 local.get $1 i32.load offset=4 i32.add call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/ais global.get $std/operator-overloading/ais i32.load i32.const 4 i32.eq local.tee $1 if (result i32) global.get $std/operator-overloading/ais i32.load offset=4 i32.const 6 i32.eq else local.get $1 end i32.eqz if i32.const 0 i32.const 8 i32.const 314 i32.const 0 call $~lib/env/abort unreachable end i32.const 1 i32.const 2 call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/aii1 global.get $std/operator-overloading/aii1 local.tee $1 i32.load i32.const 1 i32.add local.get $1 i32.load offset=4 i32.const 1 i32.add call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/aii1 i32.const 2 i32.const 3 call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/aii2 global.get $std/operator-overloading/aii1 local.tee $1 i32.load global.get $std/operator-overloading/aii2 local.tee $0 i32.load i32.add local.get $1 i32.load offset=4 local.get $0 i32.load offset=4 i32.add call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/aii global.get $std/operator-overloading/aii i32.load i32.const 4 i32.eq local.tee $0 if (result i32) global.get $std/operator-overloading/aii i32.load offset=4 i32.const 6 i32.eq else local.get $0 end i32.eqz if i32.const 0 i32.const 8 i32.const 334 i32.const 0 call $~lib/env/abort unreachable end ) (func $start (; 7 ;) (type $FUNCSIG$v) call $start:std/operator-overloading ) (func $null (; 8 ;) (type $FUNCSIG$v) nop ) )