summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/wasm/spec/spec/table_init.wast.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/jit-test/tests/wasm/spec/spec/table_init.wast.js')
-rw-r--r--js/src/jit-test/tests/wasm/spec/spec/table_init.wast.js3674
1 files changed, 3674 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/wasm/spec/spec/table_init.wast.js b/js/src/jit-test/tests/wasm/spec/spec/table_init.wast.js
new file mode 100644
index 0000000000..a9457bbb2c
--- /dev/null
+++ b/js/src/jit-test/tests/wasm/spec/spec/table_init.wast.js
@@ -0,0 +1,3674 @@
+/* Copyright 2021 Mozilla Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// ./test/core/table_init.wast
+
+// ./test/core/table_init.wast:6
+let $0 = instantiate(`(module
+ (func (export "ef0") (result i32) (i32.const 0))
+ (func (export "ef1") (result i32) (i32.const 1))
+ (func (export "ef2") (result i32) (i32.const 2))
+ (func (export "ef3") (result i32) (i32.const 3))
+ (func (export "ef4") (result i32) (i32.const 4))
+)`);
+
+// ./test/core/table_init.wast:13
+register($0, `a`);
+
+// ./test/core/table_init.wast:15
+let $1 = instantiate(`(module
+ (type (func (result i32))) ;; type #0
+ (import "a" "ef0" (func (result i32))) ;; index 0
+ (import "a" "ef1" (func (result i32)))
+ (import "a" "ef2" (func (result i32)))
+ (import "a" "ef3" (func (result i32)))
+ (import "a" "ef4" (func (result i32))) ;; index 4
+ (table $$t0 30 30 funcref)
+ (table $$t1 30 30 funcref)
+ (elem (table $$t0) (i32.const 2) func 3 1 4 1)
+ (elem funcref
+ (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
+ (elem (table $$t0) (i32.const 12) func 7 5 2 3 6)
+ (elem funcref
+ (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
+ (func (result i32) (i32.const 5)) ;; index 5
+ (func (result i32) (i32.const 6))
+ (func (result i32) (i32.const 7))
+ (func (result i32) (i32.const 8))
+ (func (result i32) (i32.const 9)) ;; index 9
+ (func (export "test")
+ (table.init $$t0 1 (i32.const 7) (i32.const 0) (i32.const 4)))
+ (func (export "check") (param i32) (result i32)
+ (call_indirect $$t0 (type 0) (local.get 0)))
+)`);
+
+// ./test/core/table_init.wast:41
+invoke($1, `test`, []);
+
+// ./test/core/table_init.wast:42
+assert_trap(() => invoke($1, `check`, [0]), `uninitialized element`);
+
+// ./test/core/table_init.wast:43
+assert_trap(() => invoke($1, `check`, [1]), `uninitialized element`);
+
+// ./test/core/table_init.wast:44
+assert_return(() => invoke($1, `check`, [2]), [value("i32", 3)]);
+
+// ./test/core/table_init.wast:45
+assert_return(() => invoke($1, `check`, [3]), [value("i32", 1)]);
+
+// ./test/core/table_init.wast:46
+assert_return(() => invoke($1, `check`, [4]), [value("i32", 4)]);
+
+// ./test/core/table_init.wast:47
+assert_return(() => invoke($1, `check`, [5]), [value("i32", 1)]);
+
+// ./test/core/table_init.wast:48
+assert_trap(() => invoke($1, `check`, [6]), `uninitialized element`);
+
+// ./test/core/table_init.wast:49
+assert_return(() => invoke($1, `check`, [7]), [value("i32", 2)]);
+
+// ./test/core/table_init.wast:50
+assert_return(() => invoke($1, `check`, [8]), [value("i32", 7)]);
+
+// ./test/core/table_init.wast:51
+assert_return(() => invoke($1, `check`, [9]), [value("i32", 1)]);
+
+// ./test/core/table_init.wast:52
+assert_return(() => invoke($1, `check`, [10]), [value("i32", 8)]);
+
+// ./test/core/table_init.wast:53
+assert_trap(() => invoke($1, `check`, [11]), `uninitialized element`);
+
+// ./test/core/table_init.wast:54
+assert_return(() => invoke($1, `check`, [12]), [value("i32", 7)]);
+
+// ./test/core/table_init.wast:55
+assert_return(() => invoke($1, `check`, [13]), [value("i32", 5)]);
+
+// ./test/core/table_init.wast:56
+assert_return(() => invoke($1, `check`, [14]), [value("i32", 2)]);
+
+// ./test/core/table_init.wast:57
+assert_return(() => invoke($1, `check`, [15]), [value("i32", 3)]);
+
+// ./test/core/table_init.wast:58
+assert_return(() => invoke($1, `check`, [16]), [value("i32", 6)]);
+
+// ./test/core/table_init.wast:59
+assert_trap(() => invoke($1, `check`, [17]), `uninitialized element`);
+
+// ./test/core/table_init.wast:60
+assert_trap(() => invoke($1, `check`, [18]), `uninitialized element`);
+
+// ./test/core/table_init.wast:61
+assert_trap(() => invoke($1, `check`, [19]), `uninitialized element`);
+
+// ./test/core/table_init.wast:62
+assert_trap(() => invoke($1, `check`, [20]), `uninitialized element`);
+
+// ./test/core/table_init.wast:63
+assert_trap(() => invoke($1, `check`, [21]), `uninitialized element`);
+
+// ./test/core/table_init.wast:64
+assert_trap(() => invoke($1, `check`, [22]), `uninitialized element`);
+
+// ./test/core/table_init.wast:65
+assert_trap(() => invoke($1, `check`, [23]), `uninitialized element`);
+
+// ./test/core/table_init.wast:66
+assert_trap(() => invoke($1, `check`, [24]), `uninitialized element`);
+
+// ./test/core/table_init.wast:67
+assert_trap(() => invoke($1, `check`, [25]), `uninitialized element`);
+
+// ./test/core/table_init.wast:68
+assert_trap(() => invoke($1, `check`, [26]), `uninitialized element`);
+
+// ./test/core/table_init.wast:69
+assert_trap(() => invoke($1, `check`, [27]), `uninitialized element`);
+
+// ./test/core/table_init.wast:70
+assert_trap(() => invoke($1, `check`, [28]), `uninitialized element`);
+
+// ./test/core/table_init.wast:71
+assert_trap(() => invoke($1, `check`, [29]), `uninitialized element`);
+
+// ./test/core/table_init.wast:73
+let $2 = instantiate(`(module
+ (type (func (result i32))) ;; type #0
+ (import "a" "ef0" (func (result i32))) ;; index 0
+ (import "a" "ef1" (func (result i32)))
+ (import "a" "ef2" (func (result i32)))
+ (import "a" "ef3" (func (result i32)))
+ (import "a" "ef4" (func (result i32))) ;; index 4
+ (table $$t0 30 30 funcref)
+ (table $$t1 30 30 funcref)
+ (elem (table $$t0) (i32.const 2) func 3 1 4 1)
+ (elem funcref
+ (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
+ (elem (table $$t0) (i32.const 12) func 7 5 2 3 6)
+ (elem funcref
+ (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
+ (func (result i32) (i32.const 5)) ;; index 5
+ (func (result i32) (i32.const 6))
+ (func (result i32) (i32.const 7))
+ (func (result i32) (i32.const 8))
+ (func (result i32) (i32.const 9)) ;; index 9
+ (func (export "test")
+ (table.init $$t0 3 (i32.const 15) (i32.const 1) (i32.const 3)))
+ (func (export "check") (param i32) (result i32)
+ (call_indirect $$t0 (type 0) (local.get 0)))
+)`);
+
+// ./test/core/table_init.wast:99
+invoke($2, `test`, []);
+
+// ./test/core/table_init.wast:100
+assert_trap(() => invoke($2, `check`, [0]), `uninitialized element`);
+
+// ./test/core/table_init.wast:101
+assert_trap(() => invoke($2, `check`, [1]), `uninitialized element`);
+
+// ./test/core/table_init.wast:102
+assert_return(() => invoke($2, `check`, [2]), [value("i32", 3)]);
+
+// ./test/core/table_init.wast:103
+assert_return(() => invoke($2, `check`, [3]), [value("i32", 1)]);
+
+// ./test/core/table_init.wast:104
+assert_return(() => invoke($2, `check`, [4]), [value("i32", 4)]);
+
+// ./test/core/table_init.wast:105
+assert_return(() => invoke($2, `check`, [5]), [value("i32", 1)]);
+
+// ./test/core/table_init.wast:106
+assert_trap(() => invoke($2, `check`, [6]), `uninitialized element`);
+
+// ./test/core/table_init.wast:107
+assert_trap(() => invoke($2, `check`, [7]), `uninitialized element`);
+
+// ./test/core/table_init.wast:108
+assert_trap(() => invoke($2, `check`, [8]), `uninitialized element`);
+
+// ./test/core/table_init.wast:109
+assert_trap(() => invoke($2, `check`, [9]), `uninitialized element`);
+
+// ./test/core/table_init.wast:110
+assert_trap(() => invoke($2, `check`, [10]), `uninitialized element`);
+
+// ./test/core/table_init.wast:111
+assert_trap(() => invoke($2, `check`, [11]), `uninitialized element`);
+
+// ./test/core/table_init.wast:112
+assert_return(() => invoke($2, `check`, [12]), [value("i32", 7)]);
+
+// ./test/core/table_init.wast:113
+assert_return(() => invoke($2, `check`, [13]), [value("i32", 5)]);
+
+// ./test/core/table_init.wast:114
+assert_return(() => invoke($2, `check`, [14]), [value("i32", 2)]);
+
+// ./test/core/table_init.wast:115
+assert_return(() => invoke($2, `check`, [15]), [value("i32", 9)]);
+
+// ./test/core/table_init.wast:116
+assert_return(() => invoke($2, `check`, [16]), [value("i32", 2)]);
+
+// ./test/core/table_init.wast:117
+assert_return(() => invoke($2, `check`, [17]), [value("i32", 7)]);
+
+// ./test/core/table_init.wast:118
+assert_trap(() => invoke($2, `check`, [18]), `uninitialized element`);
+
+// ./test/core/table_init.wast:119
+assert_trap(() => invoke($2, `check`, [19]), `uninitialized element`);
+
+// ./test/core/table_init.wast:120
+assert_trap(() => invoke($2, `check`, [20]), `uninitialized element`);
+
+// ./test/core/table_init.wast:121
+assert_trap(() => invoke($2, `check`, [21]), `uninitialized element`);
+
+// ./test/core/table_init.wast:122
+assert_trap(() => invoke($2, `check`, [22]), `uninitialized element`);
+
+// ./test/core/table_init.wast:123
+assert_trap(() => invoke($2, `check`, [23]), `uninitialized element`);
+
+// ./test/core/table_init.wast:124
+assert_trap(() => invoke($2, `check`, [24]), `uninitialized element`);
+
+// ./test/core/table_init.wast:125
+assert_trap(() => invoke($2, `check`, [25]), `uninitialized element`);
+
+// ./test/core/table_init.wast:126
+assert_trap(() => invoke($2, `check`, [26]), `uninitialized element`);
+
+// ./test/core/table_init.wast:127
+assert_trap(() => invoke($2, `check`, [27]), `uninitialized element`);
+
+// ./test/core/table_init.wast:128
+assert_trap(() => invoke($2, `check`, [28]), `uninitialized element`);
+
+// ./test/core/table_init.wast:129
+assert_trap(() => invoke($2, `check`, [29]), `uninitialized element`);
+
+// ./test/core/table_init.wast:131
+let $3 = instantiate(`(module
+ (type (func (result i32))) ;; type #0
+ (import "a" "ef0" (func (result i32))) ;; index 0
+ (import "a" "ef1" (func (result i32)))
+ (import "a" "ef2" (func (result i32)))
+ (import "a" "ef3" (func (result i32)))
+ (import "a" "ef4" (func (result i32))) ;; index 4
+ (table $$t0 30 30 funcref)
+ (table $$t1 30 30 funcref)
+ (elem (table $$t0) (i32.const 2) func 3 1 4 1)
+ (elem funcref
+ (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
+ (elem (table $$t0) (i32.const 12) func 7 5 2 3 6)
+ (elem funcref
+ (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
+ (func (result i32) (i32.const 5)) ;; index 5
+ (func (result i32) (i32.const 6))
+ (func (result i32) (i32.const 7))
+ (func (result i32) (i32.const 8))
+ (func (result i32) (i32.const 9)) ;; index 9
+ (func (export "test")
+ (table.init $$t0 1 (i32.const 7) (i32.const 0) (i32.const 4))
+ (elem.drop 1)
+ (table.init $$t0 3 (i32.const 15) (i32.const 1) (i32.const 3))
+ (elem.drop 3)
+ (table.copy $$t0 0 (i32.const 20) (i32.const 15) (i32.const 5))
+ (table.copy $$t0 0 (i32.const 21) (i32.const 29) (i32.const 1))
+ (table.copy $$t0 0 (i32.const 24) (i32.const 10) (i32.const 1))
+ (table.copy $$t0 0 (i32.const 13) (i32.const 11) (i32.const 4))
+ (table.copy $$t0 0 (i32.const 19) (i32.const 20) (i32.const 5)))
+ (func (export "check") (param i32) (result i32)
+ (call_indirect $$t0 (type 0) (local.get 0)))
+)`);
+
+// ./test/core/table_init.wast:165
+invoke($3, `test`, []);
+
+// ./test/core/table_init.wast:166
+assert_trap(() => invoke($3, `check`, [0]), `uninitialized element`);
+
+// ./test/core/table_init.wast:167
+assert_trap(() => invoke($3, `check`, [1]), `uninitialized element`);
+
+// ./test/core/table_init.wast:168
+assert_return(() => invoke($3, `check`, [2]), [value("i32", 3)]);
+
+// ./test/core/table_init.wast:169
+assert_return(() => invoke($3, `check`, [3]), [value("i32", 1)]);
+
+// ./test/core/table_init.wast:170
+assert_return(() => invoke($3, `check`, [4]), [value("i32", 4)]);
+
+// ./test/core/table_init.wast:171
+assert_return(() => invoke($3, `check`, [5]), [value("i32", 1)]);
+
+// ./test/core/table_init.wast:172
+assert_trap(() => invoke($3, `check`, [6]), `uninitialized element`);
+
+// ./test/core/table_init.wast:173
+assert_return(() => invoke($3, `check`, [7]), [value("i32", 2)]);
+
+// ./test/core/table_init.wast:174
+assert_return(() => invoke($3, `check`, [8]), [value("i32", 7)]);
+
+// ./test/core/table_init.wast:175
+assert_return(() => invoke($3, `check`, [9]), [value("i32", 1)]);
+
+// ./test/core/table_init.wast:176
+assert_return(() => invoke($3, `check`, [10]), [value("i32", 8)]);
+
+// ./test/core/table_init.wast:177
+assert_trap(() => invoke($3, `check`, [11]), `uninitialized element`);
+
+// ./test/core/table_init.wast:178
+assert_return(() => invoke($3, `check`, [12]), [value("i32", 7)]);
+
+// ./test/core/table_init.wast:179
+assert_trap(() => invoke($3, `check`, [13]), `uninitialized element`);
+
+// ./test/core/table_init.wast:180
+assert_return(() => invoke($3, `check`, [14]), [value("i32", 7)]);
+
+// ./test/core/table_init.wast:181
+assert_return(() => invoke($3, `check`, [15]), [value("i32", 5)]);
+
+// ./test/core/table_init.wast:182
+assert_return(() => invoke($3, `check`, [16]), [value("i32", 2)]);
+
+// ./test/core/table_init.wast:183
+assert_return(() => invoke($3, `check`, [17]), [value("i32", 7)]);
+
+// ./test/core/table_init.wast:184
+assert_trap(() => invoke($3, `check`, [18]), `uninitialized element`);
+
+// ./test/core/table_init.wast:185
+assert_return(() => invoke($3, `check`, [19]), [value("i32", 9)]);
+
+// ./test/core/table_init.wast:186
+assert_trap(() => invoke($3, `check`, [20]), `uninitialized element`);
+
+// ./test/core/table_init.wast:187
+assert_return(() => invoke($3, `check`, [21]), [value("i32", 7)]);
+
+// ./test/core/table_init.wast:188
+assert_trap(() => invoke($3, `check`, [22]), `uninitialized element`);
+
+// ./test/core/table_init.wast:189
+assert_return(() => invoke($3, `check`, [23]), [value("i32", 8)]);
+
+// ./test/core/table_init.wast:190
+assert_return(() => invoke($3, `check`, [24]), [value("i32", 8)]);
+
+// ./test/core/table_init.wast:191
+assert_trap(() => invoke($3, `check`, [25]), `uninitialized element`);
+
+// ./test/core/table_init.wast:192
+assert_trap(() => invoke($3, `check`, [26]), `uninitialized element`);
+
+// ./test/core/table_init.wast:193
+assert_trap(() => invoke($3, `check`, [27]), `uninitialized element`);
+
+// ./test/core/table_init.wast:194
+assert_trap(() => invoke($3, `check`, [28]), `uninitialized element`);
+
+// ./test/core/table_init.wast:195
+assert_trap(() => invoke($3, `check`, [29]), `uninitialized element`);
+
+// ./test/core/table_init.wast:197
+let $4 = instantiate(`(module
+ (type (func (result i32))) ;; type #0
+ (import "a" "ef0" (func (result i32))) ;; index 0
+ (import "a" "ef1" (func (result i32)))
+ (import "a" "ef2" (func (result i32)))
+ (import "a" "ef3" (func (result i32)))
+ (import "a" "ef4" (func (result i32))) ;; index 4
+ (table $$t0 30 30 funcref)
+ (table $$t1 30 30 funcref)
+ (elem (table $$t1) (i32.const 2) func 3 1 4 1)
+ (elem funcref
+ (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
+ (elem (table $$t1) (i32.const 12) func 7 5 2 3 6)
+ (elem funcref
+ (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
+ (func (result i32) (i32.const 5)) ;; index 5
+ (func (result i32) (i32.const 6))
+ (func (result i32) (i32.const 7))
+ (func (result i32) (i32.const 8))
+ (func (result i32) (i32.const 9)) ;; index 9
+ (func (export "test")
+ (table.init $$t1 1 (i32.const 7) (i32.const 0) (i32.const 4)))
+ (func (export "check") (param i32) (result i32)
+ (call_indirect $$t1 (type 0) (local.get 0)))
+)`);
+
+// ./test/core/table_init.wast:223
+invoke($4, `test`, []);
+
+// ./test/core/table_init.wast:224
+assert_trap(() => invoke($4, `check`, [0]), `uninitialized element`);
+
+// ./test/core/table_init.wast:225
+assert_trap(() => invoke($4, `check`, [1]), `uninitialized element`);
+
+// ./test/core/table_init.wast:226
+assert_return(() => invoke($4, `check`, [2]), [value("i32", 3)]);
+
+// ./test/core/table_init.wast:227
+assert_return(() => invoke($4, `check`, [3]), [value("i32", 1)]);
+
+// ./test/core/table_init.wast:228
+assert_return(() => invoke($4, `check`, [4]), [value("i32", 4)]);
+
+// ./test/core/table_init.wast:229
+assert_return(() => invoke($4, `check`, [5]), [value("i32", 1)]);
+
+// ./test/core/table_init.wast:230
+assert_trap(() => invoke($4, `check`, [6]), `uninitialized element`);
+
+// ./test/core/table_init.wast:231
+assert_return(() => invoke($4, `check`, [7]), [value("i32", 2)]);
+
+// ./test/core/table_init.wast:232
+assert_return(() => invoke($4, `check`, [8]), [value("i32", 7)]);
+
+// ./test/core/table_init.wast:233
+assert_return(() => invoke($4, `check`, [9]), [value("i32", 1)]);
+
+// ./test/core/table_init.wast:234
+assert_return(() => invoke($4, `check`, [10]), [value("i32", 8)]);
+
+// ./test/core/table_init.wast:235
+assert_trap(() => invoke($4, `check`, [11]), `uninitialized element`);
+
+// ./test/core/table_init.wast:236
+assert_return(() => invoke($4, `check`, [12]), [value("i32", 7)]);
+
+// ./test/core/table_init.wast:237
+assert_return(() => invoke($4, `check`, [13]), [value("i32", 5)]);
+
+// ./test/core/table_init.wast:238
+assert_return(() => invoke($4, `check`, [14]), [value("i32", 2)]);
+
+// ./test/core/table_init.wast:239
+assert_return(() => invoke($4, `check`, [15]), [value("i32", 3)]);
+
+// ./test/core/table_init.wast:240
+assert_return(() => invoke($4, `check`, [16]), [value("i32", 6)]);
+
+// ./test/core/table_init.wast:241
+assert_trap(() => invoke($4, `check`, [17]), `uninitialized element`);
+
+// ./test/core/table_init.wast:242
+assert_trap(() => invoke($4, `check`, [18]), `uninitialized element`);
+
+// ./test/core/table_init.wast:243
+assert_trap(() => invoke($4, `check`, [19]), `uninitialized element`);
+
+// ./test/core/table_init.wast:244
+assert_trap(() => invoke($4, `check`, [20]), `uninitialized element`);
+
+// ./test/core/table_init.wast:245
+assert_trap(() => invoke($4, `check`, [21]), `uninitialized element`);
+
+// ./test/core/table_init.wast:246
+assert_trap(() => invoke($4, `check`, [22]), `uninitialized element`);
+
+// ./test/core/table_init.wast:247
+assert_trap(() => invoke($4, `check`, [23]), `uninitialized element`);
+
+// ./test/core/table_init.wast:248
+assert_trap(() => invoke($4, `check`, [24]), `uninitialized element`);
+
+// ./test/core/table_init.wast:249
+assert_trap(() => invoke($4, `check`, [25]), `uninitialized element`);
+
+// ./test/core/table_init.wast:250
+assert_trap(() => invoke($4, `check`, [26]), `uninitialized element`);
+
+// ./test/core/table_init.wast:251
+assert_trap(() => invoke($4, `check`, [27]), `uninitialized element`);
+
+// ./test/core/table_init.wast:252
+assert_trap(() => invoke($4, `check`, [28]), `uninitialized element`);
+
+// ./test/core/table_init.wast:253
+assert_trap(() => invoke($4, `check`, [29]), `uninitialized element`);
+
+// ./test/core/table_init.wast:255
+let $5 = instantiate(`(module
+ (type (func (result i32))) ;; type #0
+ (import "a" "ef0" (func (result i32))) ;; index 0
+ (import "a" "ef1" (func (result i32)))
+ (import "a" "ef2" (func (result i32)))
+ (import "a" "ef3" (func (result i32)))
+ (import "a" "ef4" (func (result i32))) ;; index 4
+ (table $$t0 30 30 funcref)
+ (table $$t1 30 30 funcref)
+ (elem (table $$t1) (i32.const 2) func 3 1 4 1)
+ (elem funcref
+ (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
+ (elem (table $$t1) (i32.const 12) func 7 5 2 3 6)
+ (elem funcref
+ (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
+ (func (result i32) (i32.const 5)) ;; index 5
+ (func (result i32) (i32.const 6))
+ (func (result i32) (i32.const 7))
+ (func (result i32) (i32.const 8))
+ (func (result i32) (i32.const 9)) ;; index 9
+ (func (export "test")
+ (table.init $$t1 3 (i32.const 15) (i32.const 1) (i32.const 3)))
+ (func (export "check") (param i32) (result i32)
+ (call_indirect $$t1 (type 0) (local.get 0)))
+)`);
+
+// ./test/core/table_init.wast:281
+invoke($5, `test`, []);
+
+// ./test/core/table_init.wast:282
+assert_trap(() => invoke($5, `check`, [0]), `uninitialized element`);
+
+// ./test/core/table_init.wast:283
+assert_trap(() => invoke($5, `check`, [1]), `uninitialized element`);
+
+// ./test/core/table_init.wast:284
+assert_return(() => invoke($5, `check`, [2]), [value("i32", 3)]);
+
+// ./test/core/table_init.wast:285
+assert_return(() => invoke($5, `check`, [3]), [value("i32", 1)]);
+
+// ./test/core/table_init.wast:286
+assert_return(() => invoke($5, `check`, [4]), [value("i32", 4)]);
+
+// ./test/core/table_init.wast:287
+assert_return(() => invoke($5, `check`, [5]), [value("i32", 1)]);
+
+// ./test/core/table_init.wast:288
+assert_trap(() => invoke($5, `check`, [6]), `uninitialized element`);
+
+// ./test/core/table_init.wast:289
+assert_trap(() => invoke($5, `check`, [7]), `uninitialized element`);
+
+// ./test/core/table_init.wast:290
+assert_trap(() => invoke($5, `check`, [8]), `uninitialized element`);
+
+// ./test/core/table_init.wast:291
+assert_trap(() => invoke($5, `check`, [9]), `uninitialized element`);
+
+// ./test/core/table_init.wast:292
+assert_trap(() => invoke($5, `check`, [10]), `uninitialized element`);
+
+// ./test/core/table_init.wast:293
+assert_trap(() => invoke($5, `check`, [11]), `uninitialized element`);
+
+// ./test/core/table_init.wast:294
+assert_return(() => invoke($5, `check`, [12]), [value("i32", 7)]);
+
+// ./test/core/table_init.wast:295
+assert_return(() => invoke($5, `check`, [13]), [value("i32", 5)]);
+
+// ./test/core/table_init.wast:296
+assert_return(() => invoke($5, `check`, [14]), [value("i32", 2)]);
+
+// ./test/core/table_init.wast:297
+assert_return(() => invoke($5, `check`, [15]), [value("i32", 9)]);
+
+// ./test/core/table_init.wast:298
+assert_return(() => invoke($5, `check`, [16]), [value("i32", 2)]);
+
+// ./test/core/table_init.wast:299
+assert_return(() => invoke($5, `check`, [17]), [value("i32", 7)]);
+
+// ./test/core/table_init.wast:300
+assert_trap(() => invoke($5, `check`, [18]), `uninitialized element`);
+
+// ./test/core/table_init.wast:301
+assert_trap(() => invoke($5, `check`, [19]), `uninitialized element`);
+
+// ./test/core/table_init.wast:302
+assert_trap(() => invoke($5, `check`, [20]), `uninitialized element`);
+
+// ./test/core/table_init.wast:303
+assert_trap(() => invoke($5, `check`, [21]), `uninitialized element`);
+
+// ./test/core/table_init.wast:304
+assert_trap(() => invoke($5, `check`, [22]), `uninitialized element`);
+
+// ./test/core/table_init.wast:305
+assert_trap(() => invoke($5, `check`, [23]), `uninitialized element`);
+
+// ./test/core/table_init.wast:306
+assert_trap(() => invoke($5, `check`, [24]), `uninitialized element`);
+
+// ./test/core/table_init.wast:307
+assert_trap(() => invoke($5, `check`, [25]), `uninitialized element`);
+
+// ./test/core/table_init.wast:308
+assert_trap(() => invoke($5, `check`, [26]), `uninitialized element`);
+
+// ./test/core/table_init.wast:309
+assert_trap(() => invoke($5, `check`, [27]), `uninitialized element`);
+
+// ./test/core/table_init.wast:310
+assert_trap(() => invoke($5, `check`, [28]), `uninitialized element`);
+
+// ./test/core/table_init.wast:311
+assert_trap(() => invoke($5, `check`, [29]), `uninitialized element`);
+
+// ./test/core/table_init.wast:313
+let $6 = instantiate(`(module
+ (type (func (result i32))) ;; type #0
+ (import "a" "ef0" (func (result i32))) ;; index 0
+ (import "a" "ef1" (func (result i32)))
+ (import "a" "ef2" (func (result i32)))
+ (import "a" "ef3" (func (result i32)))
+ (import "a" "ef4" (func (result i32))) ;; index 4
+ (table $$t0 30 30 funcref)
+ (table $$t1 30 30 funcref)
+ (elem (table $$t1) (i32.const 2) func 3 1 4 1)
+ (elem funcref
+ (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
+ (elem (table $$t1) (i32.const 12) func 7 5 2 3 6)
+ (elem funcref
+ (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
+ (func (result i32) (i32.const 5)) ;; index 5
+ (func (result i32) (i32.const 6))
+ (func (result i32) (i32.const 7))
+ (func (result i32) (i32.const 8))
+ (func (result i32) (i32.const 9)) ;; index 9
+ (func (export "test")
+ (table.init $$t1 1 (i32.const 7) (i32.const 0) (i32.const 4))
+ (elem.drop 1)
+ (table.init $$t1 3 (i32.const 15) (i32.const 1) (i32.const 3))
+ (elem.drop 3)
+ (table.copy $$t1 1 (i32.const 20) (i32.const 15) (i32.const 5))
+ (table.copy $$t1 1 (i32.const 21) (i32.const 29) (i32.const 1))
+ (table.copy $$t1 1 (i32.const 24) (i32.const 10) (i32.const 1))
+ (table.copy $$t1 1 (i32.const 13) (i32.const 11) (i32.const 4))
+ (table.copy $$t1 1 (i32.const 19) (i32.const 20) (i32.const 5)))
+ (func (export "check") (param i32) (result i32)
+ (call_indirect $$t1 (type 0) (local.get 0)))
+)`);
+
+// ./test/core/table_init.wast:347
+invoke($6, `test`, []);
+
+// ./test/core/table_init.wast:348
+assert_trap(() => invoke($6, `check`, [0]), `uninitialized element`);
+
+// ./test/core/table_init.wast:349
+assert_trap(() => invoke($6, `check`, [1]), `uninitialized element`);
+
+// ./test/core/table_init.wast:350
+assert_return(() => invoke($6, `check`, [2]), [value("i32", 3)]);
+
+// ./test/core/table_init.wast:351
+assert_return(() => invoke($6, `check`, [3]), [value("i32", 1)]);
+
+// ./test/core/table_init.wast:352
+assert_return(() => invoke($6, `check`, [4]), [value("i32", 4)]);
+
+// ./test/core/table_init.wast:353
+assert_return(() => invoke($6, `check`, [5]), [value("i32", 1)]);
+
+// ./test/core/table_init.wast:354
+assert_trap(() => invoke($6, `check`, [6]), `uninitialized element`);
+
+// ./test/core/table_init.wast:355
+assert_return(() => invoke($6, `check`, [7]), [value("i32", 2)]);
+
+// ./test/core/table_init.wast:356
+assert_return(() => invoke($6, `check`, [8]), [value("i32", 7)]);
+
+// ./test/core/table_init.wast:357
+assert_return(() => invoke($6, `check`, [9]), [value("i32", 1)]);
+
+// ./test/core/table_init.wast:358
+assert_return(() => invoke($6, `check`, [10]), [value("i32", 8)]);
+
+// ./test/core/table_init.wast:359
+assert_trap(() => invoke($6, `check`, [11]), `uninitialized element`);
+
+// ./test/core/table_init.wast:360
+assert_return(() => invoke($6, `check`, [12]), [value("i32", 7)]);
+
+// ./test/core/table_init.wast:361
+assert_trap(() => invoke($6, `check`, [13]), `uninitialized element`);
+
+// ./test/core/table_init.wast:362
+assert_return(() => invoke($6, `check`, [14]), [value("i32", 7)]);
+
+// ./test/core/table_init.wast:363
+assert_return(() => invoke($6, `check`, [15]), [value("i32", 5)]);
+
+// ./test/core/table_init.wast:364
+assert_return(() => invoke($6, `check`, [16]), [value("i32", 2)]);
+
+// ./test/core/table_init.wast:365
+assert_return(() => invoke($6, `check`, [17]), [value("i32", 7)]);
+
+// ./test/core/table_init.wast:366
+assert_trap(() => invoke($6, `check`, [18]), `uninitialized element`);
+
+// ./test/core/table_init.wast:367
+assert_return(() => invoke($6, `check`, [19]), [value("i32", 9)]);
+
+// ./test/core/table_init.wast:368
+assert_trap(() => invoke($6, `check`, [20]), `uninitialized element`);
+
+// ./test/core/table_init.wast:369
+assert_return(() => invoke($6, `check`, [21]), [value("i32", 7)]);
+
+// ./test/core/table_init.wast:370
+assert_trap(() => invoke($6, `check`, [22]), `uninitialized element`);
+
+// ./test/core/table_init.wast:371
+assert_return(() => invoke($6, `check`, [23]), [value("i32", 8)]);
+
+// ./test/core/table_init.wast:372
+assert_return(() => invoke($6, `check`, [24]), [value("i32", 8)]);
+
+// ./test/core/table_init.wast:373
+assert_trap(() => invoke($6, `check`, [25]), `uninitialized element`);
+
+// ./test/core/table_init.wast:374
+assert_trap(() => invoke($6, `check`, [26]), `uninitialized element`);
+
+// ./test/core/table_init.wast:375
+assert_trap(() => invoke($6, `check`, [27]), `uninitialized element`);
+
+// ./test/core/table_init.wast:376
+assert_trap(() => invoke($6, `check`, [28]), `uninitialized element`);
+
+// ./test/core/table_init.wast:377
+assert_trap(() => invoke($6, `check`, [29]), `uninitialized element`);
+
+// ./test/core/table_init.wast:378
+assert_invalid(
+ () => instantiate(`(module
+ (func (export "test")
+ (elem.drop 0)))`),
+ `unknown elem segment 0`,
+);
+
+// ./test/core/table_init.wast:384
+assert_invalid(
+ () => instantiate(`(module
+ (func (export "test")
+ (table.init 0 (i32.const 12) (i32.const 1) (i32.const 1))))`),
+ `unknown table 0`,
+);
+
+// ./test/core/table_init.wast:390
+assert_invalid(
+ () => instantiate(`(module
+ (elem funcref (ref.func 0))
+ (func (result i32) (i32.const 0))
+ (func (export "test")
+ (elem.drop 4)))`),
+ `unknown elem segment 4`,
+);
+
+// ./test/core/table_init.wast:398
+assert_invalid(
+ () => instantiate(`(module
+ (elem funcref (ref.func 0))
+ (func (result i32) (i32.const 0))
+ (func (export "test")
+ (table.init 4 (i32.const 12) (i32.const 1) (i32.const 1))))`),
+ `unknown table 0`,
+);
+
+// ./test/core/table_init.wast:407
+let $7 = instantiate(`(module
+ (table $$t0 30 30 funcref)
+ (table $$t1 28 28 funcref)
+ (elem (table $$t0) (i32.const 2) func 3 1 4 1)
+ (elem funcref
+ (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
+ (elem (table $$t0) (i32.const 12) func 7 5 2 3 6)
+ (elem funcref
+ (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
+ (func (result i32) (i32.const 0))
+ (func (result i32) (i32.const 1))
+ (func (result i32) (i32.const 2))
+ (func (result i32) (i32.const 3))
+ (func (result i32) (i32.const 4))
+ (func (result i32) (i32.const 5))
+ (func (result i32) (i32.const 6))
+ (func (result i32) (i32.const 7))
+ (func (result i32) (i32.const 8))
+ (func (result i32) (i32.const 9))
+ (func (export "test")
+ (elem.drop 2)
+ ))`);
+
+// ./test/core/table_init.wast:429
+invoke($7, `test`, []);
+
+// ./test/core/table_init.wast:431
+let $8 = instantiate(`(module
+ (table $$t0 30 30 funcref)
+ (table $$t1 28 28 funcref)
+ (elem (table $$t0) (i32.const 2) func 3 1 4 1)
+ (elem funcref
+ (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
+ (elem (table $$t0) (i32.const 12) func 7 5 2 3 6)
+ (elem funcref
+ (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
+ (func (result i32) (i32.const 0))
+ (func (result i32) (i32.const 1))
+ (func (result i32) (i32.const 2))
+ (func (result i32) (i32.const 3))
+ (func (result i32) (i32.const 4))
+ (func (result i32) (i32.const 5))
+ (func (result i32) (i32.const 6))
+ (func (result i32) (i32.const 7))
+ (func (result i32) (i32.const 8))
+ (func (result i32) (i32.const 9))
+ (func (export "test")
+ (table.init 2 (i32.const 12) (i32.const 1) (i32.const 1))
+ ))`);
+
+// ./test/core/table_init.wast:453
+assert_trap(() => invoke($8, `test`, []), `out of bounds table access`);
+
+// ./test/core/table_init.wast:455
+let $9 = instantiate(`(module
+ (table $$t0 30 30 funcref)
+ (table $$t1 28 28 funcref)
+ (elem (table $$t0) (i32.const 2) func 3 1 4 1)
+ (elem funcref
+ (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
+ (elem (table $$t0) (i32.const 12) func 7 5 2 3 6)
+ (elem funcref
+ (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
+ (func (result i32) (i32.const 0))
+ (func (result i32) (i32.const 1))
+ (func (result i32) (i32.const 2))
+ (func (result i32) (i32.const 3))
+ (func (result i32) (i32.const 4))
+ (func (result i32) (i32.const 5))
+ (func (result i32) (i32.const 6))
+ (func (result i32) (i32.const 7))
+ (func (result i32) (i32.const 8))
+ (func (result i32) (i32.const 9))
+ (func (export "test")
+ (table.init 1 (i32.const 12) (i32.const 1) (i32.const 1))
+ (table.init 1 (i32.const 21) (i32.const 1) (i32.const 1))))`);
+
+// ./test/core/table_init.wast:477
+invoke($9, `test`, []);
+
+// ./test/core/table_init.wast:479
+let $10 = instantiate(`(module
+ (table $$t0 30 30 funcref)
+ (table $$t1 28 28 funcref)
+ (elem (table $$t0) (i32.const 2) func 3 1 4 1)
+ (elem funcref
+ (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
+ (elem (table $$t0) (i32.const 12) func 7 5 2 3 6)
+ (elem funcref
+ (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
+ (func (result i32) (i32.const 0))
+ (func (result i32) (i32.const 1))
+ (func (result i32) (i32.const 2))
+ (func (result i32) (i32.const 3))
+ (func (result i32) (i32.const 4))
+ (func (result i32) (i32.const 5))
+ (func (result i32) (i32.const 6))
+ (func (result i32) (i32.const 7))
+ (func (result i32) (i32.const 8))
+ (func (result i32) (i32.const 9))
+ (func (export "test")
+ (elem.drop 1)
+ (elem.drop 1)))`);
+
+// ./test/core/table_init.wast:501
+invoke($10, `test`, []);
+
+// ./test/core/table_init.wast:503
+let $11 = instantiate(`(module
+ (table $$t0 30 30 funcref)
+ (table $$t1 28 28 funcref)
+ (elem (table $$t0) (i32.const 2) func 3 1 4 1)
+ (elem funcref
+ (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
+ (elem (table $$t0) (i32.const 12) func 7 5 2 3 6)
+ (elem funcref
+ (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
+ (func (result i32) (i32.const 0))
+ (func (result i32) (i32.const 1))
+ (func (result i32) (i32.const 2))
+ (func (result i32) (i32.const 3))
+ (func (result i32) (i32.const 4))
+ (func (result i32) (i32.const 5))
+ (func (result i32) (i32.const 6))
+ (func (result i32) (i32.const 7))
+ (func (result i32) (i32.const 8))
+ (func (result i32) (i32.const 9))
+ (func (export "test")
+ (elem.drop 1)
+ (table.init 1 (i32.const 12) (i32.const 1) (i32.const 1))))`);
+
+// ./test/core/table_init.wast:525
+assert_trap(() => invoke($11, `test`, []), `out of bounds table access`);
+
+// ./test/core/table_init.wast:527
+let $12 = instantiate(`(module
+ (table $$t0 30 30 funcref)
+ (table $$t1 28 28 funcref)
+ (elem (table $$t0) (i32.const 2) func 3 1 4 1)
+ (elem funcref
+ (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
+ (elem (table $$t0) (i32.const 12) func 7 5 2 3 6)
+ (elem funcref
+ (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
+ (func (result i32) (i32.const 0))
+ (func (result i32) (i32.const 1))
+ (func (result i32) (i32.const 2))
+ (func (result i32) (i32.const 3))
+ (func (result i32) (i32.const 4))
+ (func (result i32) (i32.const 5))
+ (func (result i32) (i32.const 6))
+ (func (result i32) (i32.const 7))
+ (func (result i32) (i32.const 8))
+ (func (result i32) (i32.const 9))
+ (func (export "test")
+ (table.init 1 (i32.const 12) (i32.const 0) (i32.const 5))
+ ))`);
+
+// ./test/core/table_init.wast:549
+assert_trap(() => invoke($12, `test`, []), `out of bounds table access`);
+
+// ./test/core/table_init.wast:551
+let $13 = instantiate(`(module
+ (table $$t0 30 30 funcref)
+ (table $$t1 28 28 funcref)
+ (elem (table $$t0) (i32.const 2) func 3 1 4 1)
+ (elem funcref
+ (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
+ (elem (table $$t0) (i32.const 12) func 7 5 2 3 6)
+ (elem funcref
+ (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
+ (func (result i32) (i32.const 0))
+ (func (result i32) (i32.const 1))
+ (func (result i32) (i32.const 2))
+ (func (result i32) (i32.const 3))
+ (func (result i32) (i32.const 4))
+ (func (result i32) (i32.const 5))
+ (func (result i32) (i32.const 6))
+ (func (result i32) (i32.const 7))
+ (func (result i32) (i32.const 8))
+ (func (result i32) (i32.const 9))
+ (func (export "test")
+ (table.init 1 (i32.const 12) (i32.const 2) (i32.const 3))
+ ))`);
+
+// ./test/core/table_init.wast:573
+assert_trap(() => invoke($13, `test`, []), `out of bounds table access`);
+
+// ./test/core/table_init.wast:575
+let $14 = instantiate(`(module
+ (table $$t0 30 30 funcref)
+ (table $$t1 28 28 funcref)
+ (elem (table $$t0) (i32.const 2) func 3 1 4 1)
+ (elem funcref
+ (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
+ (elem (table $$t0) (i32.const 12) func 7 5 2 3 6)
+ (elem funcref
+ (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
+ (func (result i32) (i32.const 0))
+ (func (result i32) (i32.const 1))
+ (func (result i32) (i32.const 2))
+ (func (result i32) (i32.const 3))
+ (func (result i32) (i32.const 4))
+ (func (result i32) (i32.const 5))
+ (func (result i32) (i32.const 6))
+ (func (result i32) (i32.const 7))
+ (func (result i32) (i32.const 8))
+ (func (result i32) (i32.const 9))
+ (func (export "test")
+ (table.init $$t0 1 (i32.const 28) (i32.const 1) (i32.const 3))
+ ))`);
+
+// ./test/core/table_init.wast:597
+assert_trap(() => invoke($14, `test`, []), `out of bounds table access`);
+
+// ./test/core/table_init.wast:599
+let $15 = instantiate(`(module
+ (table $$t0 30 30 funcref)
+ (table $$t1 28 28 funcref)
+ (elem (table $$t0) (i32.const 2) func 3 1 4 1)
+ (elem funcref
+ (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
+ (elem (table $$t0) (i32.const 12) func 7 5 2 3 6)
+ (elem funcref
+ (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
+ (func (result i32) (i32.const 0))
+ (func (result i32) (i32.const 1))
+ (func (result i32) (i32.const 2))
+ (func (result i32) (i32.const 3))
+ (func (result i32) (i32.const 4))
+ (func (result i32) (i32.const 5))
+ (func (result i32) (i32.const 6))
+ (func (result i32) (i32.const 7))
+ (func (result i32) (i32.const 8))
+ (func (result i32) (i32.const 9))
+ (func (export "test")
+ (table.init $$t0 1 (i32.const 12) (i32.const 4) (i32.const 0))
+ ))`);
+
+// ./test/core/table_init.wast:621
+invoke($15, `test`, []);
+
+// ./test/core/table_init.wast:623
+let $16 = instantiate(`(module
+ (table $$t0 30 30 funcref)
+ (table $$t1 28 28 funcref)
+ (elem (table $$t0) (i32.const 2) func 3 1 4 1)
+ (elem funcref
+ (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
+ (elem (table $$t0) (i32.const 12) func 7 5 2 3 6)
+ (elem funcref
+ (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
+ (func (result i32) (i32.const 0))
+ (func (result i32) (i32.const 1))
+ (func (result i32) (i32.const 2))
+ (func (result i32) (i32.const 3))
+ (func (result i32) (i32.const 4))
+ (func (result i32) (i32.const 5))
+ (func (result i32) (i32.const 6))
+ (func (result i32) (i32.const 7))
+ (func (result i32) (i32.const 8))
+ (func (result i32) (i32.const 9))
+ (func (export "test")
+ (table.init $$t0 1 (i32.const 12) (i32.const 5) (i32.const 0))
+ ))`);
+
+// ./test/core/table_init.wast:645
+assert_trap(() => invoke($16, `test`, []), `out of bounds table access`);
+
+// ./test/core/table_init.wast:647
+let $17 = instantiate(`(module
+ (table $$t0 30 30 funcref)
+ (table $$t1 28 28 funcref)
+ (elem (table $$t0) (i32.const 2) func 3 1 4 1)
+ (elem funcref
+ (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
+ (elem (table $$t0) (i32.const 12) func 7 5 2 3 6)
+ (elem funcref
+ (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
+ (func (result i32) (i32.const 0))
+ (func (result i32) (i32.const 1))
+ (func (result i32) (i32.const 2))
+ (func (result i32) (i32.const 3))
+ (func (result i32) (i32.const 4))
+ (func (result i32) (i32.const 5))
+ (func (result i32) (i32.const 6))
+ (func (result i32) (i32.const 7))
+ (func (result i32) (i32.const 8))
+ (func (result i32) (i32.const 9))
+ (func (export "test")
+ (table.init $$t0 1 (i32.const 30) (i32.const 2) (i32.const 0))
+ ))`);
+
+// ./test/core/table_init.wast:669
+invoke($17, `test`, []);
+
+// ./test/core/table_init.wast:671
+let $18 = instantiate(`(module
+ (table $$t0 30 30 funcref)
+ (table $$t1 28 28 funcref)
+ (elem (table $$t0) (i32.const 2) func 3 1 4 1)
+ (elem funcref
+ (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
+ (elem (table $$t0) (i32.const 12) func 7 5 2 3 6)
+ (elem funcref
+ (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
+ (func (result i32) (i32.const 0))
+ (func (result i32) (i32.const 1))
+ (func (result i32) (i32.const 2))
+ (func (result i32) (i32.const 3))
+ (func (result i32) (i32.const 4))
+ (func (result i32) (i32.const 5))
+ (func (result i32) (i32.const 6))
+ (func (result i32) (i32.const 7))
+ (func (result i32) (i32.const 8))
+ (func (result i32) (i32.const 9))
+ (func (export "test")
+ (table.init $$t0 1 (i32.const 31) (i32.const 2) (i32.const 0))
+ ))`);
+
+// ./test/core/table_init.wast:693
+assert_trap(() => invoke($18, `test`, []), `out of bounds table access`);
+
+// ./test/core/table_init.wast:695
+let $19 = instantiate(`(module
+ (table $$t0 30 30 funcref)
+ (table $$t1 28 28 funcref)
+ (elem (table $$t0) (i32.const 2) func 3 1 4 1)
+ (elem funcref
+ (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
+ (elem (table $$t0) (i32.const 12) func 7 5 2 3 6)
+ (elem funcref
+ (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
+ (func (result i32) (i32.const 0))
+ (func (result i32) (i32.const 1))
+ (func (result i32) (i32.const 2))
+ (func (result i32) (i32.const 3))
+ (func (result i32) (i32.const 4))
+ (func (result i32) (i32.const 5))
+ (func (result i32) (i32.const 6))
+ (func (result i32) (i32.const 7))
+ (func (result i32) (i32.const 8))
+ (func (result i32) (i32.const 9))
+ (func (export "test")
+ (table.init $$t0 1 (i32.const 30) (i32.const 4) (i32.const 0))
+ ))`);
+
+// ./test/core/table_init.wast:717
+invoke($19, `test`, []);
+
+// ./test/core/table_init.wast:719
+let $20 = instantiate(`(module
+ (table $$t0 30 30 funcref)
+ (table $$t1 28 28 funcref)
+ (elem (table $$t0) (i32.const 2) func 3 1 4 1)
+ (elem funcref
+ (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
+ (elem (table $$t0) (i32.const 12) func 7 5 2 3 6)
+ (elem funcref
+ (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
+ (func (result i32) (i32.const 0))
+ (func (result i32) (i32.const 1))
+ (func (result i32) (i32.const 2))
+ (func (result i32) (i32.const 3))
+ (func (result i32) (i32.const 4))
+ (func (result i32) (i32.const 5))
+ (func (result i32) (i32.const 6))
+ (func (result i32) (i32.const 7))
+ (func (result i32) (i32.const 8))
+ (func (result i32) (i32.const 9))
+ (func (export "test")
+ (table.init $$t0 1 (i32.const 31) (i32.const 5) (i32.const 0))
+ ))`);
+
+// ./test/core/table_init.wast:741
+assert_trap(() => invoke($20, `test`, []), `out of bounds table access`);
+
+// ./test/core/table_init.wast:743
+let $21 = instantiate(`(module
+ (table $$t0 30 30 funcref)
+ (table $$t1 28 28 funcref)
+ (elem (table $$t1) (i32.const 2) func 3 1 4 1)
+ (elem funcref
+ (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
+ (elem (table $$t1) (i32.const 12) func 7 5 2 3 6)
+ (elem funcref
+ (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
+ (func (result i32) (i32.const 0))
+ (func (result i32) (i32.const 1))
+ (func (result i32) (i32.const 2))
+ (func (result i32) (i32.const 3))
+ (func (result i32) (i32.const 4))
+ (func (result i32) (i32.const 5))
+ (func (result i32) (i32.const 6))
+ (func (result i32) (i32.const 7))
+ (func (result i32) (i32.const 8))
+ (func (result i32) (i32.const 9))
+ (func (export "test")
+ (table.init $$t1 1 (i32.const 26) (i32.const 1) (i32.const 3))
+ ))`);
+
+// ./test/core/table_init.wast:765
+assert_trap(() => invoke($21, `test`, []), `out of bounds table access`);
+
+// ./test/core/table_init.wast:767
+let $22 = instantiate(`(module
+ (table $$t0 30 30 funcref)
+ (table $$t1 28 28 funcref)
+ (elem (table $$t1) (i32.const 2) func 3 1 4 1)
+ (elem funcref
+ (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
+ (elem (table $$t1) (i32.const 12) func 7 5 2 3 6)
+ (elem funcref
+ (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
+ (func (result i32) (i32.const 0))
+ (func (result i32) (i32.const 1))
+ (func (result i32) (i32.const 2))
+ (func (result i32) (i32.const 3))
+ (func (result i32) (i32.const 4))
+ (func (result i32) (i32.const 5))
+ (func (result i32) (i32.const 6))
+ (func (result i32) (i32.const 7))
+ (func (result i32) (i32.const 8))
+ (func (result i32) (i32.const 9))
+ (func (export "test")
+ (table.init $$t1 1 (i32.const 12) (i32.const 4) (i32.const 0))
+ ))`);
+
+// ./test/core/table_init.wast:789
+invoke($22, `test`, []);
+
+// ./test/core/table_init.wast:791
+let $23 = instantiate(`(module
+ (table $$t0 30 30 funcref)
+ (table $$t1 28 28 funcref)
+ (elem (table $$t1) (i32.const 2) func 3 1 4 1)
+ (elem funcref
+ (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
+ (elem (table $$t1) (i32.const 12) func 7 5 2 3 6)
+ (elem funcref
+ (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
+ (func (result i32) (i32.const 0))
+ (func (result i32) (i32.const 1))
+ (func (result i32) (i32.const 2))
+ (func (result i32) (i32.const 3))
+ (func (result i32) (i32.const 4))
+ (func (result i32) (i32.const 5))
+ (func (result i32) (i32.const 6))
+ (func (result i32) (i32.const 7))
+ (func (result i32) (i32.const 8))
+ (func (result i32) (i32.const 9))
+ (func (export "test")
+ (table.init $$t1 1 (i32.const 12) (i32.const 5) (i32.const 0))
+ ))`);
+
+// ./test/core/table_init.wast:813
+assert_trap(() => invoke($23, `test`, []), `out of bounds table access`);
+
+// ./test/core/table_init.wast:815
+let $24 = instantiate(`(module
+ (table $$t0 30 30 funcref)
+ (table $$t1 28 28 funcref)
+ (elem (table $$t1) (i32.const 2) func 3 1 4 1)
+ (elem funcref
+ (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
+ (elem (table $$t1) (i32.const 12) func 7 5 2 3 6)
+ (elem funcref
+ (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
+ (func (result i32) (i32.const 0))
+ (func (result i32) (i32.const 1))
+ (func (result i32) (i32.const 2))
+ (func (result i32) (i32.const 3))
+ (func (result i32) (i32.const 4))
+ (func (result i32) (i32.const 5))
+ (func (result i32) (i32.const 6))
+ (func (result i32) (i32.const 7))
+ (func (result i32) (i32.const 8))
+ (func (result i32) (i32.const 9))
+ (func (export "test")
+ (table.init $$t1 1 (i32.const 28) (i32.const 2) (i32.const 0))
+ ))`);
+
+// ./test/core/table_init.wast:837
+invoke($24, `test`, []);
+
+// ./test/core/table_init.wast:839
+let $25 = instantiate(`(module
+ (table $$t0 30 30 funcref)
+ (table $$t1 28 28 funcref)
+ (elem (table $$t1) (i32.const 2) func 3 1 4 1)
+ (elem funcref
+ (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
+ (elem (table $$t1) (i32.const 12) func 7 5 2 3 6)
+ (elem funcref
+ (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
+ (func (result i32) (i32.const 0))
+ (func (result i32) (i32.const 1))
+ (func (result i32) (i32.const 2))
+ (func (result i32) (i32.const 3))
+ (func (result i32) (i32.const 4))
+ (func (result i32) (i32.const 5))
+ (func (result i32) (i32.const 6))
+ (func (result i32) (i32.const 7))
+ (func (result i32) (i32.const 8))
+ (func (result i32) (i32.const 9))
+ (func (export "test")
+ (table.init $$t1 1 (i32.const 29) (i32.const 2) (i32.const 0))
+ ))`);
+
+// ./test/core/table_init.wast:861
+assert_trap(() => invoke($25, `test`, []), `out of bounds table access`);
+
+// ./test/core/table_init.wast:863
+let $26 = instantiate(`(module
+ (table $$t0 30 30 funcref)
+ (table $$t1 28 28 funcref)
+ (elem (table $$t1) (i32.const 2) func 3 1 4 1)
+ (elem funcref
+ (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
+ (elem (table $$t1) (i32.const 12) func 7 5 2 3 6)
+ (elem funcref
+ (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
+ (func (result i32) (i32.const 0))
+ (func (result i32) (i32.const 1))
+ (func (result i32) (i32.const 2))
+ (func (result i32) (i32.const 3))
+ (func (result i32) (i32.const 4))
+ (func (result i32) (i32.const 5))
+ (func (result i32) (i32.const 6))
+ (func (result i32) (i32.const 7))
+ (func (result i32) (i32.const 8))
+ (func (result i32) (i32.const 9))
+ (func (export "test")
+ (table.init $$t1 1 (i32.const 28) (i32.const 4) (i32.const 0))
+ ))`);
+
+// ./test/core/table_init.wast:885
+invoke($26, `test`, []);
+
+// ./test/core/table_init.wast:887
+let $27 = instantiate(`(module
+ (table $$t0 30 30 funcref)
+ (table $$t1 28 28 funcref)
+ (elem (table $$t1) (i32.const 2) func 3 1 4 1)
+ (elem funcref
+ (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
+ (elem (table $$t1) (i32.const 12) func 7 5 2 3 6)
+ (elem funcref
+ (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
+ (func (result i32) (i32.const 0))
+ (func (result i32) (i32.const 1))
+ (func (result i32) (i32.const 2))
+ (func (result i32) (i32.const 3))
+ (func (result i32) (i32.const 4))
+ (func (result i32) (i32.const 5))
+ (func (result i32) (i32.const 6))
+ (func (result i32) (i32.const 7))
+ (func (result i32) (i32.const 8))
+ (func (result i32) (i32.const 9))
+ (func (export "test")
+ (table.init $$t1 1 (i32.const 29) (i32.const 5) (i32.const 0))
+ ))`);
+
+// ./test/core/table_init.wast:909
+assert_trap(() => invoke($27, `test`, []), `out of bounds table access`);
+
+// ./test/core/table_init.wast:911
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (i32.const 1) (i32.const 1) (f32.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:920
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (i32.const 1) (i32.const 1) (i64.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:929
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (i32.const 1) (i32.const 1) (f64.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:938
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (i32.const 1) (f32.const 1) (i32.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:947
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (i32.const 1) (f32.const 1) (f32.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:956
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (i32.const 1) (f32.const 1) (i64.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:965
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (i32.const 1) (f32.const 1) (f64.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:974
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (i32.const 1) (i64.const 1) (i32.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:983
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (i32.const 1) (i64.const 1) (f32.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:992
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (i32.const 1) (i64.const 1) (i64.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:1001
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (i32.const 1) (i64.const 1) (f64.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:1010
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (i32.const 1) (f64.const 1) (i32.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:1019
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (i32.const 1) (f64.const 1) (f32.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:1028
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (i32.const 1) (f64.const 1) (i64.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:1037
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (i32.const 1) (f64.const 1) (f64.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:1046
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (f32.const 1) (i32.const 1) (i32.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:1055
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (f32.const 1) (i32.const 1) (f32.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:1064
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (f32.const 1) (i32.const 1) (i64.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:1073
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (f32.const 1) (i32.const 1) (f64.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:1082
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (f32.const 1) (f32.const 1) (i32.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:1091
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (f32.const 1) (f32.const 1) (f32.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:1100
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (f32.const 1) (f32.const 1) (i64.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:1109
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (f32.const 1) (f32.const 1) (f64.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:1118
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (f32.const 1) (i64.const 1) (i32.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:1127
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (f32.const 1) (i64.const 1) (f32.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:1136
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (f32.const 1) (i64.const 1) (i64.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:1145
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (f32.const 1) (i64.const 1) (f64.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:1154
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (f32.const 1) (f64.const 1) (i32.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:1163
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (f32.const 1) (f64.const 1) (f32.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:1172
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (f32.const 1) (f64.const 1) (i64.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:1181
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (f32.const 1) (f64.const 1) (f64.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:1190
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (i64.const 1) (i32.const 1) (i32.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:1199
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (i64.const 1) (i32.const 1) (f32.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:1208
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (i64.const 1) (i32.const 1) (i64.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:1217
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (i64.const 1) (i32.const 1) (f64.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:1226
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (i64.const 1) (f32.const 1) (i32.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:1235
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (i64.const 1) (f32.const 1) (f32.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:1244
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (i64.const 1) (f32.const 1) (i64.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:1253
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (i64.const 1) (f32.const 1) (f64.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:1262
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (i64.const 1) (i64.const 1) (i32.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:1271
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (i64.const 1) (i64.const 1) (f32.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:1280
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (i64.const 1) (i64.const 1) (i64.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:1289
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (i64.const 1) (i64.const 1) (f64.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:1298
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (i64.const 1) (f64.const 1) (i32.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:1307
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (i64.const 1) (f64.const 1) (f32.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:1316
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (i64.const 1) (f64.const 1) (i64.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:1325
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (i64.const 1) (f64.const 1) (f64.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:1334
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (f64.const 1) (i32.const 1) (i32.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:1343
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (f64.const 1) (i32.const 1) (f32.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:1352
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (f64.const 1) (i32.const 1) (i64.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:1361
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (f64.const 1) (i32.const 1) (f64.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:1370
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (f64.const 1) (f32.const 1) (i32.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:1379
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (f64.const 1) (f32.const 1) (f32.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:1388
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (f64.const 1) (f32.const 1) (i64.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:1397
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (f64.const 1) (f32.const 1) (f64.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:1406
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (f64.const 1) (i64.const 1) (i32.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:1415
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (f64.const 1) (i64.const 1) (f32.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:1424
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (f64.const 1) (i64.const 1) (i64.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:1433
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (f64.const 1) (i64.const 1) (f64.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:1442
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (f64.const 1) (f64.const 1) (i32.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:1451
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (f64.const 1) (f64.const 1) (f32.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:1460
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (f64.const 1) (f64.const 1) (i64.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:1469
+assert_invalid(
+ () => instantiate(`(module
+ (table 10 funcref)
+ (elem funcref (ref.func $$f0) (ref.func $$f0) (ref.func $$f0))
+ (func $$f0)
+ (func (export "test")
+ (table.init 0 (f64.const 1) (f64.const 1) (f64.const 1))))`),
+ `type mismatch`,
+);
+
+// ./test/core/table_init.wast:1478
+let $28 = instantiate(`(module
+ (type (func (result i32)))
+ (table 32 64 funcref)
+ (elem funcref
+ (ref.func $$f0) (ref.func $$f1) (ref.func $$f2) (ref.func $$f3)
+ (ref.func $$f4) (ref.func $$f5) (ref.func $$f6) (ref.func $$f7)
+ (ref.func $$f8) (ref.func $$f9) (ref.func $$f10) (ref.func $$f11)
+ (ref.func $$f12) (ref.func $$f13) (ref.func $$f14) (ref.func $$f15))
+ (func $$f0 (export "f0") (result i32) (i32.const 0))
+ (func $$f1 (export "f1") (result i32) (i32.const 1))
+ (func $$f2 (export "f2") (result i32) (i32.const 2))
+ (func $$f3 (export "f3") (result i32) (i32.const 3))
+ (func $$f4 (export "f4") (result i32) (i32.const 4))
+ (func $$f5 (export "f5") (result i32) (i32.const 5))
+ (func $$f6 (export "f6") (result i32) (i32.const 6))
+ (func $$f7 (export "f7") (result i32) (i32.const 7))
+ (func $$f8 (export "f8") (result i32) (i32.const 8))
+ (func $$f9 (export "f9") (result i32) (i32.const 9))
+ (func $$f10 (export "f10") (result i32) (i32.const 10))
+ (func $$f11 (export "f11") (result i32) (i32.const 11))
+ (func $$f12 (export "f12") (result i32) (i32.const 12))
+ (func $$f13 (export "f13") (result i32) (i32.const 13))
+ (func $$f14 (export "f14") (result i32) (i32.const 14))
+ (func $$f15 (export "f15") (result i32) (i32.const 15))
+ (func (export "test") (param $$n i32) (result i32)
+ (call_indirect (type 0) (local.get $$n)))
+ (func (export "run") (param $$offs i32) (param $$len i32)
+ (table.init 0 (local.get $$offs) (i32.const 0) (local.get $$len))))`);
+
+// ./test/core/table_init.wast:1506
+assert_trap(() => invoke($28, `run`, [24, 16]), `out of bounds table access`);
+
+// ./test/core/table_init.wast:1507
+assert_trap(() => invoke($28, `test`, [0]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1508
+assert_trap(() => invoke($28, `test`, [1]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1509
+assert_trap(() => invoke($28, `test`, [2]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1510
+assert_trap(() => invoke($28, `test`, [3]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1511
+assert_trap(() => invoke($28, `test`, [4]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1512
+assert_trap(() => invoke($28, `test`, [5]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1513
+assert_trap(() => invoke($28, `test`, [6]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1514
+assert_trap(() => invoke($28, `test`, [7]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1515
+assert_trap(() => invoke($28, `test`, [8]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1516
+assert_trap(() => invoke($28, `test`, [9]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1517
+assert_trap(() => invoke($28, `test`, [10]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1518
+assert_trap(() => invoke($28, `test`, [11]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1519
+assert_trap(() => invoke($28, `test`, [12]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1520
+assert_trap(() => invoke($28, `test`, [13]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1521
+assert_trap(() => invoke($28, `test`, [14]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1522
+assert_trap(() => invoke($28, `test`, [15]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1523
+assert_trap(() => invoke($28, `test`, [16]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1524
+assert_trap(() => invoke($28, `test`, [17]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1525
+assert_trap(() => invoke($28, `test`, [18]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1526
+assert_trap(() => invoke($28, `test`, [19]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1527
+assert_trap(() => invoke($28, `test`, [20]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1528
+assert_trap(() => invoke($28, `test`, [21]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1529
+assert_trap(() => invoke($28, `test`, [22]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1530
+assert_trap(() => invoke($28, `test`, [23]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1531
+assert_trap(() => invoke($28, `test`, [24]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1532
+assert_trap(() => invoke($28, `test`, [25]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1533
+assert_trap(() => invoke($28, `test`, [26]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1534
+assert_trap(() => invoke($28, `test`, [27]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1535
+assert_trap(() => invoke($28, `test`, [28]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1536
+assert_trap(() => invoke($28, `test`, [29]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1537
+assert_trap(() => invoke($28, `test`, [30]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1538
+assert_trap(() => invoke($28, `test`, [31]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1540
+let $29 = instantiate(`(module
+ (type (func (result i32)))
+ (table 32 64 funcref)
+ (elem funcref
+ (ref.func $$f0) (ref.func $$f1) (ref.func $$f2) (ref.func $$f3)
+ (ref.func $$f4) (ref.func $$f5) (ref.func $$f6) (ref.func $$f7)
+ (ref.func $$f8) (ref.func $$f9) (ref.func $$f10) (ref.func $$f11)
+ (ref.func $$f12) (ref.func $$f13) (ref.func $$f14) (ref.func $$f15))
+ (func $$f0 (export "f0") (result i32) (i32.const 0))
+ (func $$f1 (export "f1") (result i32) (i32.const 1))
+ (func $$f2 (export "f2") (result i32) (i32.const 2))
+ (func $$f3 (export "f3") (result i32) (i32.const 3))
+ (func $$f4 (export "f4") (result i32) (i32.const 4))
+ (func $$f5 (export "f5") (result i32) (i32.const 5))
+ (func $$f6 (export "f6") (result i32) (i32.const 6))
+ (func $$f7 (export "f7") (result i32) (i32.const 7))
+ (func $$f8 (export "f8") (result i32) (i32.const 8))
+ (func $$f9 (export "f9") (result i32) (i32.const 9))
+ (func $$f10 (export "f10") (result i32) (i32.const 10))
+ (func $$f11 (export "f11") (result i32) (i32.const 11))
+ (func $$f12 (export "f12") (result i32) (i32.const 12))
+ (func $$f13 (export "f13") (result i32) (i32.const 13))
+ (func $$f14 (export "f14") (result i32) (i32.const 14))
+ (func $$f15 (export "f15") (result i32) (i32.const 15))
+ (func (export "test") (param $$n i32) (result i32)
+ (call_indirect (type 0) (local.get $$n)))
+ (func (export "run") (param $$offs i32) (param $$len i32)
+ (table.init 0 (local.get $$offs) (i32.const 0) (local.get $$len))))`);
+
+// ./test/core/table_init.wast:1568
+assert_trap(() => invoke($29, `run`, [25, 16]), `out of bounds table access`);
+
+// ./test/core/table_init.wast:1569
+assert_trap(() => invoke($29, `test`, [0]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1570
+assert_trap(() => invoke($29, `test`, [1]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1571
+assert_trap(() => invoke($29, `test`, [2]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1572
+assert_trap(() => invoke($29, `test`, [3]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1573
+assert_trap(() => invoke($29, `test`, [4]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1574
+assert_trap(() => invoke($29, `test`, [5]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1575
+assert_trap(() => invoke($29, `test`, [6]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1576
+assert_trap(() => invoke($29, `test`, [7]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1577
+assert_trap(() => invoke($29, `test`, [8]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1578
+assert_trap(() => invoke($29, `test`, [9]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1579
+assert_trap(() => invoke($29, `test`, [10]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1580
+assert_trap(() => invoke($29, `test`, [11]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1581
+assert_trap(() => invoke($29, `test`, [12]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1582
+assert_trap(() => invoke($29, `test`, [13]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1583
+assert_trap(() => invoke($29, `test`, [14]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1584
+assert_trap(() => invoke($29, `test`, [15]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1585
+assert_trap(() => invoke($29, `test`, [16]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1586
+assert_trap(() => invoke($29, `test`, [17]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1587
+assert_trap(() => invoke($29, `test`, [18]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1588
+assert_trap(() => invoke($29, `test`, [19]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1589
+assert_trap(() => invoke($29, `test`, [20]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1590
+assert_trap(() => invoke($29, `test`, [21]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1591
+assert_trap(() => invoke($29, `test`, [22]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1592
+assert_trap(() => invoke($29, `test`, [23]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1593
+assert_trap(() => invoke($29, `test`, [24]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1594
+assert_trap(() => invoke($29, `test`, [25]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1595
+assert_trap(() => invoke($29, `test`, [26]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1596
+assert_trap(() => invoke($29, `test`, [27]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1597
+assert_trap(() => invoke($29, `test`, [28]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1598
+assert_trap(() => invoke($29, `test`, [29]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1599
+assert_trap(() => invoke($29, `test`, [30]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1600
+assert_trap(() => invoke($29, `test`, [31]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1602
+let $30 = instantiate(`(module
+ (type (func (result i32)))
+ (table 160 320 funcref)
+ (elem funcref
+ (ref.func $$f0) (ref.func $$f1) (ref.func $$f2) (ref.func $$f3)
+ (ref.func $$f4) (ref.func $$f5) (ref.func $$f6) (ref.func $$f7)
+ (ref.func $$f8) (ref.func $$f9) (ref.func $$f10) (ref.func $$f11)
+ (ref.func $$f12) (ref.func $$f13) (ref.func $$f14) (ref.func $$f15))
+ (func $$f0 (export "f0") (result i32) (i32.const 0))
+ (func $$f1 (export "f1") (result i32) (i32.const 1))
+ (func $$f2 (export "f2") (result i32) (i32.const 2))
+ (func $$f3 (export "f3") (result i32) (i32.const 3))
+ (func $$f4 (export "f4") (result i32) (i32.const 4))
+ (func $$f5 (export "f5") (result i32) (i32.const 5))
+ (func $$f6 (export "f6") (result i32) (i32.const 6))
+ (func $$f7 (export "f7") (result i32) (i32.const 7))
+ (func $$f8 (export "f8") (result i32) (i32.const 8))
+ (func $$f9 (export "f9") (result i32) (i32.const 9))
+ (func $$f10 (export "f10") (result i32) (i32.const 10))
+ (func $$f11 (export "f11") (result i32) (i32.const 11))
+ (func $$f12 (export "f12") (result i32) (i32.const 12))
+ (func $$f13 (export "f13") (result i32) (i32.const 13))
+ (func $$f14 (export "f14") (result i32) (i32.const 14))
+ (func $$f15 (export "f15") (result i32) (i32.const 15))
+ (func (export "test") (param $$n i32) (result i32)
+ (call_indirect (type 0) (local.get $$n)))
+ (func (export "run") (param $$offs i32) (param $$len i32)
+ (table.init 0 (local.get $$offs) (i32.const 0) (local.get $$len))))`);
+
+// ./test/core/table_init.wast:1630
+assert_trap(() => invoke($30, `run`, [96, 32]), `out of bounds table access`);
+
+// ./test/core/table_init.wast:1631
+assert_trap(() => invoke($30, `test`, [0]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1632
+assert_trap(() => invoke($30, `test`, [1]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1633
+assert_trap(() => invoke($30, `test`, [2]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1634
+assert_trap(() => invoke($30, `test`, [3]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1635
+assert_trap(() => invoke($30, `test`, [4]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1636
+assert_trap(() => invoke($30, `test`, [5]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1637
+assert_trap(() => invoke($30, `test`, [6]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1638
+assert_trap(() => invoke($30, `test`, [7]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1639
+assert_trap(() => invoke($30, `test`, [8]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1640
+assert_trap(() => invoke($30, `test`, [9]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1641
+assert_trap(() => invoke($30, `test`, [10]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1642
+assert_trap(() => invoke($30, `test`, [11]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1643
+assert_trap(() => invoke($30, `test`, [12]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1644
+assert_trap(() => invoke($30, `test`, [13]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1645
+assert_trap(() => invoke($30, `test`, [14]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1646
+assert_trap(() => invoke($30, `test`, [15]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1647
+assert_trap(() => invoke($30, `test`, [16]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1648
+assert_trap(() => invoke($30, `test`, [17]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1649
+assert_trap(() => invoke($30, `test`, [18]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1650
+assert_trap(() => invoke($30, `test`, [19]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1651
+assert_trap(() => invoke($30, `test`, [20]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1652
+assert_trap(() => invoke($30, `test`, [21]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1653
+assert_trap(() => invoke($30, `test`, [22]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1654
+assert_trap(() => invoke($30, `test`, [23]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1655
+assert_trap(() => invoke($30, `test`, [24]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1656
+assert_trap(() => invoke($30, `test`, [25]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1657
+assert_trap(() => invoke($30, `test`, [26]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1658
+assert_trap(() => invoke($30, `test`, [27]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1659
+assert_trap(() => invoke($30, `test`, [28]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1660
+assert_trap(() => invoke($30, `test`, [29]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1661
+assert_trap(() => invoke($30, `test`, [30]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1662
+assert_trap(() => invoke($30, `test`, [31]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1663
+assert_trap(() => invoke($30, `test`, [32]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1664
+assert_trap(() => invoke($30, `test`, [33]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1665
+assert_trap(() => invoke($30, `test`, [34]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1666
+assert_trap(() => invoke($30, `test`, [35]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1667
+assert_trap(() => invoke($30, `test`, [36]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1668
+assert_trap(() => invoke($30, `test`, [37]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1669
+assert_trap(() => invoke($30, `test`, [38]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1670
+assert_trap(() => invoke($30, `test`, [39]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1671
+assert_trap(() => invoke($30, `test`, [40]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1672
+assert_trap(() => invoke($30, `test`, [41]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1673
+assert_trap(() => invoke($30, `test`, [42]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1674
+assert_trap(() => invoke($30, `test`, [43]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1675
+assert_trap(() => invoke($30, `test`, [44]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1676
+assert_trap(() => invoke($30, `test`, [45]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1677
+assert_trap(() => invoke($30, `test`, [46]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1678
+assert_trap(() => invoke($30, `test`, [47]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1679
+assert_trap(() => invoke($30, `test`, [48]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1680
+assert_trap(() => invoke($30, `test`, [49]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1681
+assert_trap(() => invoke($30, `test`, [50]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1682
+assert_trap(() => invoke($30, `test`, [51]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1683
+assert_trap(() => invoke($30, `test`, [52]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1684
+assert_trap(() => invoke($30, `test`, [53]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1685
+assert_trap(() => invoke($30, `test`, [54]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1686
+assert_trap(() => invoke($30, `test`, [55]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1687
+assert_trap(() => invoke($30, `test`, [56]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1688
+assert_trap(() => invoke($30, `test`, [57]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1689
+assert_trap(() => invoke($30, `test`, [58]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1690
+assert_trap(() => invoke($30, `test`, [59]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1691
+assert_trap(() => invoke($30, `test`, [60]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1692
+assert_trap(() => invoke($30, `test`, [61]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1693
+assert_trap(() => invoke($30, `test`, [62]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1694
+assert_trap(() => invoke($30, `test`, [63]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1695
+assert_trap(() => invoke($30, `test`, [64]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1696
+assert_trap(() => invoke($30, `test`, [65]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1697
+assert_trap(() => invoke($30, `test`, [66]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1698
+assert_trap(() => invoke($30, `test`, [67]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1699
+assert_trap(() => invoke($30, `test`, [68]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1700
+assert_trap(() => invoke($30, `test`, [69]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1701
+assert_trap(() => invoke($30, `test`, [70]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1702
+assert_trap(() => invoke($30, `test`, [71]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1703
+assert_trap(() => invoke($30, `test`, [72]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1704
+assert_trap(() => invoke($30, `test`, [73]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1705
+assert_trap(() => invoke($30, `test`, [74]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1706
+assert_trap(() => invoke($30, `test`, [75]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1707
+assert_trap(() => invoke($30, `test`, [76]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1708
+assert_trap(() => invoke($30, `test`, [77]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1709
+assert_trap(() => invoke($30, `test`, [78]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1710
+assert_trap(() => invoke($30, `test`, [79]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1711
+assert_trap(() => invoke($30, `test`, [80]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1712
+assert_trap(() => invoke($30, `test`, [81]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1713
+assert_trap(() => invoke($30, `test`, [82]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1714
+assert_trap(() => invoke($30, `test`, [83]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1715
+assert_trap(() => invoke($30, `test`, [84]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1716
+assert_trap(() => invoke($30, `test`, [85]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1717
+assert_trap(() => invoke($30, `test`, [86]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1718
+assert_trap(() => invoke($30, `test`, [87]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1719
+assert_trap(() => invoke($30, `test`, [88]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1720
+assert_trap(() => invoke($30, `test`, [89]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1721
+assert_trap(() => invoke($30, `test`, [90]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1722
+assert_trap(() => invoke($30, `test`, [91]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1723
+assert_trap(() => invoke($30, `test`, [92]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1724
+assert_trap(() => invoke($30, `test`, [93]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1725
+assert_trap(() => invoke($30, `test`, [94]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1726
+assert_trap(() => invoke($30, `test`, [95]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1727
+assert_trap(() => invoke($30, `test`, [96]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1728
+assert_trap(() => invoke($30, `test`, [97]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1729
+assert_trap(() => invoke($30, `test`, [98]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1730
+assert_trap(() => invoke($30, `test`, [99]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1731
+assert_trap(() => invoke($30, `test`, [100]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1732
+assert_trap(() => invoke($30, `test`, [101]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1733
+assert_trap(() => invoke($30, `test`, [102]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1734
+assert_trap(() => invoke($30, `test`, [103]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1735
+assert_trap(() => invoke($30, `test`, [104]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1736
+assert_trap(() => invoke($30, `test`, [105]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1737
+assert_trap(() => invoke($30, `test`, [106]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1738
+assert_trap(() => invoke($30, `test`, [107]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1739
+assert_trap(() => invoke($30, `test`, [108]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1740
+assert_trap(() => invoke($30, `test`, [109]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1741
+assert_trap(() => invoke($30, `test`, [110]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1742
+assert_trap(() => invoke($30, `test`, [111]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1743
+assert_trap(() => invoke($30, `test`, [112]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1744
+assert_trap(() => invoke($30, `test`, [113]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1745
+assert_trap(() => invoke($30, `test`, [114]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1746
+assert_trap(() => invoke($30, `test`, [115]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1747
+assert_trap(() => invoke($30, `test`, [116]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1748
+assert_trap(() => invoke($30, `test`, [117]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1749
+assert_trap(() => invoke($30, `test`, [118]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1750
+assert_trap(() => invoke($30, `test`, [119]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1751
+assert_trap(() => invoke($30, `test`, [120]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1752
+assert_trap(() => invoke($30, `test`, [121]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1753
+assert_trap(() => invoke($30, `test`, [122]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1754
+assert_trap(() => invoke($30, `test`, [123]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1755
+assert_trap(() => invoke($30, `test`, [124]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1756
+assert_trap(() => invoke($30, `test`, [125]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1757
+assert_trap(() => invoke($30, `test`, [126]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1758
+assert_trap(() => invoke($30, `test`, [127]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1759
+assert_trap(() => invoke($30, `test`, [128]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1760
+assert_trap(() => invoke($30, `test`, [129]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1761
+assert_trap(() => invoke($30, `test`, [130]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1762
+assert_trap(() => invoke($30, `test`, [131]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1763
+assert_trap(() => invoke($30, `test`, [132]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1764
+assert_trap(() => invoke($30, `test`, [133]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1765
+assert_trap(() => invoke($30, `test`, [134]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1766
+assert_trap(() => invoke($30, `test`, [135]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1767
+assert_trap(() => invoke($30, `test`, [136]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1768
+assert_trap(() => invoke($30, `test`, [137]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1769
+assert_trap(() => invoke($30, `test`, [138]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1770
+assert_trap(() => invoke($30, `test`, [139]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1771
+assert_trap(() => invoke($30, `test`, [140]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1772
+assert_trap(() => invoke($30, `test`, [141]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1773
+assert_trap(() => invoke($30, `test`, [142]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1774
+assert_trap(() => invoke($30, `test`, [143]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1775
+assert_trap(() => invoke($30, `test`, [144]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1776
+assert_trap(() => invoke($30, `test`, [145]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1777
+assert_trap(() => invoke($30, `test`, [146]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1778
+assert_trap(() => invoke($30, `test`, [147]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1779
+assert_trap(() => invoke($30, `test`, [148]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1780
+assert_trap(() => invoke($30, `test`, [149]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1781
+assert_trap(() => invoke($30, `test`, [150]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1782
+assert_trap(() => invoke($30, `test`, [151]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1783
+assert_trap(() => invoke($30, `test`, [152]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1784
+assert_trap(() => invoke($30, `test`, [153]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1785
+assert_trap(() => invoke($30, `test`, [154]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1786
+assert_trap(() => invoke($30, `test`, [155]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1787
+assert_trap(() => invoke($30, `test`, [156]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1788
+assert_trap(() => invoke($30, `test`, [157]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1789
+assert_trap(() => invoke($30, `test`, [158]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1790
+assert_trap(() => invoke($30, `test`, [159]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1792
+let $31 = instantiate(`(module
+ (type (func (result i32)))
+ (table 160 320 funcref)
+ (elem funcref
+ (ref.func $$f0) (ref.func $$f1) (ref.func $$f2) (ref.func $$f3)
+ (ref.func $$f4) (ref.func $$f5) (ref.func $$f6) (ref.func $$f7)
+ (ref.func $$f8) (ref.func $$f9) (ref.func $$f10) (ref.func $$f11)
+ (ref.func $$f12) (ref.func $$f13) (ref.func $$f14) (ref.func $$f15))
+ (func $$f0 (export "f0") (result i32) (i32.const 0))
+ (func $$f1 (export "f1") (result i32) (i32.const 1))
+ (func $$f2 (export "f2") (result i32) (i32.const 2))
+ (func $$f3 (export "f3") (result i32) (i32.const 3))
+ (func $$f4 (export "f4") (result i32) (i32.const 4))
+ (func $$f5 (export "f5") (result i32) (i32.const 5))
+ (func $$f6 (export "f6") (result i32) (i32.const 6))
+ (func $$f7 (export "f7") (result i32) (i32.const 7))
+ (func $$f8 (export "f8") (result i32) (i32.const 8))
+ (func $$f9 (export "f9") (result i32) (i32.const 9))
+ (func $$f10 (export "f10") (result i32) (i32.const 10))
+ (func $$f11 (export "f11") (result i32) (i32.const 11))
+ (func $$f12 (export "f12") (result i32) (i32.const 12))
+ (func $$f13 (export "f13") (result i32) (i32.const 13))
+ (func $$f14 (export "f14") (result i32) (i32.const 14))
+ (func $$f15 (export "f15") (result i32) (i32.const 15))
+ (func (export "test") (param $$n i32) (result i32)
+ (call_indirect (type 0) (local.get $$n)))
+ (func (export "run") (param $$offs i32) (param $$len i32)
+ (table.init 0 (local.get $$offs) (i32.const 0) (local.get $$len))))`);
+
+// ./test/core/table_init.wast:1820
+assert_trap(() => invoke($31, `run`, [97, 31]), `out of bounds table access`);
+
+// ./test/core/table_init.wast:1821
+assert_trap(() => invoke($31, `test`, [0]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1822
+assert_trap(() => invoke($31, `test`, [1]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1823
+assert_trap(() => invoke($31, `test`, [2]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1824
+assert_trap(() => invoke($31, `test`, [3]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1825
+assert_trap(() => invoke($31, `test`, [4]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1826
+assert_trap(() => invoke($31, `test`, [5]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1827
+assert_trap(() => invoke($31, `test`, [6]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1828
+assert_trap(() => invoke($31, `test`, [7]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1829
+assert_trap(() => invoke($31, `test`, [8]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1830
+assert_trap(() => invoke($31, `test`, [9]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1831
+assert_trap(() => invoke($31, `test`, [10]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1832
+assert_trap(() => invoke($31, `test`, [11]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1833
+assert_trap(() => invoke($31, `test`, [12]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1834
+assert_trap(() => invoke($31, `test`, [13]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1835
+assert_trap(() => invoke($31, `test`, [14]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1836
+assert_trap(() => invoke($31, `test`, [15]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1837
+assert_trap(() => invoke($31, `test`, [16]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1838
+assert_trap(() => invoke($31, `test`, [17]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1839
+assert_trap(() => invoke($31, `test`, [18]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1840
+assert_trap(() => invoke($31, `test`, [19]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1841
+assert_trap(() => invoke($31, `test`, [20]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1842
+assert_trap(() => invoke($31, `test`, [21]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1843
+assert_trap(() => invoke($31, `test`, [22]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1844
+assert_trap(() => invoke($31, `test`, [23]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1845
+assert_trap(() => invoke($31, `test`, [24]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1846
+assert_trap(() => invoke($31, `test`, [25]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1847
+assert_trap(() => invoke($31, `test`, [26]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1848
+assert_trap(() => invoke($31, `test`, [27]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1849
+assert_trap(() => invoke($31, `test`, [28]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1850
+assert_trap(() => invoke($31, `test`, [29]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1851
+assert_trap(() => invoke($31, `test`, [30]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1852
+assert_trap(() => invoke($31, `test`, [31]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1853
+assert_trap(() => invoke($31, `test`, [32]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1854
+assert_trap(() => invoke($31, `test`, [33]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1855
+assert_trap(() => invoke($31, `test`, [34]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1856
+assert_trap(() => invoke($31, `test`, [35]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1857
+assert_trap(() => invoke($31, `test`, [36]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1858
+assert_trap(() => invoke($31, `test`, [37]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1859
+assert_trap(() => invoke($31, `test`, [38]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1860
+assert_trap(() => invoke($31, `test`, [39]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1861
+assert_trap(() => invoke($31, `test`, [40]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1862
+assert_trap(() => invoke($31, `test`, [41]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1863
+assert_trap(() => invoke($31, `test`, [42]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1864
+assert_trap(() => invoke($31, `test`, [43]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1865
+assert_trap(() => invoke($31, `test`, [44]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1866
+assert_trap(() => invoke($31, `test`, [45]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1867
+assert_trap(() => invoke($31, `test`, [46]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1868
+assert_trap(() => invoke($31, `test`, [47]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1869
+assert_trap(() => invoke($31, `test`, [48]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1870
+assert_trap(() => invoke($31, `test`, [49]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1871
+assert_trap(() => invoke($31, `test`, [50]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1872
+assert_trap(() => invoke($31, `test`, [51]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1873
+assert_trap(() => invoke($31, `test`, [52]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1874
+assert_trap(() => invoke($31, `test`, [53]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1875
+assert_trap(() => invoke($31, `test`, [54]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1876
+assert_trap(() => invoke($31, `test`, [55]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1877
+assert_trap(() => invoke($31, `test`, [56]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1878
+assert_trap(() => invoke($31, `test`, [57]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1879
+assert_trap(() => invoke($31, `test`, [58]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1880
+assert_trap(() => invoke($31, `test`, [59]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1881
+assert_trap(() => invoke($31, `test`, [60]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1882
+assert_trap(() => invoke($31, `test`, [61]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1883
+assert_trap(() => invoke($31, `test`, [62]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1884
+assert_trap(() => invoke($31, `test`, [63]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1885
+assert_trap(() => invoke($31, `test`, [64]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1886
+assert_trap(() => invoke($31, `test`, [65]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1887
+assert_trap(() => invoke($31, `test`, [66]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1888
+assert_trap(() => invoke($31, `test`, [67]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1889
+assert_trap(() => invoke($31, `test`, [68]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1890
+assert_trap(() => invoke($31, `test`, [69]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1891
+assert_trap(() => invoke($31, `test`, [70]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1892
+assert_trap(() => invoke($31, `test`, [71]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1893
+assert_trap(() => invoke($31, `test`, [72]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1894
+assert_trap(() => invoke($31, `test`, [73]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1895
+assert_trap(() => invoke($31, `test`, [74]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1896
+assert_trap(() => invoke($31, `test`, [75]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1897
+assert_trap(() => invoke($31, `test`, [76]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1898
+assert_trap(() => invoke($31, `test`, [77]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1899
+assert_trap(() => invoke($31, `test`, [78]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1900
+assert_trap(() => invoke($31, `test`, [79]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1901
+assert_trap(() => invoke($31, `test`, [80]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1902
+assert_trap(() => invoke($31, `test`, [81]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1903
+assert_trap(() => invoke($31, `test`, [82]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1904
+assert_trap(() => invoke($31, `test`, [83]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1905
+assert_trap(() => invoke($31, `test`, [84]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1906
+assert_trap(() => invoke($31, `test`, [85]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1907
+assert_trap(() => invoke($31, `test`, [86]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1908
+assert_trap(() => invoke($31, `test`, [87]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1909
+assert_trap(() => invoke($31, `test`, [88]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1910
+assert_trap(() => invoke($31, `test`, [89]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1911
+assert_trap(() => invoke($31, `test`, [90]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1912
+assert_trap(() => invoke($31, `test`, [91]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1913
+assert_trap(() => invoke($31, `test`, [92]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1914
+assert_trap(() => invoke($31, `test`, [93]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1915
+assert_trap(() => invoke($31, `test`, [94]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1916
+assert_trap(() => invoke($31, `test`, [95]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1917
+assert_trap(() => invoke($31, `test`, [96]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1918
+assert_trap(() => invoke($31, `test`, [97]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1919
+assert_trap(() => invoke($31, `test`, [98]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1920
+assert_trap(() => invoke($31, `test`, [99]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1921
+assert_trap(() => invoke($31, `test`, [100]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1922
+assert_trap(() => invoke($31, `test`, [101]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1923
+assert_trap(() => invoke($31, `test`, [102]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1924
+assert_trap(() => invoke($31, `test`, [103]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1925
+assert_trap(() => invoke($31, `test`, [104]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1926
+assert_trap(() => invoke($31, `test`, [105]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1927
+assert_trap(() => invoke($31, `test`, [106]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1928
+assert_trap(() => invoke($31, `test`, [107]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1929
+assert_trap(() => invoke($31, `test`, [108]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1930
+assert_trap(() => invoke($31, `test`, [109]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1931
+assert_trap(() => invoke($31, `test`, [110]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1932
+assert_trap(() => invoke($31, `test`, [111]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1933
+assert_trap(() => invoke($31, `test`, [112]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1934
+assert_trap(() => invoke($31, `test`, [113]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1935
+assert_trap(() => invoke($31, `test`, [114]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1936
+assert_trap(() => invoke($31, `test`, [115]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1937
+assert_trap(() => invoke($31, `test`, [116]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1938
+assert_trap(() => invoke($31, `test`, [117]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1939
+assert_trap(() => invoke($31, `test`, [118]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1940
+assert_trap(() => invoke($31, `test`, [119]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1941
+assert_trap(() => invoke($31, `test`, [120]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1942
+assert_trap(() => invoke($31, `test`, [121]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1943
+assert_trap(() => invoke($31, `test`, [122]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1944
+assert_trap(() => invoke($31, `test`, [123]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1945
+assert_trap(() => invoke($31, `test`, [124]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1946
+assert_trap(() => invoke($31, `test`, [125]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1947
+assert_trap(() => invoke($31, `test`, [126]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1948
+assert_trap(() => invoke($31, `test`, [127]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1949
+assert_trap(() => invoke($31, `test`, [128]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1950
+assert_trap(() => invoke($31, `test`, [129]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1951
+assert_trap(() => invoke($31, `test`, [130]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1952
+assert_trap(() => invoke($31, `test`, [131]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1953
+assert_trap(() => invoke($31, `test`, [132]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1954
+assert_trap(() => invoke($31, `test`, [133]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1955
+assert_trap(() => invoke($31, `test`, [134]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1956
+assert_trap(() => invoke($31, `test`, [135]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1957
+assert_trap(() => invoke($31, `test`, [136]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1958
+assert_trap(() => invoke($31, `test`, [137]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1959
+assert_trap(() => invoke($31, `test`, [138]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1960
+assert_trap(() => invoke($31, `test`, [139]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1961
+assert_trap(() => invoke($31, `test`, [140]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1962
+assert_trap(() => invoke($31, `test`, [141]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1963
+assert_trap(() => invoke($31, `test`, [142]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1964
+assert_trap(() => invoke($31, `test`, [143]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1965
+assert_trap(() => invoke($31, `test`, [144]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1966
+assert_trap(() => invoke($31, `test`, [145]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1967
+assert_trap(() => invoke($31, `test`, [146]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1968
+assert_trap(() => invoke($31, `test`, [147]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1969
+assert_trap(() => invoke($31, `test`, [148]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1970
+assert_trap(() => invoke($31, `test`, [149]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1971
+assert_trap(() => invoke($31, `test`, [150]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1972
+assert_trap(() => invoke($31, `test`, [151]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1973
+assert_trap(() => invoke($31, `test`, [152]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1974
+assert_trap(() => invoke($31, `test`, [153]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1975
+assert_trap(() => invoke($31, `test`, [154]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1976
+assert_trap(() => invoke($31, `test`, [155]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1977
+assert_trap(() => invoke($31, `test`, [156]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1978
+assert_trap(() => invoke($31, `test`, [157]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1979
+assert_trap(() => invoke($31, `test`, [158]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1980
+assert_trap(() => invoke($31, `test`, [159]), `uninitialized element`);
+
+// ./test/core/table_init.wast:1982
+let $32 = instantiate(`(module
+ (type (func (result i32)))
+ (table 64 64 funcref)
+ (elem funcref
+ (ref.func $$f0) (ref.func $$f1) (ref.func $$f2) (ref.func $$f3)
+ (ref.func $$f4) (ref.func $$f5) (ref.func $$f6) (ref.func $$f7)
+ (ref.func $$f8) (ref.func $$f9) (ref.func $$f10) (ref.func $$f11)
+ (ref.func $$f12) (ref.func $$f13) (ref.func $$f14) (ref.func $$f15))
+ (func $$f0 (export "f0") (result i32) (i32.const 0))
+ (func $$f1 (export "f1") (result i32) (i32.const 1))
+ (func $$f2 (export "f2") (result i32) (i32.const 2))
+ (func $$f3 (export "f3") (result i32) (i32.const 3))
+ (func $$f4 (export "f4") (result i32) (i32.const 4))
+ (func $$f5 (export "f5") (result i32) (i32.const 5))
+ (func $$f6 (export "f6") (result i32) (i32.const 6))
+ (func $$f7 (export "f7") (result i32) (i32.const 7))
+ (func $$f8 (export "f8") (result i32) (i32.const 8))
+ (func $$f9 (export "f9") (result i32) (i32.const 9))
+ (func $$f10 (export "f10") (result i32) (i32.const 10))
+ (func $$f11 (export "f11") (result i32) (i32.const 11))
+ (func $$f12 (export "f12") (result i32) (i32.const 12))
+ (func $$f13 (export "f13") (result i32) (i32.const 13))
+ (func $$f14 (export "f14") (result i32) (i32.const 14))
+ (func $$f15 (export "f15") (result i32) (i32.const 15))
+ (func (export "test") (param $$n i32) (result i32)
+ (call_indirect (type 0) (local.get $$n)))
+ (func (export "run") (param $$offs i32) (param $$len i32)
+ (table.init 0 (local.get $$offs) (i32.const 0) (local.get $$len))))`);
+
+// ./test/core/table_init.wast:2010
+assert_trap(() => invoke($32, `run`, [48, -16]), `out of bounds table access`);
+
+// ./test/core/table_init.wast:2011
+assert_trap(() => invoke($32, `test`, [0]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2012
+assert_trap(() => invoke($32, `test`, [1]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2013
+assert_trap(() => invoke($32, `test`, [2]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2014
+assert_trap(() => invoke($32, `test`, [3]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2015
+assert_trap(() => invoke($32, `test`, [4]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2016
+assert_trap(() => invoke($32, `test`, [5]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2017
+assert_trap(() => invoke($32, `test`, [6]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2018
+assert_trap(() => invoke($32, `test`, [7]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2019
+assert_trap(() => invoke($32, `test`, [8]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2020
+assert_trap(() => invoke($32, `test`, [9]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2021
+assert_trap(() => invoke($32, `test`, [10]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2022
+assert_trap(() => invoke($32, `test`, [11]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2023
+assert_trap(() => invoke($32, `test`, [12]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2024
+assert_trap(() => invoke($32, `test`, [13]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2025
+assert_trap(() => invoke($32, `test`, [14]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2026
+assert_trap(() => invoke($32, `test`, [15]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2027
+assert_trap(() => invoke($32, `test`, [16]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2028
+assert_trap(() => invoke($32, `test`, [17]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2029
+assert_trap(() => invoke($32, `test`, [18]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2030
+assert_trap(() => invoke($32, `test`, [19]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2031
+assert_trap(() => invoke($32, `test`, [20]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2032
+assert_trap(() => invoke($32, `test`, [21]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2033
+assert_trap(() => invoke($32, `test`, [22]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2034
+assert_trap(() => invoke($32, `test`, [23]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2035
+assert_trap(() => invoke($32, `test`, [24]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2036
+assert_trap(() => invoke($32, `test`, [25]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2037
+assert_trap(() => invoke($32, `test`, [26]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2038
+assert_trap(() => invoke($32, `test`, [27]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2039
+assert_trap(() => invoke($32, `test`, [28]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2040
+assert_trap(() => invoke($32, `test`, [29]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2041
+assert_trap(() => invoke($32, `test`, [30]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2042
+assert_trap(() => invoke($32, `test`, [31]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2043
+assert_trap(() => invoke($32, `test`, [32]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2044
+assert_trap(() => invoke($32, `test`, [33]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2045
+assert_trap(() => invoke($32, `test`, [34]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2046
+assert_trap(() => invoke($32, `test`, [35]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2047
+assert_trap(() => invoke($32, `test`, [36]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2048
+assert_trap(() => invoke($32, `test`, [37]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2049
+assert_trap(() => invoke($32, `test`, [38]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2050
+assert_trap(() => invoke($32, `test`, [39]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2051
+assert_trap(() => invoke($32, `test`, [40]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2052
+assert_trap(() => invoke($32, `test`, [41]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2053
+assert_trap(() => invoke($32, `test`, [42]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2054
+assert_trap(() => invoke($32, `test`, [43]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2055
+assert_trap(() => invoke($32, `test`, [44]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2056
+assert_trap(() => invoke($32, `test`, [45]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2057
+assert_trap(() => invoke($32, `test`, [46]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2058
+assert_trap(() => invoke($32, `test`, [47]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2059
+assert_trap(() => invoke($32, `test`, [48]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2060
+assert_trap(() => invoke($32, `test`, [49]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2061
+assert_trap(() => invoke($32, `test`, [50]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2062
+assert_trap(() => invoke($32, `test`, [51]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2063
+assert_trap(() => invoke($32, `test`, [52]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2064
+assert_trap(() => invoke($32, `test`, [53]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2065
+assert_trap(() => invoke($32, `test`, [54]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2066
+assert_trap(() => invoke($32, `test`, [55]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2067
+assert_trap(() => invoke($32, `test`, [56]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2068
+assert_trap(() => invoke($32, `test`, [57]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2069
+assert_trap(() => invoke($32, `test`, [58]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2070
+assert_trap(() => invoke($32, `test`, [59]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2071
+assert_trap(() => invoke($32, `test`, [60]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2072
+assert_trap(() => invoke($32, `test`, [61]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2073
+assert_trap(() => invoke($32, `test`, [62]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2074
+assert_trap(() => invoke($32, `test`, [63]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2076
+let $33 = instantiate(`(module
+ (type (func (result i32)))
+ (table 16 16 funcref)
+ (elem funcref
+ (ref.func $$f0) (ref.func $$f1) (ref.func $$f2) (ref.func $$f3)
+ (ref.func $$f4) (ref.func $$f5) (ref.func $$f6) (ref.func $$f7)
+ (ref.func $$f8) (ref.func $$f9) (ref.func $$f10) (ref.func $$f11)
+ (ref.func $$f12) (ref.func $$f13) (ref.func $$f14) (ref.func $$f15))
+ (func $$f0 (export "f0") (result i32) (i32.const 0))
+ (func $$f1 (export "f1") (result i32) (i32.const 1))
+ (func $$f2 (export "f2") (result i32) (i32.const 2))
+ (func $$f3 (export "f3") (result i32) (i32.const 3))
+ (func $$f4 (export "f4") (result i32) (i32.const 4))
+ (func $$f5 (export "f5") (result i32) (i32.const 5))
+ (func $$f6 (export "f6") (result i32) (i32.const 6))
+ (func $$f7 (export "f7") (result i32) (i32.const 7))
+ (func $$f8 (export "f8") (result i32) (i32.const 8))
+ (func $$f9 (export "f9") (result i32) (i32.const 9))
+ (func $$f10 (export "f10") (result i32) (i32.const 10))
+ (func $$f11 (export "f11") (result i32) (i32.const 11))
+ (func $$f12 (export "f12") (result i32) (i32.const 12))
+ (func $$f13 (export "f13") (result i32) (i32.const 13))
+ (func $$f14 (export "f14") (result i32) (i32.const 14))
+ (func $$f15 (export "f15") (result i32) (i32.const 15))
+ (func (export "test") (param $$n i32) (result i32)
+ (call_indirect (type 0) (local.get $$n)))
+ (func (export "run") (param $$offs i32) (param $$len i32)
+ (table.init 0 (local.get $$offs) (i32.const 8) (local.get $$len))))`);
+
+// ./test/core/table_init.wast:2104
+assert_trap(() => invoke($33, `run`, [0, -4]), `out of bounds table access`);
+
+// ./test/core/table_init.wast:2105
+assert_trap(() => invoke($33, `test`, [0]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2106
+assert_trap(() => invoke($33, `test`, [1]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2107
+assert_trap(() => invoke($33, `test`, [2]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2108
+assert_trap(() => invoke($33, `test`, [3]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2109
+assert_trap(() => invoke($33, `test`, [4]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2110
+assert_trap(() => invoke($33, `test`, [5]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2111
+assert_trap(() => invoke($33, `test`, [6]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2112
+assert_trap(() => invoke($33, `test`, [7]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2113
+assert_trap(() => invoke($33, `test`, [8]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2114
+assert_trap(() => invoke($33, `test`, [9]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2115
+assert_trap(() => invoke($33, `test`, [10]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2116
+assert_trap(() => invoke($33, `test`, [11]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2117
+assert_trap(() => invoke($33, `test`, [12]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2118
+assert_trap(() => invoke($33, `test`, [13]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2119
+assert_trap(() => invoke($33, `test`, [14]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2120
+assert_trap(() => invoke($33, `test`, [15]), `uninitialized element`);
+
+// ./test/core/table_init.wast:2122
+let $34 = instantiate(`(module
+ (table 1 funcref)
+ ;; 65 elem segments. 64 is the smallest positive number that is encoded
+ ;; differently as a signed LEB.
+ (elem funcref) (elem funcref) (elem funcref) (elem funcref)
+ (elem funcref) (elem funcref) (elem funcref) (elem funcref)
+ (elem funcref) (elem funcref) (elem funcref) (elem funcref)
+ (elem funcref) (elem funcref) (elem funcref) (elem funcref)
+ (elem funcref) (elem funcref) (elem funcref) (elem funcref)
+ (elem funcref) (elem funcref) (elem funcref) (elem funcref)
+ (elem funcref) (elem funcref) (elem funcref) (elem funcref)
+ (elem funcref) (elem funcref) (elem funcref) (elem funcref)
+ (elem funcref) (elem funcref) (elem funcref) (elem funcref)
+ (elem funcref) (elem funcref) (elem funcref) (elem funcref)
+ (elem funcref) (elem funcref) (elem funcref) (elem funcref)
+ (elem funcref) (elem funcref) (elem funcref) (elem funcref)
+ (elem funcref) (elem funcref) (elem funcref) (elem funcref)
+ (elem funcref) (elem funcref) (elem funcref) (elem funcref)
+ (elem funcref) (elem funcref) (elem funcref) (elem funcref)
+ (elem funcref) (elem funcref) (elem funcref) (elem funcref)
+ (elem funcref)
+ (func (table.init 64 (i32.const 0) (i32.const 0) (i32.const 0))))`);