a099172ac285b45eac270792f8acc87122dbfd53
[platform/framework/web/lwnode.git] /
1 ;; Functions
2
3 (module (func) (export "a" (func 0)))
4 (module (func) (export "a" (func 0)) (export "b" (func 0)))
5 (module (func) (func) (export "a" (func 0)) (export "b" (func 1)))
6
7 (module (func (export "a")))
8 (module (func (export "a") (export "b") (export "c")))
9 (module (func (export "a") (export "b") (param i32)))
10 (module (func) (export "a" (func 0)))
11 (module (func $a (export "a")))
12 (module (func $a) (export "a" (func $a)))
13 (module (export "a" (func 0)) (func))
14 (module (export "a" (func $a)) (func $a))
15
16 (module $Func
17   (export "e" (func $f))
18   (func $f (param $n i32) (result i32)
19     (return (i32.add (local.get $n) (i32.const 1)))
20   )
21 )
22 (assert_return (invoke "e" (i32.const 42)) (i32.const 43))
23 (assert_return (invoke $Func "e" (i32.const 42)) (i32.const 43))
24 (module)
25 (module $Other1)
26 (assert_return (invoke $Func "e" (i32.const 42)) (i32.const 43))
27
28 (assert_invalid
29   (module (func) (export "a" (func 1)))
30   "unknown function"
31 )
32 (assert_invalid
33   (module (func) (export "a" (func 0)) (export "a" (func 0)))
34   "duplicate export name"
35 )
36 (assert_invalid
37   (module (func) (func) (export "a" (func 0)) (export "a" (func 1)))
38   "duplicate export name"
39 )
40 (assert_invalid
41   (module (func) (global i32 (i32.const 0)) (export "a" (func 0)) (export "a" (global 0)))
42   "duplicate export name"
43 )
44 (assert_invalid
45   (module (func) (table 0 funcref) (export "a" (func 0)) (export "a" (table 0)))
46   "duplicate export name"
47 )
48 (assert_invalid
49   (module (func) (memory 0) (export "a" (func 0)) (export "a" (memory 0)))
50   "duplicate export name"
51 )
52
53
54 ;; Globals
55
56 (module (global i32 (i32.const 0)) (export "a" (global 0)))
57 (module (global i32 (i32.const 0)) (export "a" (global 0)) (export "b" (global 0)))
58 (module (global i32 (i32.const 0)) (global i32 (i32.const 0)) (export "a" (global 0)) (export "b" (global 1)))
59
60 (module (global (export "a") i32 (i32.const 0)))
61 (module (global i32 (i32.const 0)) (export "a" (global 0)))
62 (module (global $a (export "a") i32 (i32.const 0)))
63 (module (global $a i32 (i32.const 0)) (export "a" (global $a)))
64 (module (export "a" (global 0)) (global i32 (i32.const 0)))
65 (module (export "a" (global $a)) (global $a i32 (i32.const 0)))
66
67 (module $Global
68   (export "e" (global $g))
69   (global $g i32 (i32.const 42))
70 )
71 (assert_return (get "e") (i32.const 42))
72 (assert_return (get $Global "e") (i32.const 42))
73 (module)
74 (module $Other2)
75 (assert_return (get $Global "e") (i32.const 42))
76
77 (assert_invalid
78   (module (global i32 (i32.const 0)) (export "a" (global 1)))
79   "unknown global"
80 )
81 (assert_invalid
82   (module (global i32 (i32.const 0)) (export "a" (global 0)) (export "a" (global 0)))
83   "duplicate export name"
84 )
85 (assert_invalid
86   (module (global i32 (i32.const 0)) (global i32 (i32.const 0)) (export "a" (global 0)) (export "a" (global 1)))
87   "duplicate export name"
88 )
89 (assert_invalid
90   (module (global i32 (i32.const 0)) (func) (export "a" (global 0)) (export "a" (func 0)))
91   "duplicate export name"
92 )
93 (assert_invalid
94   (module (global i32 (i32.const 0)) (table 0 funcref) (export "a" (global 0)) (export "a" (table 0)))
95   "duplicate export name"
96 )
97 (assert_invalid
98   (module (global i32 (i32.const 0)) (memory 0) (export "a" (global 0)) (export "a" (memory 0)))
99   "duplicate export name"
100 )
101
102
103 ;; Tables
104
105 (module (table 0 funcref) (export "a" (table 0)))
106 (module (table 0 funcref) (export "a" (table 0)) (export "b" (table 0)))
107 (module (table 0 funcref) (table 0 funcref) (export "a" (table 0)) (export "b" (table 1)))
108
109 (module (table (export "a") 0 funcref))
110 (module (table (export "a") 0 1 funcref))
111 (module (table 0 funcref) (export "a" (table 0)))
112 (module (table 0 1 funcref) (export "a" (table 0)))
113 (module (table $a (export "a") 0 funcref))
114 (module (table $a (export "a") 0 1 funcref))
115 (module (table $a 0 funcref) (export "a" (table $a)))
116 (module (table $a 0 1 funcref) (export "a" (table $a)))
117 (module (export "a" (table 0)) (table 0 funcref))
118 (module (export "a" (table 0)) (table 0 1 funcref))
119 (module (export "a" (table $a)) (table $a 0 funcref))
120 (module (export "a" (table $a)) (table $a 0 1 funcref))
121
122 (; TODO: access table ;)
123
124 (assert_invalid
125   (module (table 0 funcref) (export "a" (table 1)))
126   "unknown table"
127 )
128 (assert_invalid
129   (module (table 0 funcref) (export "a" (table 0)) (export "a" (table 0)))
130   "duplicate export name"
131 )
132 (assert_invalid
133   (module (table 0 funcref) (table 0 funcref) (export "a" (table 0)) (export "a" (table 1)))
134   "duplicate export name"
135 )
136 (assert_invalid
137   (module (table 0 funcref) (func) (export "a" (table 0)) (export "a" (func 0)))
138   "duplicate export name"
139 )
140 (assert_invalid
141   (module (table 0 funcref) (global i32 (i32.const 0)) (export "a" (table 0)) (export "a" (global 0)))
142   "duplicate export name"
143 )
144 (assert_invalid
145   (module (table 0 funcref) (memory 0) (export "a" (table 0)) (export "a" (memory 0)))
146   "duplicate export name"
147 )
148
149
150 ;; Memories
151
152 (module (memory 0) (export "a" (memory 0)))
153 (module (memory 0) (export "a" (memory 0)) (export "b" (memory 0)))
154 ;; No multiple memories yet.
155 ;; (module (memory 0) (memory 0) (export "a" (memory 0)) (export "b" (memory 1)))
156
157 (module (memory (export "a") 0))
158 (module (memory (export "a") 0 1))
159 (module (memory 0) (export "a" (memory 0)))
160 (module (memory 0 1) (export "a" (memory 0)))
161 (module (memory $a (export "a") 0))
162 (module (memory $a (export "a") 0 1))
163 (module (memory $a 0) (export "a" (memory $a)))
164 (module (memory $a 0 1) (export "a" (memory $a)))
165 (module (export "a" (memory 0)) (memory 0))
166 (module (export "a" (memory 0)) (memory 0 1))
167 (module (export "a" (memory $a)) (memory $a 0))
168 (module (export "a" (memory $a)) (memory $a 0 1))
169
170 (; TODO: access memory ;)
171
172 (assert_invalid
173   (module (memory 0) (export "a" (memory 1)))
174   "unknown memory"
175 )
176 (assert_invalid
177   (module (memory 0) (export "a" (memory 0)) (export "a" (memory 0)))
178   "duplicate export name"
179 )
180 ;; No multiple memories yet.
181 ;; (assert_invalid
182 ;;   (module (memory 0) (memory 0) (export "a" (memory 0)) (export "a" (memory 1)))
183 ;;   "duplicate export name"
184 ;; )
185 (assert_invalid
186   (module (memory 0) (func) (export "a" (memory 0)) (export "a" (func 0)))
187   "duplicate export name"
188 )
189 (assert_invalid
190   (module (memory 0) (global i32 (i32.const 0)) (export "a" (memory 0)) (export "a" (global 0)))
191   "duplicate export name"
192 )
193 (assert_invalid
194   (module (memory 0) (table 0 funcref) (export "a" (memory 0)) (export "a" (table 0)))
195   "duplicate export name"
196 )