2 (table $t2 2 externref)
4 (elem (table $t3) (i32.const 1) func $dummy)
7 (func (export "init") (param $r externref)
8 (table.set $t2 (i32.const 1) (local.get $r))
9 (table.set $t3 (i32.const 2) (table.get $t3 (i32.const 1)))
12 (func (export "get-externref") (param $i i32) (result externref)
13 (table.get $t2 (local.get $i))
15 (func $f3 (export "get-funcref") (param $i i32) (result funcref)
16 (table.get $t3 (local.get $i))
19 (func (export "is_null-funcref") (param $i i32) (result i32)
20 (ref.is_null (call $f3 (local.get $i)))
24 (invoke "init" (ref.extern 1))
26 (assert_return (invoke "get-externref" (i32.const 0)) (ref.null extern))
27 (assert_return (invoke "get-externref" (i32.const 1)) (ref.extern 1))
29 (assert_return (invoke "get-funcref" (i32.const 0)) (ref.null func))
30 (assert_return (invoke "is_null-funcref" (i32.const 1)) (i32.const 0))
31 (assert_return (invoke "is_null-funcref" (i32.const 2)) (i32.const 0))
33 (assert_trap (invoke "get-externref" (i32.const 2)) "out of bounds")
34 (assert_trap (invoke "get-funcref" (i32.const 3)) "out of bounds")
35 (assert_trap (invoke "get-externref" (i32.const -1)) "out of bounds")
36 (assert_trap (invoke "get-funcref" (i32.const -1)) "out of bounds")
43 (table $t 10 externref)
44 (func $type-index-empty-vs-i32 (result externref)
52 (table $t 10 externref)
53 (func $type-index-f32-vs-i32 (result externref)
54 (table.get $t (f32.const 1))
62 (table $t 10 externref)
63 (func $type-result-externref-vs-empty
64 (table.get $t (i32.const 0))
71 (table $t 10 externref)
72 (func $type-result-externref-vs-funcref (result funcref)
73 (table.get $t (i32.const 1))
82 (table $t2 1 externref)
83 (func $type-result-externref-vs-funcref-multi (result funcref)
84 (table.get $t2 (i32.const 0))