(module (type ${i32_f32_f64} (struct (field i32) (field f32) (field f64))) (type $[mut:f64] (array (mut f64))) (type ${i8_mut:i16_ref|{i32_f32_f64}|_mut:ref|{i32_f32_f64}|} (struct (field i8) (field (mut i16)) (field (ref ${i32_f32_f64})) (field (mut (ref ${i32_f32_f64}))))) (type $none_=>_none (func)) (type $[mut:ref?|[mut:f64]|] (array (mut (ref null $[mut:f64])))) (type $[mut:i8] (array (mut i8))) (type ${mut:f32} (struct (field (mut f32)))) (type ${} (struct )) (type ${i32} (struct_subtype (field i32) ${})) (type ${i32_i64} (struct_subtype (field i32) (field i64) ${i32})) (type $anyref_=>_none (func (param anyref))) (type $ref?|[mut:f64]|_=>_none (func (param (ref null $[mut:f64])))) (type ${mut:ref|{i32}|} (struct (field (mut (ref ${i32}))))) (type $[mut:i32] (array (mut i32))) (type $[mut:ref|{i32}|] (array (mut (ref ${i32})))) (type $ref|{i32_f32_f64}|_ref?|{i32_f32_f64}|_ref?|{i32_i64}|_ref?|{mut:f32}|_ref?|{mut:ref|{i32}|}|_=>_ref|{i8_mut:i16_ref|{i32_f32_f64}|_mut:ref|{i32_f32_f64}|}| (func (param (ref ${i32_f32_f64}) (ref null ${i32_f32_f64}) (ref null ${i32_i64}) (ref null ${mut:f32}) (ref null ${mut:ref|{i32}|})) (result (ref ${i8_mut:i16_ref|{i32_f32_f64}|_mut:ref|{i32_f32_f64}|})))) (type $ref|[mut:f64]|_ref?|[mut:ref|{i32}|]|_ref?|{i32_i64}|_=>_ref|[mut:ref?|[mut:f64]|]| (func (param (ref $[mut:f64]) (ref null $[mut:ref|{i32}|]) (ref null ${i32_i64})) (result (ref $[mut:ref?|[mut:f64]|])))) (type $ref?|{mut:f32}|_=>_none (func (param (ref null ${mut:f32})))) (type $ref|[mut:f64]|_ref?|[mut:f64]|_=>_none (func (param (ref $[mut:f64]) (ref null $[mut:f64])))) (type $none_=>_ref|[mut:f64]| (func (result (ref $[mut:f64])))) (type $none_=>_ref|[mut:i8]| (func (result (ref $[mut:i8])))) (global $global$0 (ref ${i32_f32_f64}) (struct.new_default ${i32_f32_f64})) (func $0 (type $ref|{i32_f32_f64}|_ref?|{i32_f32_f64}|_ref?|{i32_i64}|_ref?|{mut:f32}|_ref?|{mut:ref|{i32}|}|_=>_ref|{i8_mut:i16_ref|{i32_f32_f64}|_mut:ref|{i32_f32_f64}|}|) (param $0 (ref ${i32_f32_f64})) (param $1 (ref null ${i32_f32_f64})) (param $2 (ref null ${i32_i64})) (param $3 (ref null ${mut:f32})) (param $4 (ref null ${mut:ref|{i32}|})) (result (ref ${i8_mut:i16_ref|{i32_f32_f64}|_mut:ref|{i32_f32_f64}|})) (local $5 (ref null ${i32_f32_f64})) (local $6 (ref null ${i8_mut:i16_ref|{i32_f32_f64}|_mut:ref|{i32_f32_f64}|})) (local $7 (ref null ${mut:f32})) (local $8 (ref null $[mut:f64])) (local $9 (ref null $[mut:ref?|[mut:f64]|])) (drop (local.get $0) ) (drop (struct.get ${i32_f32_f64} 0 (local.get $0) ) ) (drop (struct.get ${i32_f32_f64} 1 (local.get $0) ) ) (drop (struct.get ${i32_f32_f64} 2 (local.get $0) ) ) (drop (struct.get ${i32_f32_f64} 2 (local.get $0) ) ) (drop (struct.get ${i32_f32_f64} 2 (local.get $1) ) ) (drop (struct.get_u ${i8_mut:i16_ref|{i32_f32_f64}|_mut:ref|{i32_f32_f64}|} 0 (local.get $6) ) ) (drop (struct.get_s ${i8_mut:i16_ref|{i32_f32_f64}|_mut:ref|{i32_f32_f64}|} 0 (local.get $6) ) ) (drop (struct.get ${i32_i64} 0 (local.get $2) ) ) (drop (local.get $0) ) (drop (if (result (ref null ${i32_f32_f64})) (i32.const 1) (local.get $0) (local.get $0) ) ) (drop (loop $label$3 (result (ref null ${i32_f32_f64})) (local.get $0) ) ) (drop (select (result (ref null ${i32_f32_f64})) (local.get $0) (local.get $0) (i32.const 1) ) ) (struct.set ${mut:f32} 0 (local.get $3) (f32.const 100) ) (struct.set ${mut:ref|{i32}|} 0 (local.get $4) (ref.as_non_null (local.get $2) ) ) (drop (struct.new_default ${i32_f32_f64}) ) (drop (struct.new ${i32_f32_f64} (i32.const 1) (f32.const 2.3450000286102295) (f64.const 3.14159) ) ) (unreachable) ) (func $1 (type $ref|[mut:f64]|_ref?|[mut:ref|{i32}|]|_ref?|{i32_i64}|_=>_ref|[mut:ref?|[mut:f64]|]|) (param $0 (ref $[mut:f64])) (param $1 (ref null $[mut:ref|{i32}|])) (param $2 (ref null ${i32_i64})) (result (ref $[mut:ref?|[mut:f64]|])) (local $3 (ref null $[mut:f64])) (local $4 (ref null $[mut:ref?|[mut:f64]|])) (local $5 (ref null $[mut:i8])) (local $6 (ref null $[mut:i32])) (drop (array.new $[mut:f64] (f64.const 3.14159) (i32.const 3) ) ) (drop (array.new_default $[mut:ref?|[mut:f64]|] (i32.const 10) ) ) (drop (array.get $[mut:f64] (local.get $0) (i32.const 2) ) ) (array.set $[mut:f64] (local.get $0) (i32.const 2) (f64.const 2.18281828) ) (array.set $[mut:ref|{i32}|] (local.get $1) (i32.const 3) (ref.as_non_null (local.get $2) ) ) (drop (array.len (local.get $0) ) ) (drop (array.get $[mut:i32] (local.get $6) (i32.const 1) ) ) (drop (array.get_u $[mut:i8] (local.get $5) (i32.const 2) ) ) (drop (array.get_s $[mut:i8] (local.get $5) (i32.const 3) ) ) (unreachable) ) (func $2 (type $anyref_=>_none) (param $0 anyref) (if (ref.is_func (local.get $0) ) (unreachable) ) (if (ref.is_data (local.get $0) ) (unreachable) ) (if (ref.is_i31 (local.get $0) ) (unreachable) ) ) (func $3 (type $anyref_=>_none) (param $0 anyref) (drop (ref.as_non_null (local.get $0) ) ) (drop (ref.as_func (local.get $0) ) ) (drop (ref.as_data (local.get $0) ) ) (drop (ref.as_i31 (local.get $0) ) ) ) (func $4 (type $anyref_=>_none) (param $0 anyref) (local $1 anyref) (local $2 anyref) (local $3 funcref) (local $4 i31ref) (block $label$1 (local.set $2 (br_on_null $label$1 (local.get $0) ) ) ) (drop (block $label$2 (result funcref) (local.set $1 (br_on_func $label$2 (local.get $0) ) ) (ref.null nofunc) ) ) (drop (block $label$3 (result i31ref) (local.set $1 (br_on_i31 $label$3 (local.get $0) ) ) (ref.null none) ) ) (drop (block $label$4 (result (ref any)) (br_on_non_null $label$4 (local.get $0) ) (unreachable) ) ) (drop (block $label$5 (result anyref) (local.set $3 (br_on_non_func $label$5 (local.get $0) ) ) (ref.null none) ) ) (drop (block $label$6 (result anyref) (local.set $4 (br_on_non_i31 $label$6 (local.get $0) ) ) (ref.null none) ) ) ) (func $5 (type $none_=>_none) (unreachable) ) (func $6 (type $ref?|{mut:f32}|_=>_none) (param $0 (ref null ${mut:f32})) (drop (local.get $0) ) (unreachable) ) (func $7 (type $none_=>_none) (unreachable) ) (func $8 (type $none_=>_none) (unreachable) ) (func $9 (type $none_=>_none) (unreachable) ) (func $10 (type $ref?|[mut:f64]|_=>_none) (param $0 (ref null $[mut:f64])) (drop (local.get $0) ) (unreachable) ) (func $11 (type $none_=>_none) (unreachable) ) (func $12 (type $ref?|[mut:f64]|_=>_none) (param $0 (ref null $[mut:f64])) (drop (local.get $0) ) (unreachable) ) (func $13 (type $ref?|[mut:f64]|_=>_none) (param $0 (ref null $[mut:f64])) (drop (local.get $0) ) (drop (i32.const 2) ) (unreachable) ) (func $14 (type $none_=>_none) (unreachable) ) (func $15 (type $ref|[mut:f64]|_ref?|[mut:f64]|_=>_none) (param $0 (ref $[mut:f64])) (param $1 (ref null $[mut:f64])) (array.copy $[mut:f64] $[mut:f64] (local.get $0) (i32.const 11) (local.get $1) (i32.const 42) (i32.const 1337) ) ) (func $16 (type $none_=>_ref|[mut:f64]|) (result (ref $[mut:f64])) (array.init_static $[mut:f64] (f64.const 1) (f64.const 2) (f64.const 4) (f64.const 8) ) ) (func $17 (type $none_=>_ref|[mut:i8]|) (result (ref $[mut:i8])) (array.init_static $[mut:i8] (i32.const 4) (i32.const 2) (i32.const 1) ) ) (func $18 (type $none_=>_none) (local $0 (ref null ${i32_f32_f64})) (local $1 (ref null ${i8_mut:i16_ref|{i32_f32_f64}|_mut:ref|{i32_f32_f64}|})) (drop (ref.test ${i8_mut:i16_ref|{i32_f32_f64}|_mut:ref|{i32_f32_f64}|} (ref.null none) ) ) (drop (ref.cast null ${i8_mut:i16_ref|{i32_f32_f64}|_mut:ref|{i32_f32_f64}|} (ref.null none) ) ) (drop (block $label$1 (result (ref ${i8_mut:i16_ref|{i32_f32_f64}|_mut:ref|{i32_f32_f64}|})) (local.set $0 (br_on_cast $label$1 ${i8_mut:i16_ref|{i32_f32_f64}|_mut:ref|{i32_f32_f64}|} (ref.null none) ) ) (unreachable) ) ) (drop (block $label$2 (result (ref null ${i32_f32_f64})) (local.set $1 (br_on_cast_fail $label$2 ${i8_mut:i16_ref|{i32_f32_f64}|_mut:ref|{i32_f32_f64}|} (ref.null none) ) ) (unreachable) ) ) ) )