ad293b5ee43c16a183bfdcdfe30fe777f8b8656c
[platform/framework/web/lwnode.git] /
1 (module
2   (table $t0 0 externref)
3   (table $t1 1 externref)
4   (table $t2 0 2 externref)
5   (table $t3 3 8 externref)
6
7   (func (export "size-t0") (result i32) (table.size $t0))
8   (func (export "size-t1") (result i32) (table.size $t1))
9   (func (export "size-t2") (result i32) (table.size $t2))
10   (func (export "size-t3") (result i32) (table.size $t3))
11
12   (func (export "grow-t0") (param $sz i32)
13     (drop (table.grow $t0 (ref.null extern) (local.get $sz)))
14   )
15   (func (export "grow-t1") (param $sz i32)
16     (drop (table.grow $t1 (ref.null extern) (local.get $sz)))
17   )
18   (func (export "grow-t2") (param $sz i32)
19     (drop (table.grow $t2 (ref.null extern) (local.get $sz)))
20   )
21   (func (export "grow-t3") (param $sz i32)
22     (drop (table.grow $t3 (ref.null extern) (local.get $sz)))
23   )
24 )
25
26 (assert_return (invoke "size-t0") (i32.const 0))
27 (assert_return (invoke "grow-t0" (i32.const 1)))
28 (assert_return (invoke "size-t0") (i32.const 1))
29 (assert_return (invoke "grow-t0" (i32.const 4)))
30 (assert_return (invoke "size-t0") (i32.const 5))
31 (assert_return (invoke "grow-t0" (i32.const 0)))
32 (assert_return (invoke "size-t0") (i32.const 5))
33
34 (assert_return (invoke "size-t1") (i32.const 1))
35 (assert_return (invoke "grow-t1" (i32.const 1)))
36 (assert_return (invoke "size-t1") (i32.const 2))
37 (assert_return (invoke "grow-t1" (i32.const 4)))
38 (assert_return (invoke "size-t1") (i32.const 6))
39 (assert_return (invoke "grow-t1" (i32.const 0)))
40 (assert_return (invoke "size-t1") (i32.const 6))
41
42 (assert_return (invoke "size-t2") (i32.const 0))
43 (assert_return (invoke "grow-t2" (i32.const 3)))
44 (assert_return (invoke "size-t2") (i32.const 0))
45 (assert_return (invoke "grow-t2" (i32.const 1)))
46 (assert_return (invoke "size-t2") (i32.const 1))
47 (assert_return (invoke "grow-t2" (i32.const 0)))
48 (assert_return (invoke "size-t2") (i32.const 1))
49 (assert_return (invoke "grow-t2" (i32.const 4)))
50 (assert_return (invoke "size-t2") (i32.const 1))
51 (assert_return (invoke "grow-t2" (i32.const 1)))
52 (assert_return (invoke "size-t2") (i32.const 2))
53
54 (assert_return (invoke "size-t3") (i32.const 3))
55 (assert_return (invoke "grow-t3" (i32.const 1)))
56 (assert_return (invoke "size-t3") (i32.const 4))
57 (assert_return (invoke "grow-t3" (i32.const 3)))
58 (assert_return (invoke "size-t3") (i32.const 7))
59 (assert_return (invoke "grow-t3" (i32.const 0)))
60 (assert_return (invoke "size-t3") (i32.const 7))
61 (assert_return (invoke "grow-t3" (i32.const 2)))
62 (assert_return (invoke "size-t3") (i32.const 7))
63 (assert_return (invoke "grow-t3" (i32.const 1)))
64 (assert_return (invoke "size-t3") (i32.const 8))
65
66
67 ;; Type errors
68
69 (assert_invalid
70   (module
71     (table $t 1 externref)
72     (func $type-result-i32-vs-empty
73       (table.size $t)
74     )
75   )
76   "type mismatch"
77 )
78 (assert_invalid
79   (module
80     (table $t 1 externref)
81     (func $type-result-i32-vs-f32 (result f32)
82       (table.size $t)
83     )
84   )
85   "type mismatch"
86 )