| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- (module
- (type $struct_type (struct (field (mut i32)) (field (mut anyref))))
- (global $g_struct
- (mut (ref $struct_type))
- (struct.new $struct_type
- (i32.const 10)
- (struct.new $struct_type
- (i32.const 20)
- (struct.new_default $struct_type)
- )
- )
- )
- ;; assert_return(invoke "get_field1"), 10)
- (func (export "get_field1") (result i32)
- (struct.get $struct_type 0 (global.get $g_struct))
- )
- ;; assert_return(invoke "get_field1"), struct.new $struct_type ...)
- (func (export "get_field2") (result anyref)
- (struct.get $struct_type 1 (global.get $g_struct))
- )
- ;; assert_return(invoke "get_field2_field1"), 20)
- (func (export "get_field2_field1") (result i32)
- (struct.get $struct_type 0
- (ref.cast structref
- (struct.get $struct_type 1 (global.get $g_struct))
- )
- )
- )
- ;; assert_return(invoke "get_field2_field2"), struct.new_default $struct_type ...)
- (func (export "get_field2_field2") (result anyref)
- (struct.get $struct_type 1
- (ref.cast structref
- (struct.get $struct_type 1 (global.get $g_struct))
- )
- )
- )
- ;; assert_return(invoke "get_field2_field2_field1"), 0)
- (func (export "get_field2_field2_field1") (result i32)
- (struct.get $struct_type 0
- (ref.cast structref
- (struct.get $struct_type 1
- (ref.cast structref
- (struct.get $struct_type 1 (global.get $g_struct))
- )
- )
- )
- )
- )
- )
|