1+ (module
2+ (type $array_type (array (mut anyref )))
3+
4+ (global $g_array
5+ (mut (ref $array_type ))
6+ (array.new_fixed $array_type 2
7+ (ref.i31 (i32.const 10 ))
8+ (array.new_fixed $array_type 2
9+ (ref.i31 (i32.const 20 ))
10+ (array.new_default $array_type (i32.const 2 ))
11+ )
12+ )
13+ )
14+
15+ ;; assert_return(invoke "get_elem0"), 10)
16+ (func (export " get_elem0" ) (result i32 )
17+ (i31.get_s (ref.cast i31ref (array.get $array_type (global.get $g_array ) (i32.const 0 ))))
18+ )
19+
20+ ;; assert_return(invoke "get_elem1"), array.new_fixed $array_type ...)
21+ (func (export " get_elem1" ) (result anyref )
22+ (array.get $array_type (global.get $g_array ) (i32.const 1 ))
23+ )
24+
25+ ;; assert_return(invoke "get_elem1_elem0"), 20)
26+ (func (export " get_elem1_elem0" ) (result i32 )
27+ (i31.get_s (ref.cast i31ref
28+ (array.get $array_type
29+ (ref.cast (ref $array_type )
30+ (array.get $array_type (global.get $g_array ) (i32.const 1 ))
31+ )
32+ (i32.const 0 )
33+ )
34+ ))
35+ )
36+
37+ ;; assert_return(invoke "get_elem1_elem1"), array.new_default $array_type ...)
38+ (func (export " get_elem1_elem1" ) (result anyref )
39+ (array.get $array_type
40+ (ref.cast (ref $array_type )
41+ (array.get $array_type (global.get $g_array ) (i32.const 1 ))
42+ )
43+ (i32.const 1 )
44+ )
45+ )
46+
47+ ;; assert_return(invoke "get_elem1_elem1_elem0"), 0)
48+ (func (export " get_elem1_elem1_elem0" ) (result i32 )
49+ (i31.get_s (ref.cast i31ref
50+ (array.get $array_type
51+ (ref.cast (ref $array_type )
52+ (array.get $array_type
53+ (ref.cast (ref $array_type )
54+ (array.get $array_type (global.get $g_array ) (i32.const 1 ))
55+ )
56+ (i32.const 1 )
57+ )
58+ )
59+ (i32.const 0 )
60+ )
61+ ))
62+ )
63+ )
0 commit comments