blob: 3107269beadc222c1ebab7f69d94beb450be2ac2 [file] [log] [blame]
(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 $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 $anyref_=>_none (func (param anyref)))
(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 $anyref_funcref_=>_none (func (param anyref funcref)))
(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_null
(local.get $0)
)
(unreachable)
)
(if
(ref.is_i31
(local.get $0)
)
(unreachable)
)
)
(func $3 (type $anyref_funcref_=>_none) (param $0 anyref) (param $1 funcref)
(drop
(ref.as_non_null
(local.get $0)
)
)
(drop
(ref.as_func
(local.get $1)
)
)
(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 i31ref)
(local.set $1
(br_on_i31 $label$2
(local.get $0)
)
)
(ref.null none)
)
)
(drop
(block $label$3 (result (ref any))
(br_on_non_null $label$3
(local.get $0)
)
(unreachable)
)
)
(drop
(block $label$4 (result anyref)
(local.set $4
(br_on_non_i31 $label$4
(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.new_fixed $[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.new_fixed $[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 none
(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)
)
)
)
)