90f86ac17e82469ec3f0353bdeb24f68aa7bf986
[platform/framework/web/lwnode.git] /
1 ;;
2 ;; Generated by ../meta/generate_table_init.js
3 ;;
4
5 (module
6   (func (export "ef0") (result i32) (i32.const 0))
7   (func (export "ef1") (result i32) (i32.const 1))
8   (func (export "ef2") (result i32) (i32.const 2))
9   (func (export "ef3") (result i32) (i32.const 3))
10   (func (export "ef4") (result i32) (i32.const 4))
11 )
12 (register "a")
13
14 (module
15   (type (func (result i32)))  ;; type #0
16   (import "a" "ef0" (func (result i32)))    ;; index 0
17   (import "a" "ef1" (func (result i32)))
18   (import "a" "ef2" (func (result i32)))
19   (import "a" "ef3" (func (result i32)))
20   (import "a" "ef4" (func (result i32)))    ;; index 4
21   (table 30 30 funcref)
22   (elem (i32.const 2) 3 1 4 1)
23   (elem funcref
24     (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
25   (elem (i32.const 12) 7 5 2 3 6)
26   (elem funcref
27     (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
28   (func (result i32) (i32.const 5))  ;; index 5
29   (func (result i32) (i32.const 6))
30   (func (result i32) (i32.const 7))
31   (func (result i32) (i32.const 8))
32   (func (result i32) (i32.const 9))  ;; index 9
33   (func (export "test")
34     (table.init 1 (i32.const 7) (i32.const 0) (i32.const 4)))
35   (func (export "check") (param i32) (result i32)
36     (call_indirect (type 0) (local.get 0)))
37 )
38
39 (invoke "test")
40 (assert_trap (invoke "check" (i32.const 0)) "uninitialized element")
41 (assert_trap (invoke "check" (i32.const 1)) "uninitialized element")
42 (assert_return (invoke "check" (i32.const 2)) (i32.const 3))
43 (assert_return (invoke "check" (i32.const 3)) (i32.const 1))
44 (assert_return (invoke "check" (i32.const 4)) (i32.const 4))
45 (assert_return (invoke "check" (i32.const 5)) (i32.const 1))
46 (assert_trap (invoke "check" (i32.const 6)) "uninitialized element")
47 (assert_return (invoke "check" (i32.const 7)) (i32.const 2))
48 (assert_return (invoke "check" (i32.const 8)) (i32.const 7))
49 (assert_return (invoke "check" (i32.const 9)) (i32.const 1))
50 (assert_return (invoke "check" (i32.const 10)) (i32.const 8))
51 (assert_trap (invoke "check" (i32.const 11)) "uninitialized element")
52 (assert_return (invoke "check" (i32.const 12)) (i32.const 7))
53 (assert_return (invoke "check" (i32.const 13)) (i32.const 5))
54 (assert_return (invoke "check" (i32.const 14)) (i32.const 2))
55 (assert_return (invoke "check" (i32.const 15)) (i32.const 3))
56 (assert_return (invoke "check" (i32.const 16)) (i32.const 6))
57 (assert_trap (invoke "check" (i32.const 17)) "uninitialized element")
58 (assert_trap (invoke "check" (i32.const 18)) "uninitialized element")
59 (assert_trap (invoke "check" (i32.const 19)) "uninitialized element")
60 (assert_trap (invoke "check" (i32.const 20)) "uninitialized element")
61 (assert_trap (invoke "check" (i32.const 21)) "uninitialized element")
62 (assert_trap (invoke "check" (i32.const 22)) "uninitialized element")
63 (assert_trap (invoke "check" (i32.const 23)) "uninitialized element")
64 (assert_trap (invoke "check" (i32.const 24)) "uninitialized element")
65 (assert_trap (invoke "check" (i32.const 25)) "uninitialized element")
66 (assert_trap (invoke "check" (i32.const 26)) "uninitialized element")
67 (assert_trap (invoke "check" (i32.const 27)) "uninitialized element")
68 (assert_trap (invoke "check" (i32.const 28)) "uninitialized element")
69 (assert_trap (invoke "check" (i32.const 29)) "uninitialized element")
70
71 (module
72   (type (func (result i32)))  ;; type #0
73   (import "a" "ef0" (func (result i32)))    ;; index 0
74   (import "a" "ef1" (func (result i32)))
75   (import "a" "ef2" (func (result i32)))
76   (import "a" "ef3" (func (result i32)))
77   (import "a" "ef4" (func (result i32)))    ;; index 4
78   (table 30 30 funcref)
79   (elem (i32.const 2) 3 1 4 1)
80   (elem funcref
81     (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
82   (elem (i32.const 12) 7 5 2 3 6)
83   (elem funcref
84     (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
85   (func (result i32) (i32.const 5))  ;; index 5
86   (func (result i32) (i32.const 6))
87   (func (result i32) (i32.const 7))
88   (func (result i32) (i32.const 8))
89   (func (result i32) (i32.const 9))  ;; index 9
90   (func (export "test")
91     (table.init 3 (i32.const 15) (i32.const 1) (i32.const 3)))
92   (func (export "check") (param i32) (result i32)
93     (call_indirect (type 0) (local.get 0)))
94 )
95
96 (invoke "test")
97 (assert_trap (invoke "check" (i32.const 0)) "uninitialized element")
98 (assert_trap (invoke "check" (i32.const 1)) "uninitialized element")
99 (assert_return (invoke "check" (i32.const 2)) (i32.const 3))
100 (assert_return (invoke "check" (i32.const 3)) (i32.const 1))
101 (assert_return (invoke "check" (i32.const 4)) (i32.const 4))
102 (assert_return (invoke "check" (i32.const 5)) (i32.const 1))
103 (assert_trap (invoke "check" (i32.const 6)) "uninitialized element")
104 (assert_trap (invoke "check" (i32.const 7)) "uninitialized element")
105 (assert_trap (invoke "check" (i32.const 8)) "uninitialized element")
106 (assert_trap (invoke "check" (i32.const 9)) "uninitialized element")
107 (assert_trap (invoke "check" (i32.const 10)) "uninitialized element")
108 (assert_trap (invoke "check" (i32.const 11)) "uninitialized element")
109 (assert_return (invoke "check" (i32.const 12)) (i32.const 7))
110 (assert_return (invoke "check" (i32.const 13)) (i32.const 5))
111 (assert_return (invoke "check" (i32.const 14)) (i32.const 2))
112 (assert_return (invoke "check" (i32.const 15)) (i32.const 9))
113 (assert_return (invoke "check" (i32.const 16)) (i32.const 2))
114 (assert_return (invoke "check" (i32.const 17)) (i32.const 7))
115 (assert_trap (invoke "check" (i32.const 18)) "uninitialized element")
116 (assert_trap (invoke "check" (i32.const 19)) "uninitialized element")
117 (assert_trap (invoke "check" (i32.const 20)) "uninitialized element")
118 (assert_trap (invoke "check" (i32.const 21)) "uninitialized element")
119 (assert_trap (invoke "check" (i32.const 22)) "uninitialized element")
120 (assert_trap (invoke "check" (i32.const 23)) "uninitialized element")
121 (assert_trap (invoke "check" (i32.const 24)) "uninitialized element")
122 (assert_trap (invoke "check" (i32.const 25)) "uninitialized element")
123 (assert_trap (invoke "check" (i32.const 26)) "uninitialized element")
124 (assert_trap (invoke "check" (i32.const 27)) "uninitialized element")
125 (assert_trap (invoke "check" (i32.const 28)) "uninitialized element")
126 (assert_trap (invoke "check" (i32.const 29)) "uninitialized element")
127
128 (module
129   (type (func (result i32)))  ;; type #0
130   (import "a" "ef0" (func (result i32)))    ;; index 0
131   (import "a" "ef1" (func (result i32)))
132   (import "a" "ef2" (func (result i32)))
133   (import "a" "ef3" (func (result i32)))
134   (import "a" "ef4" (func (result i32)))    ;; index 4
135   (table 30 30 funcref)
136   (elem (i32.const 2) 3 1 4 1)
137   (elem funcref
138     (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
139   (elem (i32.const 12) 7 5 2 3 6)
140   (elem funcref
141     (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
142   (func (result i32) (i32.const 5))  ;; index 5
143   (func (result i32) (i32.const 6))
144   (func (result i32) (i32.const 7))
145   (func (result i32) (i32.const 8))
146   (func (result i32) (i32.const 9))  ;; index 9
147   (func (export "test")
148     (table.init 1 (i32.const 7) (i32.const 0) (i32.const 4))
149     (elem.drop 1)
150     (table.init 3 (i32.const 15) (i32.const 1) (i32.const 3))
151     (elem.drop 3)
152     (table.copy (i32.const 20) (i32.const 15) (i32.const 5))
153     (table.copy (i32.const 21) (i32.const 29) (i32.const 1))
154     (table.copy (i32.const 24) (i32.const 10) (i32.const 1))
155     (table.copy (i32.const 13) (i32.const 11) (i32.const 4))
156     (table.copy (i32.const 19) (i32.const 20) (i32.const 5)))
157   (func (export "check") (param i32) (result i32)
158     (call_indirect (type 0) (local.get 0)))
159 )
160
161 (invoke "test")
162 (assert_trap (invoke "check" (i32.const 0)) "uninitialized element")
163 (assert_trap (invoke "check" (i32.const 1)) "uninitialized element")
164 (assert_return (invoke "check" (i32.const 2)) (i32.const 3))
165 (assert_return (invoke "check" (i32.const 3)) (i32.const 1))
166 (assert_return (invoke "check" (i32.const 4)) (i32.const 4))
167 (assert_return (invoke "check" (i32.const 5)) (i32.const 1))
168 (assert_trap (invoke "check" (i32.const 6)) "uninitialized element")
169 (assert_return (invoke "check" (i32.const 7)) (i32.const 2))
170 (assert_return (invoke "check" (i32.const 8)) (i32.const 7))
171 (assert_return (invoke "check" (i32.const 9)) (i32.const 1))
172 (assert_return (invoke "check" (i32.const 10)) (i32.const 8))
173 (assert_trap (invoke "check" (i32.const 11)) "uninitialized element")
174 (assert_return (invoke "check" (i32.const 12)) (i32.const 7))
175 (assert_trap (invoke "check" (i32.const 13)) "uninitialized element")
176 (assert_return (invoke "check" (i32.const 14)) (i32.const 7))
177 (assert_return (invoke "check" (i32.const 15)) (i32.const 5))
178 (assert_return (invoke "check" (i32.const 16)) (i32.const 2))
179 (assert_return (invoke "check" (i32.const 17)) (i32.const 7))
180 (assert_trap (invoke "check" (i32.const 18)) "uninitialized element")
181 (assert_return (invoke "check" (i32.const 19)) (i32.const 9))
182 (assert_trap (invoke "check" (i32.const 20)) "uninitialized element")
183 (assert_return (invoke "check" (i32.const 21)) (i32.const 7))
184 (assert_trap (invoke "check" (i32.const 22)) "uninitialized element")
185 (assert_return (invoke "check" (i32.const 23)) (i32.const 8))
186 (assert_return (invoke "check" (i32.const 24)) (i32.const 8))
187 (assert_trap (invoke "check" (i32.const 25)) "uninitialized element")
188 (assert_trap (invoke "check" (i32.const 26)) "uninitialized element")
189 (assert_trap (invoke "check" (i32.const 27)) "uninitialized element")
190 (assert_trap (invoke "check" (i32.const 28)) "uninitialized element")
191 (assert_trap (invoke "check" (i32.const 29)) "uninitialized element")
192 (assert_invalid
193   (module
194     (func (export "test")
195       (elem.drop 0)))
196   "unknown elem segment 0")
197
198 (assert_invalid
199   (module
200     (func (export "test")
201       (table.init 0 (i32.const 12) (i32.const 1) (i32.const 1))))
202   "unknown table 0")
203
204 (assert_invalid
205   (module
206     (elem funcref (ref.func 0))
207     (func (result i32) (i32.const 0))
208     (func (export "test")
209       (elem.drop 4)))
210   "unknown elem segment 4")
211
212 (assert_invalid
213   (module
214     (elem funcref (ref.func 0))
215     (func (result i32) (i32.const 0))
216     (func (export "test")
217       (table.init 4 (i32.const 12) (i32.const 1) (i32.const 1))))
218   "unknown table 0")
219
220
221 (module
222   (table 30 30 funcref)
223   (elem (i32.const 2) 3 1 4 1)
224   (elem funcref
225     (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
226   (elem (i32.const 12) 7 5 2 3 6)
227   (elem funcref
228     (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
229   (func (result i32) (i32.const 0))
230   (func (result i32) (i32.const 1))
231   (func (result i32) (i32.const 2))
232   (func (result i32) (i32.const 3))
233   (func (result i32) (i32.const 4))
234   (func (result i32) (i32.const 5))
235   (func (result i32) (i32.const 6))
236   (func (result i32) (i32.const 7))
237   (func (result i32) (i32.const 8))
238   (func (result i32) (i32.const 9))
239   (func (export "test")
240     (elem.drop 2)
241     ))
242 (invoke "test")
243
244 (module
245   (table 30 30 funcref)
246   (elem (i32.const 2) 3 1 4 1)
247   (elem funcref
248     (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
249   (elem (i32.const 12) 7 5 2 3 6)
250   (elem funcref
251     (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
252   (func (result i32) (i32.const 0))
253   (func (result i32) (i32.const 1))
254   (func (result i32) (i32.const 2))
255   (func (result i32) (i32.const 3))
256   (func (result i32) (i32.const 4))
257   (func (result i32) (i32.const 5))
258   (func (result i32) (i32.const 6))
259   (func (result i32) (i32.const 7))
260   (func (result i32) (i32.const 8))
261   (func (result i32) (i32.const 9))
262   (func (export "test")
263     (table.init 2 (i32.const 12) (i32.const 1) (i32.const 1))
264     ))
265 (assert_trap (invoke "test") "out of bounds")
266
267 (module
268   (table 30 30 funcref)
269   (elem (i32.const 2) 3 1 4 1)
270   (elem funcref
271     (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
272   (elem (i32.const 12) 7 5 2 3 6)
273   (elem funcref
274     (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
275   (func (result i32) (i32.const 0))
276   (func (result i32) (i32.const 1))
277   (func (result i32) (i32.const 2))
278   (func (result i32) (i32.const 3))
279   (func (result i32) (i32.const 4))
280   (func (result i32) (i32.const 5))
281   (func (result i32) (i32.const 6))
282   (func (result i32) (i32.const 7))
283   (func (result i32) (i32.const 8))
284   (func (result i32) (i32.const 9))
285   (func (export "test")
286     (table.init 1 (i32.const 12) (i32.const 1) (i32.const 1))
287     (table.init 1 (i32.const 21) (i32.const 1) (i32.const 1))))
288 (invoke "test")
289
290 (module
291   (table 30 30 funcref)
292   (elem (i32.const 2) 3 1 4 1)
293   (elem funcref
294     (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
295   (elem (i32.const 12) 7 5 2 3 6)
296   (elem funcref
297     (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
298   (func (result i32) (i32.const 0))
299   (func (result i32) (i32.const 1))
300   (func (result i32) (i32.const 2))
301   (func (result i32) (i32.const 3))
302   (func (result i32) (i32.const 4))
303   (func (result i32) (i32.const 5))
304   (func (result i32) (i32.const 6))
305   (func (result i32) (i32.const 7))
306   (func (result i32) (i32.const 8))
307   (func (result i32) (i32.const 9))
308   (func (export "test")
309     (elem.drop 1)
310     (elem.drop 1)))
311 (invoke "test")
312
313 (module
314   (table 30 30 funcref)
315   (elem (i32.const 2) 3 1 4 1)
316   (elem funcref
317     (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
318   (elem (i32.const 12) 7 5 2 3 6)
319   (elem funcref
320     (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
321   (func (result i32) (i32.const 0))
322   (func (result i32) (i32.const 1))
323   (func (result i32) (i32.const 2))
324   (func (result i32) (i32.const 3))
325   (func (result i32) (i32.const 4))
326   (func (result i32) (i32.const 5))
327   (func (result i32) (i32.const 6))
328   (func (result i32) (i32.const 7))
329   (func (result i32) (i32.const 8))
330   (func (result i32) (i32.const 9))
331   (func (export "test")
332     (elem.drop 1)
333     (table.init 1 (i32.const 12) (i32.const 1) (i32.const 1))))
334 (assert_trap (invoke "test") "out of bounds")
335
336 (module
337   (table 30 30 funcref)
338   (elem (i32.const 2) 3 1 4 1)
339   (elem funcref
340     (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
341   (elem (i32.const 12) 7 5 2 3 6)
342   (elem funcref
343     (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
344   (func (result i32) (i32.const 0))
345   (func (result i32) (i32.const 1))
346   (func (result i32) (i32.const 2))
347   (func (result i32) (i32.const 3))
348   (func (result i32) (i32.const 4))
349   (func (result i32) (i32.const 5))
350   (func (result i32) (i32.const 6))
351   (func (result i32) (i32.const 7))
352   (func (result i32) (i32.const 8))
353   (func (result i32) (i32.const 9))
354   (func (export "test")
355     (table.init 1 (i32.const 12) (i32.const 0) (i32.const 5))
356     ))
357 (assert_trap (invoke "test") "out of bounds")
358
359 (module
360   (table 30 30 funcref)
361   (elem (i32.const 2) 3 1 4 1)
362   (elem funcref
363     (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
364   (elem (i32.const 12) 7 5 2 3 6)
365   (elem funcref
366     (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
367   (func (result i32) (i32.const 0))
368   (func (result i32) (i32.const 1))
369   (func (result i32) (i32.const 2))
370   (func (result i32) (i32.const 3))
371   (func (result i32) (i32.const 4))
372   (func (result i32) (i32.const 5))
373   (func (result i32) (i32.const 6))
374   (func (result i32) (i32.const 7))
375   (func (result i32) (i32.const 8))
376   (func (result i32) (i32.const 9))
377   (func (export "test")
378     (table.init 1 (i32.const 12) (i32.const 2) (i32.const 3))
379     ))
380 (assert_trap (invoke "test") "out of bounds")
381
382 (module
383   (table 30 30 funcref)
384   (elem (i32.const 2) 3 1 4 1)
385   (elem funcref
386     (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
387   (elem (i32.const 12) 7 5 2 3 6)
388   (elem funcref
389     (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
390   (func (result i32) (i32.const 0))
391   (func (result i32) (i32.const 1))
392   (func (result i32) (i32.const 2))
393   (func (result i32) (i32.const 3))
394   (func (result i32) (i32.const 4))
395   (func (result i32) (i32.const 5))
396   (func (result i32) (i32.const 6))
397   (func (result i32) (i32.const 7))
398   (func (result i32) (i32.const 8))
399   (func (result i32) (i32.const 9))
400   (func (export "test")
401     (table.init 1 (i32.const 28) (i32.const 1) (i32.const 3))
402     ))
403 (assert_trap (invoke "test") "out of bounds")
404
405 (module
406   (table 30 30 funcref)
407   (elem (i32.const 2) 3 1 4 1)
408   (elem funcref
409     (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
410   (elem (i32.const 12) 7 5 2 3 6)
411   (elem funcref
412     (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
413   (func (result i32) (i32.const 0))
414   (func (result i32) (i32.const 1))
415   (func (result i32) (i32.const 2))
416   (func (result i32) (i32.const 3))
417   (func (result i32) (i32.const 4))
418   (func (result i32) (i32.const 5))
419   (func (result i32) (i32.const 6))
420   (func (result i32) (i32.const 7))
421   (func (result i32) (i32.const 8))
422   (func (result i32) (i32.const 9))
423   (func (export "test")
424     (table.init 1 (i32.const 12) (i32.const 4) (i32.const 0))
425     ))
426 (invoke "test")
427
428 (module
429   (table 30 30 funcref)
430   (elem (i32.const 2) 3 1 4 1)
431   (elem funcref
432     (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
433   (elem (i32.const 12) 7 5 2 3 6)
434   (elem funcref
435     (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
436   (func (result i32) (i32.const 0))
437   (func (result i32) (i32.const 1))
438   (func (result i32) (i32.const 2))
439   (func (result i32) (i32.const 3))
440   (func (result i32) (i32.const 4))
441   (func (result i32) (i32.const 5))
442   (func (result i32) (i32.const 6))
443   (func (result i32) (i32.const 7))
444   (func (result i32) (i32.const 8))
445   (func (result i32) (i32.const 9))
446   (func (export "test")
447     (table.init 1 (i32.const 12) (i32.const 5) (i32.const 0))
448     ))
449 (assert_trap (invoke "test") "out of bounds")
450
451 (module
452   (table 30 30 funcref)
453   (elem (i32.const 2) 3 1 4 1)
454   (elem funcref
455     (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
456   (elem (i32.const 12) 7 5 2 3 6)
457   (elem funcref
458     (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
459   (func (result i32) (i32.const 0))
460   (func (result i32) (i32.const 1))
461   (func (result i32) (i32.const 2))
462   (func (result i32) (i32.const 3))
463   (func (result i32) (i32.const 4))
464   (func (result i32) (i32.const 5))
465   (func (result i32) (i32.const 6))
466   (func (result i32) (i32.const 7))
467   (func (result i32) (i32.const 8))
468   (func (result i32) (i32.const 9))
469   (func (export "test")
470     (table.init 1 (i32.const 30) (i32.const 2) (i32.const 0))
471     ))
472 (invoke "test")
473
474 (module
475   (table 30 30 funcref)
476   (elem (i32.const 2) 3 1 4 1)
477   (elem funcref
478     (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
479   (elem (i32.const 12) 7 5 2 3 6)
480   (elem funcref
481     (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
482   (func (result i32) (i32.const 0))
483   (func (result i32) (i32.const 1))
484   (func (result i32) (i32.const 2))
485   (func (result i32) (i32.const 3))
486   (func (result i32) (i32.const 4))
487   (func (result i32) (i32.const 5))
488   (func (result i32) (i32.const 6))
489   (func (result i32) (i32.const 7))
490   (func (result i32) (i32.const 8))
491   (func (result i32) (i32.const 9))
492   (func (export "test")
493     (table.init 1 (i32.const 31) (i32.const 2) (i32.const 0))
494     ))
495 (assert_trap (invoke "test") "out of bounds")
496
497 (module
498   (table 30 30 funcref)
499   (elem (i32.const 2) 3 1 4 1)
500   (elem funcref
501     (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
502   (elem (i32.const 12) 7 5 2 3 6)
503   (elem funcref
504     (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
505   (func (result i32) (i32.const 0))
506   (func (result i32) (i32.const 1))
507   (func (result i32) (i32.const 2))
508   (func (result i32) (i32.const 3))
509   (func (result i32) (i32.const 4))
510   (func (result i32) (i32.const 5))
511   (func (result i32) (i32.const 6))
512   (func (result i32) (i32.const 7))
513   (func (result i32) (i32.const 8))
514   (func (result i32) (i32.const 9))
515   (func (export "test")
516     (table.init 1 (i32.const 30) (i32.const 4) (i32.const 0))
517     ))
518 (invoke "test")
519
520 (module
521   (table 30 30 funcref)
522   (elem (i32.const 2) 3 1 4 1)
523   (elem funcref
524     (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
525   (elem (i32.const 12) 7 5 2 3 6)
526   (elem funcref
527     (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
528   (func (result i32) (i32.const 0))
529   (func (result i32) (i32.const 1))
530   (func (result i32) (i32.const 2))
531   (func (result i32) (i32.const 3))
532   (func (result i32) (i32.const 4))
533   (func (result i32) (i32.const 5))
534   (func (result i32) (i32.const 6))
535   (func (result i32) (i32.const 7))
536   (func (result i32) (i32.const 8))
537   (func (result i32) (i32.const 9))
538   (func (export "test")
539     (table.init 1 (i32.const 31) (i32.const 5) (i32.const 0))
540     ))
541 (assert_trap (invoke "test") "out of bounds")
542
543 (assert_invalid
544   (module
545     (table 10 funcref)
546     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
547     (func $f0)
548     (func (export "test")
549       (table.init 0 (i32.const 1) (i32.const 1) (f32.const 1))))
550   "type mismatch")
551
552 (assert_invalid
553   (module
554     (table 10 funcref)
555     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
556     (func $f0)
557     (func (export "test")
558       (table.init 0 (i32.const 1) (i32.const 1) (i64.const 1))))
559   "type mismatch")
560
561 (assert_invalid
562   (module
563     (table 10 funcref)
564     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
565     (func $f0)
566     (func (export "test")
567       (table.init 0 (i32.const 1) (i32.const 1) (f64.const 1))))
568   "type mismatch")
569
570 (assert_invalid
571   (module
572     (table 10 funcref)
573     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
574     (func $f0)
575     (func (export "test")
576       (table.init 0 (i32.const 1) (f32.const 1) (i32.const 1))))
577   "type mismatch")
578
579 (assert_invalid
580   (module
581     (table 10 funcref)
582     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
583     (func $f0)
584     (func (export "test")
585       (table.init 0 (i32.const 1) (f32.const 1) (f32.const 1))))
586   "type mismatch")
587
588 (assert_invalid
589   (module
590     (table 10 funcref)
591     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
592     (func $f0)
593     (func (export "test")
594       (table.init 0 (i32.const 1) (f32.const 1) (i64.const 1))))
595   "type mismatch")
596
597 (assert_invalid
598   (module
599     (table 10 funcref)
600     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
601     (func $f0)
602     (func (export "test")
603       (table.init 0 (i32.const 1) (f32.const 1) (f64.const 1))))
604   "type mismatch")
605
606 (assert_invalid
607   (module
608     (table 10 funcref)
609     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
610     (func $f0)
611     (func (export "test")
612       (table.init 0 (i32.const 1) (i64.const 1) (i32.const 1))))
613   "type mismatch")
614
615 (assert_invalid
616   (module
617     (table 10 funcref)
618     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
619     (func $f0)
620     (func (export "test")
621       (table.init 0 (i32.const 1) (i64.const 1) (f32.const 1))))
622   "type mismatch")
623
624 (assert_invalid
625   (module
626     (table 10 funcref)
627     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
628     (func $f0)
629     (func (export "test")
630       (table.init 0 (i32.const 1) (i64.const 1) (i64.const 1))))
631   "type mismatch")
632
633 (assert_invalid
634   (module
635     (table 10 funcref)
636     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
637     (func $f0)
638     (func (export "test")
639       (table.init 0 (i32.const 1) (i64.const 1) (f64.const 1))))
640   "type mismatch")
641
642 (assert_invalid
643   (module
644     (table 10 funcref)
645     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
646     (func $f0)
647     (func (export "test")
648       (table.init 0 (i32.const 1) (f64.const 1) (i32.const 1))))
649   "type mismatch")
650
651 (assert_invalid
652   (module
653     (table 10 funcref)
654     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
655     (func $f0)
656     (func (export "test")
657       (table.init 0 (i32.const 1) (f64.const 1) (f32.const 1))))
658   "type mismatch")
659
660 (assert_invalid
661   (module
662     (table 10 funcref)
663     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
664     (func $f0)
665     (func (export "test")
666       (table.init 0 (i32.const 1) (f64.const 1) (i64.const 1))))
667   "type mismatch")
668
669 (assert_invalid
670   (module
671     (table 10 funcref)
672     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
673     (func $f0)
674     (func (export "test")
675       (table.init 0 (i32.const 1) (f64.const 1) (f64.const 1))))
676   "type mismatch")
677
678 (assert_invalid
679   (module
680     (table 10 funcref)
681     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
682     (func $f0)
683     (func (export "test")
684       (table.init 0 (f32.const 1) (i32.const 1) (i32.const 1))))
685   "type mismatch")
686
687 (assert_invalid
688   (module
689     (table 10 funcref)
690     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
691     (func $f0)
692     (func (export "test")
693       (table.init 0 (f32.const 1) (i32.const 1) (f32.const 1))))
694   "type mismatch")
695
696 (assert_invalid
697   (module
698     (table 10 funcref)
699     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
700     (func $f0)
701     (func (export "test")
702       (table.init 0 (f32.const 1) (i32.const 1) (i64.const 1))))
703   "type mismatch")
704
705 (assert_invalid
706   (module
707     (table 10 funcref)
708     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
709     (func $f0)
710     (func (export "test")
711       (table.init 0 (f32.const 1) (i32.const 1) (f64.const 1))))
712   "type mismatch")
713
714 (assert_invalid
715   (module
716     (table 10 funcref)
717     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
718     (func $f0)
719     (func (export "test")
720       (table.init 0 (f32.const 1) (f32.const 1) (i32.const 1))))
721   "type mismatch")
722
723 (assert_invalid
724   (module
725     (table 10 funcref)
726     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
727     (func $f0)
728     (func (export "test")
729       (table.init 0 (f32.const 1) (f32.const 1) (f32.const 1))))
730   "type mismatch")
731
732 (assert_invalid
733   (module
734     (table 10 funcref)
735     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
736     (func $f0)
737     (func (export "test")
738       (table.init 0 (f32.const 1) (f32.const 1) (i64.const 1))))
739   "type mismatch")
740
741 (assert_invalid
742   (module
743     (table 10 funcref)
744     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
745     (func $f0)
746     (func (export "test")
747       (table.init 0 (f32.const 1) (f32.const 1) (f64.const 1))))
748   "type mismatch")
749
750 (assert_invalid
751   (module
752     (table 10 funcref)
753     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
754     (func $f0)
755     (func (export "test")
756       (table.init 0 (f32.const 1) (i64.const 1) (i32.const 1))))
757   "type mismatch")
758
759 (assert_invalid
760   (module
761     (table 10 funcref)
762     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
763     (func $f0)
764     (func (export "test")
765       (table.init 0 (f32.const 1) (i64.const 1) (f32.const 1))))
766   "type mismatch")
767
768 (assert_invalid
769   (module
770     (table 10 funcref)
771     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
772     (func $f0)
773     (func (export "test")
774       (table.init 0 (f32.const 1) (i64.const 1) (i64.const 1))))
775   "type mismatch")
776
777 (assert_invalid
778   (module
779     (table 10 funcref)
780     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
781     (func $f0)
782     (func (export "test")
783       (table.init 0 (f32.const 1) (i64.const 1) (f64.const 1))))
784   "type mismatch")
785
786 (assert_invalid
787   (module
788     (table 10 funcref)
789     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
790     (func $f0)
791     (func (export "test")
792       (table.init 0 (f32.const 1) (f64.const 1) (i32.const 1))))
793   "type mismatch")
794
795 (assert_invalid
796   (module
797     (table 10 funcref)
798     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
799     (func $f0)
800     (func (export "test")
801       (table.init 0 (f32.const 1) (f64.const 1) (f32.const 1))))
802   "type mismatch")
803
804 (assert_invalid
805   (module
806     (table 10 funcref)
807     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
808     (func $f0)
809     (func (export "test")
810       (table.init 0 (f32.const 1) (f64.const 1) (i64.const 1))))
811   "type mismatch")
812
813 (assert_invalid
814   (module
815     (table 10 funcref)
816     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
817     (func $f0)
818     (func (export "test")
819       (table.init 0 (f32.const 1) (f64.const 1) (f64.const 1))))
820   "type mismatch")
821
822 (assert_invalid
823   (module
824     (table 10 funcref)
825     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
826     (func $f0)
827     (func (export "test")
828       (table.init 0 (i64.const 1) (i32.const 1) (i32.const 1))))
829   "type mismatch")
830
831 (assert_invalid
832   (module
833     (table 10 funcref)
834     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
835     (func $f0)
836     (func (export "test")
837       (table.init 0 (i64.const 1) (i32.const 1) (f32.const 1))))
838   "type mismatch")
839
840 (assert_invalid
841   (module
842     (table 10 funcref)
843     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
844     (func $f0)
845     (func (export "test")
846       (table.init 0 (i64.const 1) (i32.const 1) (i64.const 1))))
847   "type mismatch")
848
849 (assert_invalid
850   (module
851     (table 10 funcref)
852     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
853     (func $f0)
854     (func (export "test")
855       (table.init 0 (i64.const 1) (i32.const 1) (f64.const 1))))
856   "type mismatch")
857
858 (assert_invalid
859   (module
860     (table 10 funcref)
861     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
862     (func $f0)
863     (func (export "test")
864       (table.init 0 (i64.const 1) (f32.const 1) (i32.const 1))))
865   "type mismatch")
866
867 (assert_invalid
868   (module
869     (table 10 funcref)
870     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
871     (func $f0)
872     (func (export "test")
873       (table.init 0 (i64.const 1) (f32.const 1) (f32.const 1))))
874   "type mismatch")
875
876 (assert_invalid
877   (module
878     (table 10 funcref)
879     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
880     (func $f0)
881     (func (export "test")
882       (table.init 0 (i64.const 1) (f32.const 1) (i64.const 1))))
883   "type mismatch")
884
885 (assert_invalid
886   (module
887     (table 10 funcref)
888     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
889     (func $f0)
890     (func (export "test")
891       (table.init 0 (i64.const 1) (f32.const 1) (f64.const 1))))
892   "type mismatch")
893
894 (assert_invalid
895   (module
896     (table 10 funcref)
897     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
898     (func $f0)
899     (func (export "test")
900       (table.init 0 (i64.const 1) (i64.const 1) (i32.const 1))))
901   "type mismatch")
902
903 (assert_invalid
904   (module
905     (table 10 funcref)
906     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
907     (func $f0)
908     (func (export "test")
909       (table.init 0 (i64.const 1) (i64.const 1) (f32.const 1))))
910   "type mismatch")
911
912 (assert_invalid
913   (module
914     (table 10 funcref)
915     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
916     (func $f0)
917     (func (export "test")
918       (table.init 0 (i64.const 1) (i64.const 1) (i64.const 1))))
919   "type mismatch")
920
921 (assert_invalid
922   (module
923     (table 10 funcref)
924     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
925     (func $f0)
926     (func (export "test")
927       (table.init 0 (i64.const 1) (i64.const 1) (f64.const 1))))
928   "type mismatch")
929
930 (assert_invalid
931   (module
932     (table 10 funcref)
933     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
934     (func $f0)
935     (func (export "test")
936       (table.init 0 (i64.const 1) (f64.const 1) (i32.const 1))))
937   "type mismatch")
938
939 (assert_invalid
940   (module
941     (table 10 funcref)
942     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
943     (func $f0)
944     (func (export "test")
945       (table.init 0 (i64.const 1) (f64.const 1) (f32.const 1))))
946   "type mismatch")
947
948 (assert_invalid
949   (module
950     (table 10 funcref)
951     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
952     (func $f0)
953     (func (export "test")
954       (table.init 0 (i64.const 1) (f64.const 1) (i64.const 1))))
955   "type mismatch")
956
957 (assert_invalid
958   (module
959     (table 10 funcref)
960     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
961     (func $f0)
962     (func (export "test")
963       (table.init 0 (i64.const 1) (f64.const 1) (f64.const 1))))
964   "type mismatch")
965
966 (assert_invalid
967   (module
968     (table 10 funcref)
969     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
970     (func $f0)
971     (func (export "test")
972       (table.init 0 (f64.const 1) (i32.const 1) (i32.const 1))))
973   "type mismatch")
974
975 (assert_invalid
976   (module
977     (table 10 funcref)
978     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
979     (func $f0)
980     (func (export "test")
981       (table.init 0 (f64.const 1) (i32.const 1) (f32.const 1))))
982   "type mismatch")
983
984 (assert_invalid
985   (module
986     (table 10 funcref)
987     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
988     (func $f0)
989     (func (export "test")
990       (table.init 0 (f64.const 1) (i32.const 1) (i64.const 1))))
991   "type mismatch")
992
993 (assert_invalid
994   (module
995     (table 10 funcref)
996     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
997     (func $f0)
998     (func (export "test")
999       (table.init 0 (f64.const 1) (i32.const 1) (f64.const 1))))
1000   "type mismatch")
1001
1002 (assert_invalid
1003   (module
1004     (table 10 funcref)
1005     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1006     (func $f0)
1007     (func (export "test")
1008       (table.init 0 (f64.const 1) (f32.const 1) (i32.const 1))))
1009   "type mismatch")
1010
1011 (assert_invalid
1012   (module
1013     (table 10 funcref)
1014     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1015     (func $f0)
1016     (func (export "test")
1017       (table.init 0 (f64.const 1) (f32.const 1) (f32.const 1))))
1018   "type mismatch")
1019
1020 (assert_invalid
1021   (module
1022     (table 10 funcref)
1023     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1024     (func $f0)
1025     (func (export "test")
1026       (table.init 0 (f64.const 1) (f32.const 1) (i64.const 1))))
1027   "type mismatch")
1028
1029 (assert_invalid
1030   (module
1031     (table 10 funcref)
1032     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1033     (func $f0)
1034     (func (export "test")
1035       (table.init 0 (f64.const 1) (f32.const 1) (f64.const 1))))
1036   "type mismatch")
1037
1038 (assert_invalid
1039   (module
1040     (table 10 funcref)
1041     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1042     (func $f0)
1043     (func (export "test")
1044       (table.init 0 (f64.const 1) (i64.const 1) (i32.const 1))))
1045   "type mismatch")
1046
1047 (assert_invalid
1048   (module
1049     (table 10 funcref)
1050     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1051     (func $f0)
1052     (func (export "test")
1053       (table.init 0 (f64.const 1) (i64.const 1) (f32.const 1))))
1054   "type mismatch")
1055
1056 (assert_invalid
1057   (module
1058     (table 10 funcref)
1059     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1060     (func $f0)
1061     (func (export "test")
1062       (table.init 0 (f64.const 1) (i64.const 1) (i64.const 1))))
1063   "type mismatch")
1064
1065 (assert_invalid
1066   (module
1067     (table 10 funcref)
1068     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1069     (func $f0)
1070     (func (export "test")
1071       (table.init 0 (f64.const 1) (i64.const 1) (f64.const 1))))
1072   "type mismatch")
1073
1074 (assert_invalid
1075   (module
1076     (table 10 funcref)
1077     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1078     (func $f0)
1079     (func (export "test")
1080       (table.init 0 (f64.const 1) (f64.const 1) (i32.const 1))))
1081   "type mismatch")
1082
1083 (assert_invalid
1084   (module
1085     (table 10 funcref)
1086     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1087     (func $f0)
1088     (func (export "test")
1089       (table.init 0 (f64.const 1) (f64.const 1) (f32.const 1))))
1090   "type mismatch")
1091
1092 (assert_invalid
1093   (module
1094     (table 10 funcref)
1095     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1096     (func $f0)
1097     (func (export "test")
1098       (table.init 0 (f64.const 1) (f64.const 1) (i64.const 1))))
1099   "type mismatch")
1100
1101 (assert_invalid
1102   (module
1103     (table 10 funcref)
1104     (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1105     (func $f0)
1106     (func (export "test")
1107       (table.init 0 (f64.const 1) (f64.const 1) (f64.const 1))))
1108   "type mismatch")
1109
1110 (module
1111   (type (func (result i32)))
1112   (table 32 64 funcref)
1113   (elem funcref
1114     (ref.func $f0) (ref.func $f1) (ref.func $f2) (ref.func $f3)
1115     (ref.func $f4) (ref.func $f5) (ref.func $f6) (ref.func $f7)
1116     (ref.func $f8) (ref.func $f9) (ref.func $f10) (ref.func $f11)
1117     (ref.func $f12) (ref.func $f13) (ref.func $f14) (ref.func $f15))
1118   (func $f0 (export "f0") (result i32) (i32.const 0))
1119   (func $f1 (export "f1") (result i32) (i32.const 1))
1120   (func $f2 (export "f2") (result i32) (i32.const 2))
1121   (func $f3 (export "f3") (result i32) (i32.const 3))
1122   (func $f4 (export "f4") (result i32) (i32.const 4))
1123   (func $f5 (export "f5") (result i32) (i32.const 5))
1124   (func $f6 (export "f6") (result i32) (i32.const 6))
1125   (func $f7 (export "f7") (result i32) (i32.const 7))
1126   (func $f8 (export "f8") (result i32) (i32.const 8))
1127   (func $f9 (export "f9") (result i32) (i32.const 9))
1128   (func $f10 (export "f10") (result i32) (i32.const 10))
1129   (func $f11 (export "f11") (result i32) (i32.const 11))
1130   (func $f12 (export "f12") (result i32) (i32.const 12))
1131   (func $f13 (export "f13") (result i32) (i32.const 13))
1132   (func $f14 (export "f14") (result i32) (i32.const 14))
1133   (func $f15 (export "f15") (result i32) (i32.const 15))
1134   (func (export "test") (param $n i32) (result i32)
1135     (call_indirect (type 0) (local.get $n)))
1136   (func (export "run") (param $offs i32) (param $len i32)
1137     (table.init 0 (local.get $offs) (i32.const 0) (local.get $len))))
1138 (assert_trap (invoke "run" (i32.const 24) (i32.const 16)) "out of bounds")
1139 (assert_trap (invoke "test" (i32.const 0)) "uninitialized element")
1140 (assert_trap (invoke "test" (i32.const 1)) "uninitialized element")
1141 (assert_trap (invoke "test" (i32.const 2)) "uninitialized element")
1142 (assert_trap (invoke "test" (i32.const 3)) "uninitialized element")
1143 (assert_trap (invoke "test" (i32.const 4)) "uninitialized element")
1144 (assert_trap (invoke "test" (i32.const 5)) "uninitialized element")
1145 (assert_trap (invoke "test" (i32.const 6)) "uninitialized element")
1146 (assert_trap (invoke "test" (i32.const 7)) "uninitialized element")
1147 (assert_trap (invoke "test" (i32.const 8)) "uninitialized element")
1148 (assert_trap (invoke "test" (i32.const 9)) "uninitialized element")
1149 (assert_trap (invoke "test" (i32.const 10)) "uninitialized element")
1150 (assert_trap (invoke "test" (i32.const 11)) "uninitialized element")
1151 (assert_trap (invoke "test" (i32.const 12)) "uninitialized element")
1152 (assert_trap (invoke "test" (i32.const 13)) "uninitialized element")
1153 (assert_trap (invoke "test" (i32.const 14)) "uninitialized element")
1154 (assert_trap (invoke "test" (i32.const 15)) "uninitialized element")
1155 (assert_trap (invoke "test" (i32.const 16)) "uninitialized element")
1156 (assert_trap (invoke "test" (i32.const 17)) "uninitialized element")
1157 (assert_trap (invoke "test" (i32.const 18)) "uninitialized element")
1158 (assert_trap (invoke "test" (i32.const 19)) "uninitialized element")
1159 (assert_trap (invoke "test" (i32.const 20)) "uninitialized element")
1160 (assert_trap (invoke "test" (i32.const 21)) "uninitialized element")
1161 (assert_trap (invoke "test" (i32.const 22)) "uninitialized element")
1162 (assert_trap (invoke "test" (i32.const 23)) "uninitialized element")
1163 (assert_trap (invoke "test" (i32.const 24)) "uninitialized element")
1164 (assert_trap (invoke "test" (i32.const 25)) "uninitialized element")
1165 (assert_trap (invoke "test" (i32.const 26)) "uninitialized element")
1166 (assert_trap (invoke "test" (i32.const 27)) "uninitialized element")
1167 (assert_trap (invoke "test" (i32.const 28)) "uninitialized element")
1168 (assert_trap (invoke "test" (i32.const 29)) "uninitialized element")
1169 (assert_trap (invoke "test" (i32.const 30)) "uninitialized element")
1170 (assert_trap (invoke "test" (i32.const 31)) "uninitialized element")
1171
1172 (module
1173   (type (func (result i32)))
1174   (table 32 64 funcref)
1175   (elem funcref
1176     (ref.func $f0) (ref.func $f1) (ref.func $f2) (ref.func $f3)
1177     (ref.func $f4) (ref.func $f5) (ref.func $f6) (ref.func $f7)
1178     (ref.func $f8) (ref.func $f9) (ref.func $f10) (ref.func $f11)
1179     (ref.func $f12) (ref.func $f13) (ref.func $f14) (ref.func $f15))
1180   (func $f0 (export "f0") (result i32) (i32.const 0))
1181   (func $f1 (export "f1") (result i32) (i32.const 1))
1182   (func $f2 (export "f2") (result i32) (i32.const 2))
1183   (func $f3 (export "f3") (result i32) (i32.const 3))
1184   (func $f4 (export "f4") (result i32) (i32.const 4))
1185   (func $f5 (export "f5") (result i32) (i32.const 5))
1186   (func $f6 (export "f6") (result i32) (i32.const 6))
1187   (func $f7 (export "f7") (result i32) (i32.const 7))
1188   (func $f8 (export "f8") (result i32) (i32.const 8))
1189   (func $f9 (export "f9") (result i32) (i32.const 9))
1190   (func $f10 (export "f10") (result i32) (i32.const 10))
1191   (func $f11 (export "f11") (result i32) (i32.const 11))
1192   (func $f12 (export "f12") (result i32) (i32.const 12))
1193   (func $f13 (export "f13") (result i32) (i32.const 13))
1194   (func $f14 (export "f14") (result i32) (i32.const 14))
1195   (func $f15 (export "f15") (result i32) (i32.const 15))
1196   (func (export "test") (param $n i32) (result i32)
1197     (call_indirect (type 0) (local.get $n)))
1198   (func (export "run") (param $offs i32) (param $len i32)
1199     (table.init 0 (local.get $offs) (i32.const 0) (local.get $len))))
1200 (assert_trap (invoke "run" (i32.const 25) (i32.const 16)) "out of bounds")
1201 (assert_trap (invoke "test" (i32.const 0)) "uninitialized element")
1202 (assert_trap (invoke "test" (i32.const 1)) "uninitialized element")
1203 (assert_trap (invoke "test" (i32.const 2)) "uninitialized element")
1204 (assert_trap (invoke "test" (i32.const 3)) "uninitialized element")
1205 (assert_trap (invoke "test" (i32.const 4)) "uninitialized element")
1206 (assert_trap (invoke "test" (i32.const 5)) "uninitialized element")
1207 (assert_trap (invoke "test" (i32.const 6)) "uninitialized element")
1208 (assert_trap (invoke "test" (i32.const 7)) "uninitialized element")
1209 (assert_trap (invoke "test" (i32.const 8)) "uninitialized element")
1210 (assert_trap (invoke "test" (i32.const 9)) "uninitialized element")
1211 (assert_trap (invoke "test" (i32.const 10)) "uninitialized element")
1212 (assert_trap (invoke "test" (i32.const 11)) "uninitialized element")
1213 (assert_trap (invoke "test" (i32.const 12)) "uninitialized element")
1214 (assert_trap (invoke "test" (i32.const 13)) "uninitialized element")
1215 (assert_trap (invoke "test" (i32.const 14)) "uninitialized element")
1216 (assert_trap (invoke "test" (i32.const 15)) "uninitialized element")
1217 (assert_trap (invoke "test" (i32.const 16)) "uninitialized element")
1218 (assert_trap (invoke "test" (i32.const 17)) "uninitialized element")
1219 (assert_trap (invoke "test" (i32.const 18)) "uninitialized element")
1220 (assert_trap (invoke "test" (i32.const 19)) "uninitialized element")
1221 (assert_trap (invoke "test" (i32.const 20)) "uninitialized element")
1222 (assert_trap (invoke "test" (i32.const 21)) "uninitialized element")
1223 (assert_trap (invoke "test" (i32.const 22)) "uninitialized element")
1224 (assert_trap (invoke "test" (i32.const 23)) "uninitialized element")
1225 (assert_trap (invoke "test" (i32.const 24)) "uninitialized element")
1226 (assert_trap (invoke "test" (i32.const 25)) "uninitialized element")
1227 (assert_trap (invoke "test" (i32.const 26)) "uninitialized element")
1228 (assert_trap (invoke "test" (i32.const 27)) "uninitialized element")
1229 (assert_trap (invoke "test" (i32.const 28)) "uninitialized element")
1230 (assert_trap (invoke "test" (i32.const 29)) "uninitialized element")
1231 (assert_trap (invoke "test" (i32.const 30)) "uninitialized element")
1232 (assert_trap (invoke "test" (i32.const 31)) "uninitialized element")
1233
1234 (module
1235   (type (func (result i32)))
1236   (table 160 320 funcref)
1237   (elem funcref
1238     (ref.func $f0) (ref.func $f1) (ref.func $f2) (ref.func $f3)
1239     (ref.func $f4) (ref.func $f5) (ref.func $f6) (ref.func $f7)
1240     (ref.func $f8) (ref.func $f9) (ref.func $f10) (ref.func $f11)
1241     (ref.func $f12) (ref.func $f13) (ref.func $f14) (ref.func $f15))
1242   (func $f0 (export "f0") (result i32) (i32.const 0))
1243   (func $f1 (export "f1") (result i32) (i32.const 1))
1244   (func $f2 (export "f2") (result i32) (i32.const 2))
1245   (func $f3 (export "f3") (result i32) (i32.const 3))
1246   (func $f4 (export "f4") (result i32) (i32.const 4))
1247   (func $f5 (export "f5") (result i32) (i32.const 5))
1248   (func $f6 (export "f6") (result i32) (i32.const 6))
1249   (func $f7 (export "f7") (result i32) (i32.const 7))
1250   (func $f8 (export "f8") (result i32) (i32.const 8))
1251   (func $f9 (export "f9") (result i32) (i32.const 9))
1252   (func $f10 (export "f10") (result i32) (i32.const 10))
1253   (func $f11 (export "f11") (result i32) (i32.const 11))
1254   (func $f12 (export "f12") (result i32) (i32.const 12))
1255   (func $f13 (export "f13") (result i32) (i32.const 13))
1256   (func $f14 (export "f14") (result i32) (i32.const 14))
1257   (func $f15 (export "f15") (result i32) (i32.const 15))
1258   (func (export "test") (param $n i32) (result i32)
1259     (call_indirect (type 0) (local.get $n)))
1260   (func (export "run") (param $offs i32) (param $len i32)
1261     (table.init 0 (local.get $offs) (i32.const 0) (local.get $len))))
1262 (assert_trap (invoke "run" (i32.const 96) (i32.const 32)) "out of bounds")
1263 (assert_trap (invoke "test" (i32.const 0)) "uninitialized element")
1264 (assert_trap (invoke "test" (i32.const 1)) "uninitialized element")
1265 (assert_trap (invoke "test" (i32.const 2)) "uninitialized element")
1266 (assert_trap (invoke "test" (i32.const 3)) "uninitialized element")
1267 (assert_trap (invoke "test" (i32.const 4)) "uninitialized element")
1268 (assert_trap (invoke "test" (i32.const 5)) "uninitialized element")
1269 (assert_trap (invoke "test" (i32.const 6)) "uninitialized element")
1270 (assert_trap (invoke "test" (i32.const 7)) "uninitialized element")
1271 (assert_trap (invoke "test" (i32.const 8)) "uninitialized element")
1272 (assert_trap (invoke "test" (i32.const 9)) "uninitialized element")
1273 (assert_trap (invoke "test" (i32.const 10)) "uninitialized element")
1274 (assert_trap (invoke "test" (i32.const 11)) "uninitialized element")
1275 (assert_trap (invoke "test" (i32.const 12)) "uninitialized element")
1276 (assert_trap (invoke "test" (i32.const 13)) "uninitialized element")
1277 (assert_trap (invoke "test" (i32.const 14)) "uninitialized element")
1278 (assert_trap (invoke "test" (i32.const 15)) "uninitialized element")
1279 (assert_trap (invoke "test" (i32.const 16)) "uninitialized element")
1280 (assert_trap (invoke "test" (i32.const 17)) "uninitialized element")
1281 (assert_trap (invoke "test" (i32.const 18)) "uninitialized element")
1282 (assert_trap (invoke "test" (i32.const 19)) "uninitialized element")
1283 (assert_trap (invoke "test" (i32.const 20)) "uninitialized element")
1284 (assert_trap (invoke "test" (i32.const 21)) "uninitialized element")
1285 (assert_trap (invoke "test" (i32.const 22)) "uninitialized element")
1286 (assert_trap (invoke "test" (i32.const 23)) "uninitialized element")
1287 (assert_trap (invoke "test" (i32.const 24)) "uninitialized element")
1288 (assert_trap (invoke "test" (i32.const 25)) "uninitialized element")
1289 (assert_trap (invoke "test" (i32.const 26)) "uninitialized element")
1290 (assert_trap (invoke "test" (i32.const 27)) "uninitialized element")
1291 (assert_trap (invoke "test" (i32.const 28)) "uninitialized element")
1292 (assert_trap (invoke "test" (i32.const 29)) "uninitialized element")
1293 (assert_trap (invoke "test" (i32.const 30)) "uninitialized element")
1294 (assert_trap (invoke "test" (i32.const 31)) "uninitialized element")
1295 (assert_trap (invoke "test" (i32.const 32)) "uninitialized element")
1296 (assert_trap (invoke "test" (i32.const 33)) "uninitialized element")
1297 (assert_trap (invoke "test" (i32.const 34)) "uninitialized element")
1298 (assert_trap (invoke "test" (i32.const 35)) "uninitialized element")
1299 (assert_trap (invoke "test" (i32.const 36)) "uninitialized element")
1300 (assert_trap (invoke "test" (i32.const 37)) "uninitialized element")
1301 (assert_trap (invoke "test" (i32.const 38)) "uninitialized element")
1302 (assert_trap (invoke "test" (i32.const 39)) "uninitialized element")
1303 (assert_trap (invoke "test" (i32.const 40)) "uninitialized element")
1304 (assert_trap (invoke "test" (i32.const 41)) "uninitialized element")
1305 (assert_trap (invoke "test" (i32.const 42)) "uninitialized element")
1306 (assert_trap (invoke "test" (i32.const 43)) "uninitialized element")
1307 (assert_trap (invoke "test" (i32.const 44)) "uninitialized element")
1308 (assert_trap (invoke "test" (i32.const 45)) "uninitialized element")
1309 (assert_trap (invoke "test" (i32.const 46)) "uninitialized element")
1310 (assert_trap (invoke "test" (i32.const 47)) "uninitialized element")
1311 (assert_trap (invoke "test" (i32.const 48)) "uninitialized element")
1312 (assert_trap (invoke "test" (i32.const 49)) "uninitialized element")
1313 (assert_trap (invoke "test" (i32.const 50)) "uninitialized element")
1314 (assert_trap (invoke "test" (i32.const 51)) "uninitialized element")
1315 (assert_trap (invoke "test" (i32.const 52)) "uninitialized element")
1316 (assert_trap (invoke "test" (i32.const 53)) "uninitialized element")
1317 (assert_trap (invoke "test" (i32.const 54)) "uninitialized element")
1318 (assert_trap (invoke "test" (i32.const 55)) "uninitialized element")
1319 (assert_trap (invoke "test" (i32.const 56)) "uninitialized element")
1320 (assert_trap (invoke "test" (i32.const 57)) "uninitialized element")
1321 (assert_trap (invoke "test" (i32.const 58)) "uninitialized element")
1322 (assert_trap (invoke "test" (i32.const 59)) "uninitialized element")
1323 (assert_trap (invoke "test" (i32.const 60)) "uninitialized element")
1324 (assert_trap (invoke "test" (i32.const 61)) "uninitialized element")
1325 (assert_trap (invoke "test" (i32.const 62)) "uninitialized element")
1326 (assert_trap (invoke "test" (i32.const 63)) "uninitialized element")
1327 (assert_trap (invoke "test" (i32.const 64)) "uninitialized element")
1328 (assert_trap (invoke "test" (i32.const 65)) "uninitialized element")
1329 (assert_trap (invoke "test" (i32.const 66)) "uninitialized element")
1330 (assert_trap (invoke "test" (i32.const 67)) "uninitialized element")
1331 (assert_trap (invoke "test" (i32.const 68)) "uninitialized element")
1332 (assert_trap (invoke "test" (i32.const 69)) "uninitialized element")
1333 (assert_trap (invoke "test" (i32.const 70)) "uninitialized element")
1334 (assert_trap (invoke "test" (i32.const 71)) "uninitialized element")
1335 (assert_trap (invoke "test" (i32.const 72)) "uninitialized element")
1336 (assert_trap (invoke "test" (i32.const 73)) "uninitialized element")
1337 (assert_trap (invoke "test" (i32.const 74)) "uninitialized element")
1338 (assert_trap (invoke "test" (i32.const 75)) "uninitialized element")
1339 (assert_trap (invoke "test" (i32.const 76)) "uninitialized element")
1340 (assert_trap (invoke "test" (i32.const 77)) "uninitialized element")
1341 (assert_trap (invoke "test" (i32.const 78)) "uninitialized element")
1342 (assert_trap (invoke "test" (i32.const 79)) "uninitialized element")
1343 (assert_trap (invoke "test" (i32.const 80)) "uninitialized element")
1344 (assert_trap (invoke "test" (i32.const 81)) "uninitialized element")
1345 (assert_trap (invoke "test" (i32.const 82)) "uninitialized element")
1346 (assert_trap (invoke "test" (i32.const 83)) "uninitialized element")
1347 (assert_trap (invoke "test" (i32.const 84)) "uninitialized element")
1348 (assert_trap (invoke "test" (i32.const 85)) "uninitialized element")
1349 (assert_trap (invoke "test" (i32.const 86)) "uninitialized element")
1350 (assert_trap (invoke "test" (i32.const 87)) "uninitialized element")
1351 (assert_trap (invoke "test" (i32.const 88)) "uninitialized element")
1352 (assert_trap (invoke "test" (i32.const 89)) "uninitialized element")
1353 (assert_trap (invoke "test" (i32.const 90)) "uninitialized element")
1354 (assert_trap (invoke "test" (i32.const 91)) "uninitialized element")
1355 (assert_trap (invoke "test" (i32.const 92)) "uninitialized element")
1356 (assert_trap (invoke "test" (i32.const 93)) "uninitialized element")
1357 (assert_trap (invoke "test" (i32.const 94)) "uninitialized element")
1358 (assert_trap (invoke "test" (i32.const 95)) "uninitialized element")
1359 (assert_trap (invoke "test" (i32.const 96)) "uninitialized element")
1360 (assert_trap (invoke "test" (i32.const 97)) "uninitialized element")
1361 (assert_trap (invoke "test" (i32.const 98)) "uninitialized element")
1362 (assert_trap (invoke "test" (i32.const 99)) "uninitialized element")
1363 (assert_trap (invoke "test" (i32.const 100)) "uninitialized element")
1364 (assert_trap (invoke "test" (i32.const 101)) "uninitialized element")
1365 (assert_trap (invoke "test" (i32.const 102)) "uninitialized element")
1366 (assert_trap (invoke "test" (i32.const 103)) "uninitialized element")
1367 (assert_trap (invoke "test" (i32.const 104)) "uninitialized element")
1368 (assert_trap (invoke "test" (i32.const 105)) "uninitialized element")
1369 (assert_trap (invoke "test" (i32.const 106)) "uninitialized element")
1370 (assert_trap (invoke "test" (i32.const 107)) "uninitialized element")
1371 (assert_trap (invoke "test" (i32.const 108)) "uninitialized element")
1372 (assert_trap (invoke "test" (i32.const 109)) "uninitialized element")
1373 (assert_trap (invoke "test" (i32.const 110)) "uninitialized element")
1374 (assert_trap (invoke "test" (i32.const 111)) "uninitialized element")
1375 (assert_trap (invoke "test" (i32.const 112)) "uninitialized element")
1376 (assert_trap (invoke "test" (i32.const 113)) "uninitialized element")
1377 (assert_trap (invoke "test" (i32.const 114)) "uninitialized element")
1378 (assert_trap (invoke "test" (i32.const 115)) "uninitialized element")
1379 (assert_trap (invoke "test" (i32.const 116)) "uninitialized element")
1380 (assert_trap (invoke "test" (i32.const 117)) "uninitialized element")
1381 (assert_trap (invoke "test" (i32.const 118)) "uninitialized element")
1382 (assert_trap (invoke "test" (i32.const 119)) "uninitialized element")
1383 (assert_trap (invoke "test" (i32.const 120)) "uninitialized element")
1384 (assert_trap (invoke "test" (i32.const 121)) "uninitialized element")
1385 (assert_trap (invoke "test" (i32.const 122)) "uninitialized element")
1386 (assert_trap (invoke "test" (i32.const 123)) "uninitialized element")
1387 (assert_trap (invoke "test" (i32.const 124)) "uninitialized element")
1388 (assert_trap (invoke "test" (i32.const 125)) "uninitialized element")
1389 (assert_trap (invoke "test" (i32.const 126)) "uninitialized element")
1390 (assert_trap (invoke "test" (i32.const 127)) "uninitialized element")
1391 (assert_trap (invoke "test" (i32.const 128)) "uninitialized element")
1392 (assert_trap (invoke "test" (i32.const 129)) "uninitialized element")
1393 (assert_trap (invoke "test" (i32.const 130)) "uninitialized element")
1394 (assert_trap (invoke "test" (i32.const 131)) "uninitialized element")
1395 (assert_trap (invoke "test" (i32.const 132)) "uninitialized element")
1396 (assert_trap (invoke "test" (i32.const 133)) "uninitialized element")
1397 (assert_trap (invoke "test" (i32.const 134)) "uninitialized element")
1398 (assert_trap (invoke "test" (i32.const 135)) "uninitialized element")
1399 (assert_trap (invoke "test" (i32.const 136)) "uninitialized element")
1400 (assert_trap (invoke "test" (i32.const 137)) "uninitialized element")
1401 (assert_trap (invoke "test" (i32.const 138)) "uninitialized element")
1402 (assert_trap (invoke "test" (i32.const 139)) "uninitialized element")
1403 (assert_trap (invoke "test" (i32.const 140)) "uninitialized element")
1404 (assert_trap (invoke "test" (i32.const 141)) "uninitialized element")
1405 (assert_trap (invoke "test" (i32.const 142)) "uninitialized element")
1406 (assert_trap (invoke "test" (i32.const 143)) "uninitialized element")
1407 (assert_trap (invoke "test" (i32.const 144)) "uninitialized element")
1408 (assert_trap (invoke "test" (i32.const 145)) "uninitialized element")
1409 (assert_trap (invoke "test" (i32.const 146)) "uninitialized element")
1410 (assert_trap (invoke "test" (i32.const 147)) "uninitialized element")
1411 (assert_trap (invoke "test" (i32.const 148)) "uninitialized element")
1412 (assert_trap (invoke "test" (i32.const 149)) "uninitialized element")
1413 (assert_trap (invoke "test" (i32.const 150)) "uninitialized element")
1414 (assert_trap (invoke "test" (i32.const 151)) "uninitialized element")
1415 (assert_trap (invoke "test" (i32.const 152)) "uninitialized element")
1416 (assert_trap (invoke "test" (i32.const 153)) "uninitialized element")
1417 (assert_trap (invoke "test" (i32.const 154)) "uninitialized element")
1418 (assert_trap (invoke "test" (i32.const 155)) "uninitialized element")
1419 (assert_trap (invoke "test" (i32.const 156)) "uninitialized element")
1420 (assert_trap (invoke "test" (i32.const 157)) "uninitialized element")
1421 (assert_trap (invoke "test" (i32.const 158)) "uninitialized element")
1422 (assert_trap (invoke "test" (i32.const 159)) "uninitialized element")
1423
1424 (module
1425   (type (func (result i32)))
1426   (table 160 320 funcref)
1427   (elem funcref
1428     (ref.func $f0) (ref.func $f1) (ref.func $f2) (ref.func $f3)
1429     (ref.func $f4) (ref.func $f5) (ref.func $f6) (ref.func $f7)
1430     (ref.func $f8) (ref.func $f9) (ref.func $f10) (ref.func $f11)
1431     (ref.func $f12) (ref.func $f13) (ref.func $f14) (ref.func $f15))
1432   (func $f0 (export "f0") (result i32) (i32.const 0))
1433   (func $f1 (export "f1") (result i32) (i32.const 1))
1434   (func $f2 (export "f2") (result i32) (i32.const 2))
1435   (func $f3 (export "f3") (result i32) (i32.const 3))
1436   (func $f4 (export "f4") (result i32) (i32.const 4))
1437   (func $f5 (export "f5") (result i32) (i32.const 5))
1438   (func $f6 (export "f6") (result i32) (i32.const 6))
1439   (func $f7 (export "f7") (result i32) (i32.const 7))
1440   (func $f8 (export "f8") (result i32) (i32.const 8))
1441   (func $f9 (export "f9") (result i32) (i32.const 9))
1442   (func $f10 (export "f10") (result i32) (i32.const 10))
1443   (func $f11 (export "f11") (result i32) (i32.const 11))
1444   (func $f12 (export "f12") (result i32) (i32.const 12))
1445   (func $f13 (export "f13") (result i32) (i32.const 13))
1446   (func $f14 (export "f14") (result i32) (i32.const 14))
1447   (func $f15 (export "f15") (result i32) (i32.const 15))
1448   (func (export "test") (param $n i32) (result i32)
1449     (call_indirect (type 0) (local.get $n)))
1450   (func (export "run") (param $offs i32) (param $len i32)
1451     (table.init 0 (local.get $offs) (i32.const 0) (local.get $len))))
1452 (assert_trap (invoke "run" (i32.const 97) (i32.const 31)) "out of bounds")
1453 (assert_trap (invoke "test" (i32.const 0)) "uninitialized element")
1454 (assert_trap (invoke "test" (i32.const 1)) "uninitialized element")
1455 (assert_trap (invoke "test" (i32.const 2)) "uninitialized element")
1456 (assert_trap (invoke "test" (i32.const 3)) "uninitialized element")
1457 (assert_trap (invoke "test" (i32.const 4)) "uninitialized element")
1458 (assert_trap (invoke "test" (i32.const 5)) "uninitialized element")
1459 (assert_trap (invoke "test" (i32.const 6)) "uninitialized element")
1460 (assert_trap (invoke "test" (i32.const 7)) "uninitialized element")
1461 (assert_trap (invoke "test" (i32.const 8)) "uninitialized element")
1462 (assert_trap (invoke "test" (i32.const 9)) "uninitialized element")
1463 (assert_trap (invoke "test" (i32.const 10)) "uninitialized element")
1464 (assert_trap (invoke "test" (i32.const 11)) "uninitialized element")
1465 (assert_trap (invoke "test" (i32.const 12)) "uninitialized element")
1466 (assert_trap (invoke "test" (i32.const 13)) "uninitialized element")
1467 (assert_trap (invoke "test" (i32.const 14)) "uninitialized element")
1468 (assert_trap (invoke "test" (i32.const 15)) "uninitialized element")
1469 (assert_trap (invoke "test" (i32.const 16)) "uninitialized element")
1470 (assert_trap (invoke "test" (i32.const 17)) "uninitialized element")
1471 (assert_trap (invoke "test" (i32.const 18)) "uninitialized element")
1472 (assert_trap (invoke "test" (i32.const 19)) "uninitialized element")
1473 (assert_trap (invoke "test" (i32.const 20)) "uninitialized element")
1474 (assert_trap (invoke "test" (i32.const 21)) "uninitialized element")
1475 (assert_trap (invoke "test" (i32.const 22)) "uninitialized element")
1476 (assert_trap (invoke "test" (i32.const 23)) "uninitialized element")
1477 (assert_trap (invoke "test" (i32.const 24)) "uninitialized element")
1478 (assert_trap (invoke "test" (i32.const 25)) "uninitialized element")
1479 (assert_trap (invoke "test" (i32.const 26)) "uninitialized element")
1480 (assert_trap (invoke "test" (i32.const 27)) "uninitialized element")
1481 (assert_trap (invoke "test" (i32.const 28)) "uninitialized element")
1482 (assert_trap (invoke "test" (i32.const 29)) "uninitialized element")
1483 (assert_trap (invoke "test" (i32.const 30)) "uninitialized element")
1484 (assert_trap (invoke "test" (i32.const 31)) "uninitialized element")
1485 (assert_trap (invoke "test" (i32.const 32)) "uninitialized element")
1486 (assert_trap (invoke "test" (i32.const 33)) "uninitialized element")
1487 (assert_trap (invoke "test" (i32.const 34)) "uninitialized element")
1488 (assert_trap (invoke "test" (i32.const 35)) "uninitialized element")
1489 (assert_trap (invoke "test" (i32.const 36)) "uninitialized element")
1490 (assert_trap (invoke "test" (i32.const 37)) "uninitialized element")
1491 (assert_trap (invoke "test" (i32.const 38)) "uninitialized element")
1492 (assert_trap (invoke "test" (i32.const 39)) "uninitialized element")
1493 (assert_trap (invoke "test" (i32.const 40)) "uninitialized element")
1494 (assert_trap (invoke "test" (i32.const 41)) "uninitialized element")
1495 (assert_trap (invoke "test" (i32.const 42)) "uninitialized element")
1496 (assert_trap (invoke "test" (i32.const 43)) "uninitialized element")
1497 (assert_trap (invoke "test" (i32.const 44)) "uninitialized element")
1498 (assert_trap (invoke "test" (i32.const 45)) "uninitialized element")
1499 (assert_trap (invoke "test" (i32.const 46)) "uninitialized element")
1500 (assert_trap (invoke "test" (i32.const 47)) "uninitialized element")
1501 (assert_trap (invoke "test" (i32.const 48)) "uninitialized element")
1502 (assert_trap (invoke "test" (i32.const 49)) "uninitialized element")
1503 (assert_trap (invoke "test" (i32.const 50)) "uninitialized element")
1504 (assert_trap (invoke "test" (i32.const 51)) "uninitialized element")
1505 (assert_trap (invoke "test" (i32.const 52)) "uninitialized element")
1506 (assert_trap (invoke "test" (i32.const 53)) "uninitialized element")
1507 (assert_trap (invoke "test" (i32.const 54)) "uninitialized element")
1508 (assert_trap (invoke "test" (i32.const 55)) "uninitialized element")
1509 (assert_trap (invoke "test" (i32.const 56)) "uninitialized element")
1510 (assert_trap (invoke "test" (i32.const 57)) "uninitialized element")
1511 (assert_trap (invoke "test" (i32.const 58)) "uninitialized element")
1512 (assert_trap (invoke "test" (i32.const 59)) "uninitialized element")
1513 (assert_trap (invoke "test" (i32.const 60)) "uninitialized element")
1514 (assert_trap (invoke "test" (i32.const 61)) "uninitialized element")
1515 (assert_trap (invoke "test" (i32.const 62)) "uninitialized element")
1516 (assert_trap (invoke "test" (i32.const 63)) "uninitialized element")
1517 (assert_trap (invoke "test" (i32.const 64)) "uninitialized element")
1518 (assert_trap (invoke "test" (i32.const 65)) "uninitialized element")
1519 (assert_trap (invoke "test" (i32.const 66)) "uninitialized element")
1520 (assert_trap (invoke "test" (i32.const 67)) "uninitialized element")
1521 (assert_trap (invoke "test" (i32.const 68)) "uninitialized element")
1522 (assert_trap (invoke "test" (i32.const 69)) "uninitialized element")
1523 (assert_trap (invoke "test" (i32.const 70)) "uninitialized element")
1524 (assert_trap (invoke "test" (i32.const 71)) "uninitialized element")
1525 (assert_trap (invoke "test" (i32.const 72)) "uninitialized element")
1526 (assert_trap (invoke "test" (i32.const 73)) "uninitialized element")
1527 (assert_trap (invoke "test" (i32.const 74)) "uninitialized element")
1528 (assert_trap (invoke "test" (i32.const 75)) "uninitialized element")
1529 (assert_trap (invoke "test" (i32.const 76)) "uninitialized element")
1530 (assert_trap (invoke "test" (i32.const 77)) "uninitialized element")
1531 (assert_trap (invoke "test" (i32.const 78)) "uninitialized element")
1532 (assert_trap (invoke "test" (i32.const 79)) "uninitialized element")
1533 (assert_trap (invoke "test" (i32.const 80)) "uninitialized element")
1534 (assert_trap (invoke "test" (i32.const 81)) "uninitialized element")
1535 (assert_trap (invoke "test" (i32.const 82)) "uninitialized element")
1536 (assert_trap (invoke "test" (i32.const 83)) "uninitialized element")
1537 (assert_trap (invoke "test" (i32.const 84)) "uninitialized element")
1538 (assert_trap (invoke "test" (i32.const 85)) "uninitialized element")
1539 (assert_trap (invoke "test" (i32.const 86)) "uninitialized element")
1540 (assert_trap (invoke "test" (i32.const 87)) "uninitialized element")
1541 (assert_trap (invoke "test" (i32.const 88)) "uninitialized element")
1542 (assert_trap (invoke "test" (i32.const 89)) "uninitialized element")
1543 (assert_trap (invoke "test" (i32.const 90)) "uninitialized element")
1544 (assert_trap (invoke "test" (i32.const 91)) "uninitialized element")
1545 (assert_trap (invoke "test" (i32.const 92)) "uninitialized element")
1546 (assert_trap (invoke "test" (i32.const 93)) "uninitialized element")
1547 (assert_trap (invoke "test" (i32.const 94)) "uninitialized element")
1548 (assert_trap (invoke "test" (i32.const 95)) "uninitialized element")
1549 (assert_trap (invoke "test" (i32.const 96)) "uninitialized element")
1550 (assert_trap (invoke "test" (i32.const 97)) "uninitialized element")
1551 (assert_trap (invoke "test" (i32.const 98)) "uninitialized element")
1552 (assert_trap (invoke "test" (i32.const 99)) "uninitialized element")
1553 (assert_trap (invoke "test" (i32.const 100)) "uninitialized element")
1554 (assert_trap (invoke "test" (i32.const 101)) "uninitialized element")
1555 (assert_trap (invoke "test" (i32.const 102)) "uninitialized element")
1556 (assert_trap (invoke "test" (i32.const 103)) "uninitialized element")
1557 (assert_trap (invoke "test" (i32.const 104)) "uninitialized element")
1558 (assert_trap (invoke "test" (i32.const 105)) "uninitialized element")
1559 (assert_trap (invoke "test" (i32.const 106)) "uninitialized element")
1560 (assert_trap (invoke "test" (i32.const 107)) "uninitialized element")
1561 (assert_trap (invoke "test" (i32.const 108)) "uninitialized element")
1562 (assert_trap (invoke "test" (i32.const 109)) "uninitialized element")
1563 (assert_trap (invoke "test" (i32.const 110)) "uninitialized element")
1564 (assert_trap (invoke "test" (i32.const 111)) "uninitialized element")
1565 (assert_trap (invoke "test" (i32.const 112)) "uninitialized element")
1566 (assert_trap (invoke "test" (i32.const 113)) "uninitialized element")
1567 (assert_trap (invoke "test" (i32.const 114)) "uninitialized element")
1568 (assert_trap (invoke "test" (i32.const 115)) "uninitialized element")
1569 (assert_trap (invoke "test" (i32.const 116)) "uninitialized element")
1570 (assert_trap (invoke "test" (i32.const 117)) "uninitialized element")
1571 (assert_trap (invoke "test" (i32.const 118)) "uninitialized element")
1572 (assert_trap (invoke "test" (i32.const 119)) "uninitialized element")
1573 (assert_trap (invoke "test" (i32.const 120)) "uninitialized element")
1574 (assert_trap (invoke "test" (i32.const 121)) "uninitialized element")
1575 (assert_trap (invoke "test" (i32.const 122)) "uninitialized element")
1576 (assert_trap (invoke "test" (i32.const 123)) "uninitialized element")
1577 (assert_trap (invoke "test" (i32.const 124)) "uninitialized element")
1578 (assert_trap (invoke "test" (i32.const 125)) "uninitialized element")
1579 (assert_trap (invoke "test" (i32.const 126)) "uninitialized element")
1580 (assert_trap (invoke "test" (i32.const 127)) "uninitialized element")
1581 (assert_trap (invoke "test" (i32.const 128)) "uninitialized element")
1582 (assert_trap (invoke "test" (i32.const 129)) "uninitialized element")
1583 (assert_trap (invoke "test" (i32.const 130)) "uninitialized element")
1584 (assert_trap (invoke "test" (i32.const 131)) "uninitialized element")
1585 (assert_trap (invoke "test" (i32.const 132)) "uninitialized element")
1586 (assert_trap (invoke "test" (i32.const 133)) "uninitialized element")
1587 (assert_trap (invoke "test" (i32.const 134)) "uninitialized element")
1588 (assert_trap (invoke "test" (i32.const 135)) "uninitialized element")
1589 (assert_trap (invoke "test" (i32.const 136)) "uninitialized element")
1590 (assert_trap (invoke "test" (i32.const 137)) "uninitialized element")
1591 (assert_trap (invoke "test" (i32.const 138)) "uninitialized element")
1592 (assert_trap (invoke "test" (i32.const 139)) "uninitialized element")
1593 (assert_trap (invoke "test" (i32.const 140)) "uninitialized element")
1594 (assert_trap (invoke "test" (i32.const 141)) "uninitialized element")
1595 (assert_trap (invoke "test" (i32.const 142)) "uninitialized element")
1596 (assert_trap (invoke "test" (i32.const 143)) "uninitialized element")
1597 (assert_trap (invoke "test" (i32.const 144)) "uninitialized element")
1598 (assert_trap (invoke "test" (i32.const 145)) "uninitialized element")
1599 (assert_trap (invoke "test" (i32.const 146)) "uninitialized element")
1600 (assert_trap (invoke "test" (i32.const 147)) "uninitialized element")
1601 (assert_trap (invoke "test" (i32.const 148)) "uninitialized element")
1602 (assert_trap (invoke "test" (i32.const 149)) "uninitialized element")
1603 (assert_trap (invoke "test" (i32.const 150)) "uninitialized element")
1604 (assert_trap (invoke "test" (i32.const 151)) "uninitialized element")
1605 (assert_trap (invoke "test" (i32.const 152)) "uninitialized element")
1606 (assert_trap (invoke "test" (i32.const 153)) "uninitialized element")
1607 (assert_trap (invoke "test" (i32.const 154)) "uninitialized element")
1608 (assert_trap (invoke "test" (i32.const 155)) "uninitialized element")
1609 (assert_trap (invoke "test" (i32.const 156)) "uninitialized element")
1610 (assert_trap (invoke "test" (i32.const 157)) "uninitialized element")
1611 (assert_trap (invoke "test" (i32.const 158)) "uninitialized element")
1612 (assert_trap (invoke "test" (i32.const 159)) "uninitialized element")
1613
1614 (module
1615   (type (func (result i32)))
1616   (table 64 64 funcref)
1617   (elem funcref
1618     (ref.func $f0) (ref.func $f1) (ref.func $f2) (ref.func $f3)
1619     (ref.func $f4) (ref.func $f5) (ref.func $f6) (ref.func $f7)
1620     (ref.func $f8) (ref.func $f9) (ref.func $f10) (ref.func $f11)
1621     (ref.func $f12) (ref.func $f13) (ref.func $f14) (ref.func $f15))
1622   (func $f0 (export "f0") (result i32) (i32.const 0))
1623   (func $f1 (export "f1") (result i32) (i32.const 1))
1624   (func $f2 (export "f2") (result i32) (i32.const 2))
1625   (func $f3 (export "f3") (result i32) (i32.const 3))
1626   (func $f4 (export "f4") (result i32) (i32.const 4))
1627   (func $f5 (export "f5") (result i32) (i32.const 5))
1628   (func $f6 (export "f6") (result i32) (i32.const 6))
1629   (func $f7 (export "f7") (result i32) (i32.const 7))
1630   (func $f8 (export "f8") (result i32) (i32.const 8))
1631   (func $f9 (export "f9") (result i32) (i32.const 9))
1632   (func $f10 (export "f10") (result i32) (i32.const 10))
1633   (func $f11 (export "f11") (result i32) (i32.const 11))
1634   (func $f12 (export "f12") (result i32) (i32.const 12))
1635   (func $f13 (export "f13") (result i32) (i32.const 13))
1636   (func $f14 (export "f14") (result i32) (i32.const 14))
1637   (func $f15 (export "f15") (result i32) (i32.const 15))
1638   (func (export "test") (param $n i32) (result i32)
1639     (call_indirect (type 0) (local.get $n)))
1640   (func (export "run") (param $offs i32) (param $len i32)
1641     (table.init 0 (local.get $offs) (i32.const 0) (local.get $len))))
1642 (assert_trap (invoke "run" (i32.const 48) (i32.const 4294967280)) "out of bounds")
1643 (assert_trap (invoke "test" (i32.const 0)) "uninitialized element")
1644 (assert_trap (invoke "test" (i32.const 1)) "uninitialized element")
1645 (assert_trap (invoke "test" (i32.const 2)) "uninitialized element")
1646 (assert_trap (invoke "test" (i32.const 3)) "uninitialized element")
1647 (assert_trap (invoke "test" (i32.const 4)) "uninitialized element")
1648 (assert_trap (invoke "test" (i32.const 5)) "uninitialized element")
1649 (assert_trap (invoke "test" (i32.const 6)) "uninitialized element")
1650 (assert_trap (invoke "test" (i32.const 7)) "uninitialized element")
1651 (assert_trap (invoke "test" (i32.const 8)) "uninitialized element")
1652 (assert_trap (invoke "test" (i32.const 9)) "uninitialized element")
1653 (assert_trap (invoke "test" (i32.const 10)) "uninitialized element")
1654 (assert_trap (invoke "test" (i32.const 11)) "uninitialized element")
1655 (assert_trap (invoke "test" (i32.const 12)) "uninitialized element")
1656 (assert_trap (invoke "test" (i32.const 13)) "uninitialized element")
1657 (assert_trap (invoke "test" (i32.const 14)) "uninitialized element")
1658 (assert_trap (invoke "test" (i32.const 15)) "uninitialized element")
1659 (assert_trap (invoke "test" (i32.const 16)) "uninitialized element")
1660 (assert_trap (invoke "test" (i32.const 17)) "uninitialized element")
1661 (assert_trap (invoke "test" (i32.const 18)) "uninitialized element")
1662 (assert_trap (invoke "test" (i32.const 19)) "uninitialized element")
1663 (assert_trap (invoke "test" (i32.const 20)) "uninitialized element")
1664 (assert_trap (invoke "test" (i32.const 21)) "uninitialized element")
1665 (assert_trap (invoke "test" (i32.const 22)) "uninitialized element")
1666 (assert_trap (invoke "test" (i32.const 23)) "uninitialized element")
1667 (assert_trap (invoke "test" (i32.const 24)) "uninitialized element")
1668 (assert_trap (invoke "test" (i32.const 25)) "uninitialized element")
1669 (assert_trap (invoke "test" (i32.const 26)) "uninitialized element")
1670 (assert_trap (invoke "test" (i32.const 27)) "uninitialized element")
1671 (assert_trap (invoke "test" (i32.const 28)) "uninitialized element")
1672 (assert_trap (invoke "test" (i32.const 29)) "uninitialized element")
1673 (assert_trap (invoke "test" (i32.const 30)) "uninitialized element")
1674 (assert_trap (invoke "test" (i32.const 31)) "uninitialized element")
1675 (assert_trap (invoke "test" (i32.const 32)) "uninitialized element")
1676 (assert_trap (invoke "test" (i32.const 33)) "uninitialized element")
1677 (assert_trap (invoke "test" (i32.const 34)) "uninitialized element")
1678 (assert_trap (invoke "test" (i32.const 35)) "uninitialized element")
1679 (assert_trap (invoke "test" (i32.const 36)) "uninitialized element")
1680 (assert_trap (invoke "test" (i32.const 37)) "uninitialized element")
1681 (assert_trap (invoke "test" (i32.const 38)) "uninitialized element")
1682 (assert_trap (invoke "test" (i32.const 39)) "uninitialized element")
1683 (assert_trap (invoke "test" (i32.const 40)) "uninitialized element")
1684 (assert_trap (invoke "test" (i32.const 41)) "uninitialized element")
1685 (assert_trap (invoke "test" (i32.const 42)) "uninitialized element")
1686 (assert_trap (invoke "test" (i32.const 43)) "uninitialized element")
1687 (assert_trap (invoke "test" (i32.const 44)) "uninitialized element")
1688 (assert_trap (invoke "test" (i32.const 45)) "uninitialized element")
1689 (assert_trap (invoke "test" (i32.const 46)) "uninitialized element")
1690 (assert_trap (invoke "test" (i32.const 47)) "uninitialized element")
1691 (assert_trap (invoke "test" (i32.const 48)) "uninitialized element")
1692 (assert_trap (invoke "test" (i32.const 49)) "uninitialized element")
1693 (assert_trap (invoke "test" (i32.const 50)) "uninitialized element")
1694 (assert_trap (invoke "test" (i32.const 51)) "uninitialized element")
1695 (assert_trap (invoke "test" (i32.const 52)) "uninitialized element")
1696 (assert_trap (invoke "test" (i32.const 53)) "uninitialized element")
1697 (assert_trap (invoke "test" (i32.const 54)) "uninitialized element")
1698 (assert_trap (invoke "test" (i32.const 55)) "uninitialized element")
1699 (assert_trap (invoke "test" (i32.const 56)) "uninitialized element")
1700 (assert_trap (invoke "test" (i32.const 57)) "uninitialized element")
1701 (assert_trap (invoke "test" (i32.const 58)) "uninitialized element")
1702 (assert_trap (invoke "test" (i32.const 59)) "uninitialized element")
1703 (assert_trap (invoke "test" (i32.const 60)) "uninitialized element")
1704 (assert_trap (invoke "test" (i32.const 61)) "uninitialized element")
1705 (assert_trap (invoke "test" (i32.const 62)) "uninitialized element")
1706 (assert_trap (invoke "test" (i32.const 63)) "uninitialized element")
1707
1708 (module
1709   (type (func (result i32)))
1710   (table 16 16 funcref)
1711   (elem funcref
1712     (ref.func $f0) (ref.func $f1) (ref.func $f2) (ref.func $f3)
1713     (ref.func $f4) (ref.func $f5) (ref.func $f6) (ref.func $f7)
1714     (ref.func $f8) (ref.func $f9) (ref.func $f10) (ref.func $f11)
1715     (ref.func $f12) (ref.func $f13) (ref.func $f14) (ref.func $f15))
1716   (func $f0 (export "f0") (result i32) (i32.const 0))
1717   (func $f1 (export "f1") (result i32) (i32.const 1))
1718   (func $f2 (export "f2") (result i32) (i32.const 2))
1719   (func $f3 (export "f3") (result i32) (i32.const 3))
1720   (func $f4 (export "f4") (result i32) (i32.const 4))
1721   (func $f5 (export "f5") (result i32) (i32.const 5))
1722   (func $f6 (export "f6") (result i32) (i32.const 6))
1723   (func $f7 (export "f7") (result i32) (i32.const 7))
1724   (func $f8 (export "f8") (result i32) (i32.const 8))
1725   (func $f9 (export "f9") (result i32) (i32.const 9))
1726   (func $f10 (export "f10") (result i32) (i32.const 10))
1727   (func $f11 (export "f11") (result i32) (i32.const 11))
1728   (func $f12 (export "f12") (result i32) (i32.const 12))
1729   (func $f13 (export "f13") (result i32) (i32.const 13))
1730   (func $f14 (export "f14") (result i32) (i32.const 14))
1731   (func $f15 (export "f15") (result i32) (i32.const 15))
1732   (func (export "test") (param $n i32) (result i32)
1733     (call_indirect (type 0) (local.get $n)))
1734   (func (export "run") (param $offs i32) (param $len i32)
1735     (table.init 0 (local.get $offs) (i32.const 8) (local.get $len))))
1736 (assert_trap (invoke "run" (i32.const 0) (i32.const 4294967292)) "out of bounds")
1737 (assert_trap (invoke "test" (i32.const 0)) "uninitialized element")
1738 (assert_trap (invoke "test" (i32.const 1)) "uninitialized element")
1739 (assert_trap (invoke "test" (i32.const 2)) "uninitialized element")
1740 (assert_trap (invoke "test" (i32.const 3)) "uninitialized element")
1741 (assert_trap (invoke "test" (i32.const 4)) "uninitialized element")
1742 (assert_trap (invoke "test" (i32.const 5)) "uninitialized element")
1743 (assert_trap (invoke "test" (i32.const 6)) "uninitialized element")
1744 (assert_trap (invoke "test" (i32.const 7)) "uninitialized element")
1745 (assert_trap (invoke "test" (i32.const 8)) "uninitialized element")
1746 (assert_trap (invoke "test" (i32.const 9)) "uninitialized element")
1747 (assert_trap (invoke "test" (i32.const 10)) "uninitialized element")
1748 (assert_trap (invoke "test" (i32.const 11)) "uninitialized element")
1749 (assert_trap (invoke "test" (i32.const 12)) "uninitialized element")
1750 (assert_trap (invoke "test" (i32.const 13)) "uninitialized element")
1751 (assert_trap (invoke "test" (i32.const 14)) "uninitialized element")
1752 (assert_trap (invoke "test" (i32.const 15)) "uninitialized element")
1753
1754 (module
1755   (table 1 funcref)
1756   ;; 65 elem segments. 64 is the smallest positive number that is encoded
1757   ;; differently as a signed LEB.
1758   (elem funcref) (elem funcref) (elem funcref) (elem funcref)
1759   (elem funcref) (elem funcref) (elem funcref) (elem funcref)
1760   (elem funcref) (elem funcref) (elem funcref) (elem funcref)
1761   (elem funcref) (elem funcref) (elem funcref) (elem funcref)
1762   (elem funcref) (elem funcref) (elem funcref) (elem funcref)
1763   (elem funcref) (elem funcref) (elem funcref) (elem funcref)
1764   (elem funcref) (elem funcref) (elem funcref) (elem funcref)
1765   (elem funcref) (elem funcref) (elem funcref) (elem funcref)
1766   (elem funcref) (elem funcref) (elem funcref) (elem funcref)
1767   (elem funcref) (elem funcref) (elem funcref) (elem funcref)
1768   (elem funcref) (elem funcref) (elem funcref) (elem funcref)
1769   (elem funcref) (elem funcref) (elem funcref) (elem funcref)
1770   (elem funcref) (elem funcref) (elem funcref) (elem funcref)
1771   (elem funcref) (elem funcref) (elem funcref) (elem funcref)
1772   (elem funcref) (elem funcref) (elem funcref) (elem funcref)
1773   (elem funcref) (elem funcref) (elem funcref) (elem funcref)
1774   (elem funcref)
1775   (func (table.init 64 (i32.const 0) (i32.const 0) (i32.const 0))))
1776