summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/wasm/spec/spec/table_copy.wast.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/jit-test/tests/wasm/spec/spec/table_copy.wast.js')
-rw-r--r--js/src/jit-test/tests/wasm/spec/spec/table_copy.wast.js6436
1 files changed, 6436 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/wasm/spec/spec/table_copy.wast.js b/js/src/jit-test/tests/wasm/spec/spec/table_copy.wast.js
new file mode 100644
index 0000000000..d78f54181c
--- /dev/null
+++ b/js/src/jit-test/tests/wasm/spec/spec/table_copy.wast.js
@@ -0,0 +1,6436 @@
+/* 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_copy.wast
+
+// ./test/core/table_copy.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_copy.wast:13
+register($0, `a`);
+
+// ./test/core/table_copy.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))
+ (elem (table $$t1) (i32.const 3) func 1 3 1 4)
+ (elem (table $$t1) (i32.const 11) func 6 3 2 5 7)
+ (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")
+ (nop))
+ (func (export "check_t0") (param i32) (result i32)
+ (call_indirect $$t0 (type 0) (local.get 0)))
+ (func (export "check_t1") (param i32) (result i32)
+ (call_indirect $$t1 (type 0) (local.get 0)))
+)`);
+
+// ./test/core/table_copy.wast:45
+invoke($1, `test`, []);
+
+// ./test/core/table_copy.wast:46
+assert_trap(() => invoke($1, `check_t0`, [0]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:47
+assert_trap(() => invoke($1, `check_t0`, [1]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:48
+assert_return(() => invoke($1, `check_t0`, [2]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:49
+assert_return(() => invoke($1, `check_t0`, [3]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:50
+assert_return(() => invoke($1, `check_t0`, [4]), [value("i32", 4)]);
+
+// ./test/core/table_copy.wast:51
+assert_return(() => invoke($1, `check_t0`, [5]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:52
+assert_trap(() => invoke($1, `check_t0`, [6]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:53
+assert_trap(() => invoke($1, `check_t0`, [7]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:54
+assert_trap(() => invoke($1, `check_t0`, [8]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:55
+assert_trap(() => invoke($1, `check_t0`, [9]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:56
+assert_trap(() => invoke($1, `check_t0`, [10]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:57
+assert_trap(() => invoke($1, `check_t0`, [11]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:58
+assert_return(() => invoke($1, `check_t0`, [12]), [value("i32", 7)]);
+
+// ./test/core/table_copy.wast:59
+assert_return(() => invoke($1, `check_t0`, [13]), [value("i32", 5)]);
+
+// ./test/core/table_copy.wast:60
+assert_return(() => invoke($1, `check_t0`, [14]), [value("i32", 2)]);
+
+// ./test/core/table_copy.wast:61
+assert_return(() => invoke($1, `check_t0`, [15]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:62
+assert_return(() => invoke($1, `check_t0`, [16]), [value("i32", 6)]);
+
+// ./test/core/table_copy.wast:63
+assert_trap(() => invoke($1, `check_t0`, [17]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:64
+assert_trap(() => invoke($1, `check_t0`, [18]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:65
+assert_trap(() => invoke($1, `check_t0`, [19]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:66
+assert_trap(() => invoke($1, `check_t0`, [20]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:67
+assert_trap(() => invoke($1, `check_t0`, [21]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:68
+assert_trap(() => invoke($1, `check_t0`, [22]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:69
+assert_trap(() => invoke($1, `check_t0`, [23]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:70
+assert_trap(() => invoke($1, `check_t0`, [24]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:71
+assert_trap(() => invoke($1, `check_t0`, [25]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:72
+assert_trap(() => invoke($1, `check_t0`, [26]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:73
+assert_trap(() => invoke($1, `check_t0`, [27]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:74
+assert_trap(() => invoke($1, `check_t0`, [28]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:75
+assert_trap(() => invoke($1, `check_t0`, [29]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:76
+assert_trap(() => invoke($1, `check_t1`, [0]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:77
+assert_trap(() => invoke($1, `check_t1`, [1]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:78
+assert_trap(() => invoke($1, `check_t1`, [2]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:79
+assert_return(() => invoke($1, `check_t1`, [3]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:80
+assert_return(() => invoke($1, `check_t1`, [4]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:81
+assert_return(() => invoke($1, `check_t1`, [5]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:82
+assert_return(() => invoke($1, `check_t1`, [6]), [value("i32", 4)]);
+
+// ./test/core/table_copy.wast:83
+assert_trap(() => invoke($1, `check_t1`, [7]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:84
+assert_trap(() => invoke($1, `check_t1`, [8]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:85
+assert_trap(() => invoke($1, `check_t1`, [9]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:86
+assert_trap(() => invoke($1, `check_t1`, [10]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:87
+assert_return(() => invoke($1, `check_t1`, [11]), [value("i32", 6)]);
+
+// ./test/core/table_copy.wast:88
+assert_return(() => invoke($1, `check_t1`, [12]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:89
+assert_return(() => invoke($1, `check_t1`, [13]), [value("i32", 2)]);
+
+// ./test/core/table_copy.wast:90
+assert_return(() => invoke($1, `check_t1`, [14]), [value("i32", 5)]);
+
+// ./test/core/table_copy.wast:91
+assert_return(() => invoke($1, `check_t1`, [15]), [value("i32", 7)]);
+
+// ./test/core/table_copy.wast:92
+assert_trap(() => invoke($1, `check_t1`, [16]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:93
+assert_trap(() => invoke($1, `check_t1`, [17]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:94
+assert_trap(() => invoke($1, `check_t1`, [18]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:95
+assert_trap(() => invoke($1, `check_t1`, [19]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:96
+assert_trap(() => invoke($1, `check_t1`, [20]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:97
+assert_trap(() => invoke($1, `check_t1`, [21]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:98
+assert_trap(() => invoke($1, `check_t1`, [22]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:99
+assert_trap(() => invoke($1, `check_t1`, [23]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:100
+assert_trap(() => invoke($1, `check_t1`, [24]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:101
+assert_trap(() => invoke($1, `check_t1`, [25]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:102
+assert_trap(() => invoke($1, `check_t1`, [26]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:103
+assert_trap(() => invoke($1, `check_t1`, [27]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:104
+assert_trap(() => invoke($1, `check_t1`, [28]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:105
+assert_trap(() => invoke($1, `check_t1`, [29]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:107
+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))
+ (elem (table $$t1) (i32.const 3) func 1 3 1 4)
+ (elem (table $$t1) (i32.const 11) func 6 3 2 5 7)
+ (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.copy $$t0 $$t0 (i32.const 13) (i32.const 2) (i32.const 3)))
+ (func (export "check_t0") (param i32) (result i32)
+ (call_indirect $$t0 (type 0) (local.get 0)))
+ (func (export "check_t1") (param i32) (result i32)
+ (call_indirect $$t1 (type 0) (local.get 0)))
+)`);
+
+// ./test/core/table_copy.wast:137
+invoke($2, `test`, []);
+
+// ./test/core/table_copy.wast:138
+assert_trap(() => invoke($2, `check_t0`, [0]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:139
+assert_trap(() => invoke($2, `check_t0`, [1]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:140
+assert_return(() => invoke($2, `check_t0`, [2]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:141
+assert_return(() => invoke($2, `check_t0`, [3]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:142
+assert_return(() => invoke($2, `check_t0`, [4]), [value("i32", 4)]);
+
+// ./test/core/table_copy.wast:143
+assert_return(() => invoke($2, `check_t0`, [5]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:144
+assert_trap(() => invoke($2, `check_t0`, [6]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:145
+assert_trap(() => invoke($2, `check_t0`, [7]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:146
+assert_trap(() => invoke($2, `check_t0`, [8]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:147
+assert_trap(() => invoke($2, `check_t0`, [9]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:148
+assert_trap(() => invoke($2, `check_t0`, [10]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:149
+assert_trap(() => invoke($2, `check_t0`, [11]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:150
+assert_return(() => invoke($2, `check_t0`, [12]), [value("i32", 7)]);
+
+// ./test/core/table_copy.wast:151
+assert_return(() => invoke($2, `check_t0`, [13]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:152
+assert_return(() => invoke($2, `check_t0`, [14]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:153
+assert_return(() => invoke($2, `check_t0`, [15]), [value("i32", 4)]);
+
+// ./test/core/table_copy.wast:154
+assert_return(() => invoke($2, `check_t0`, [16]), [value("i32", 6)]);
+
+// ./test/core/table_copy.wast:155
+assert_trap(() => invoke($2, `check_t0`, [17]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:156
+assert_trap(() => invoke($2, `check_t0`, [18]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:157
+assert_trap(() => invoke($2, `check_t0`, [19]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:158
+assert_trap(() => invoke($2, `check_t0`, [20]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:159
+assert_trap(() => invoke($2, `check_t0`, [21]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:160
+assert_trap(() => invoke($2, `check_t0`, [22]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:161
+assert_trap(() => invoke($2, `check_t0`, [23]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:162
+assert_trap(() => invoke($2, `check_t0`, [24]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:163
+assert_trap(() => invoke($2, `check_t0`, [25]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:164
+assert_trap(() => invoke($2, `check_t0`, [26]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:165
+assert_trap(() => invoke($2, `check_t0`, [27]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:166
+assert_trap(() => invoke($2, `check_t0`, [28]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:167
+assert_trap(() => invoke($2, `check_t0`, [29]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:168
+assert_trap(() => invoke($2, `check_t1`, [0]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:169
+assert_trap(() => invoke($2, `check_t1`, [1]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:170
+assert_trap(() => invoke($2, `check_t1`, [2]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:171
+assert_return(() => invoke($2, `check_t1`, [3]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:172
+assert_return(() => invoke($2, `check_t1`, [4]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:173
+assert_return(() => invoke($2, `check_t1`, [5]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:174
+assert_return(() => invoke($2, `check_t1`, [6]), [value("i32", 4)]);
+
+// ./test/core/table_copy.wast:175
+assert_trap(() => invoke($2, `check_t1`, [7]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:176
+assert_trap(() => invoke($2, `check_t1`, [8]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:177
+assert_trap(() => invoke($2, `check_t1`, [9]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:178
+assert_trap(() => invoke($2, `check_t1`, [10]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:179
+assert_return(() => invoke($2, `check_t1`, [11]), [value("i32", 6)]);
+
+// ./test/core/table_copy.wast:180
+assert_return(() => invoke($2, `check_t1`, [12]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:181
+assert_return(() => invoke($2, `check_t1`, [13]), [value("i32", 2)]);
+
+// ./test/core/table_copy.wast:182
+assert_return(() => invoke($2, `check_t1`, [14]), [value("i32", 5)]);
+
+// ./test/core/table_copy.wast:183
+assert_return(() => invoke($2, `check_t1`, [15]), [value("i32", 7)]);
+
+// ./test/core/table_copy.wast:184
+assert_trap(() => invoke($2, `check_t1`, [16]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:185
+assert_trap(() => invoke($2, `check_t1`, [17]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:186
+assert_trap(() => invoke($2, `check_t1`, [18]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:187
+assert_trap(() => invoke($2, `check_t1`, [19]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:188
+assert_trap(() => invoke($2, `check_t1`, [20]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:189
+assert_trap(() => invoke($2, `check_t1`, [21]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:190
+assert_trap(() => invoke($2, `check_t1`, [22]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:191
+assert_trap(() => invoke($2, `check_t1`, [23]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:192
+assert_trap(() => invoke($2, `check_t1`, [24]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:193
+assert_trap(() => invoke($2, `check_t1`, [25]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:194
+assert_trap(() => invoke($2, `check_t1`, [26]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:195
+assert_trap(() => invoke($2, `check_t1`, [27]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:196
+assert_trap(() => invoke($2, `check_t1`, [28]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:197
+assert_trap(() => invoke($2, `check_t1`, [29]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:199
+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))
+ (elem (table $$t1) (i32.const 3) func 1 3 1 4)
+ (elem (table $$t1) (i32.const 11) func 6 3 2 5 7)
+ (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.copy $$t0 $$t0 (i32.const 25) (i32.const 15) (i32.const 2)))
+ (func (export "check_t0") (param i32) (result i32)
+ (call_indirect $$t0 (type 0) (local.get 0)))
+ (func (export "check_t1") (param i32) (result i32)
+ (call_indirect $$t1 (type 0) (local.get 0)))
+)`);
+
+// ./test/core/table_copy.wast:229
+invoke($3, `test`, []);
+
+// ./test/core/table_copy.wast:230
+assert_trap(() => invoke($3, `check_t0`, [0]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:231
+assert_trap(() => invoke($3, `check_t0`, [1]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:232
+assert_return(() => invoke($3, `check_t0`, [2]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:233
+assert_return(() => invoke($3, `check_t0`, [3]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:234
+assert_return(() => invoke($3, `check_t0`, [4]), [value("i32", 4)]);
+
+// ./test/core/table_copy.wast:235
+assert_return(() => invoke($3, `check_t0`, [5]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:236
+assert_trap(() => invoke($3, `check_t0`, [6]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:237
+assert_trap(() => invoke($3, `check_t0`, [7]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:238
+assert_trap(() => invoke($3, `check_t0`, [8]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:239
+assert_trap(() => invoke($3, `check_t0`, [9]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:240
+assert_trap(() => invoke($3, `check_t0`, [10]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:241
+assert_trap(() => invoke($3, `check_t0`, [11]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:242
+assert_return(() => invoke($3, `check_t0`, [12]), [value("i32", 7)]);
+
+// ./test/core/table_copy.wast:243
+assert_return(() => invoke($3, `check_t0`, [13]), [value("i32", 5)]);
+
+// ./test/core/table_copy.wast:244
+assert_return(() => invoke($3, `check_t0`, [14]), [value("i32", 2)]);
+
+// ./test/core/table_copy.wast:245
+assert_return(() => invoke($3, `check_t0`, [15]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:246
+assert_return(() => invoke($3, `check_t0`, [16]), [value("i32", 6)]);
+
+// ./test/core/table_copy.wast:247
+assert_trap(() => invoke($3, `check_t0`, [17]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:248
+assert_trap(() => invoke($3, `check_t0`, [18]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:249
+assert_trap(() => invoke($3, `check_t0`, [19]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:250
+assert_trap(() => invoke($3, `check_t0`, [20]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:251
+assert_trap(() => invoke($3, `check_t0`, [21]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:252
+assert_trap(() => invoke($3, `check_t0`, [22]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:253
+assert_trap(() => invoke($3, `check_t0`, [23]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:254
+assert_trap(() => invoke($3, `check_t0`, [24]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:255
+assert_return(() => invoke($3, `check_t0`, [25]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:256
+assert_return(() => invoke($3, `check_t0`, [26]), [value("i32", 6)]);
+
+// ./test/core/table_copy.wast:257
+assert_trap(() => invoke($3, `check_t0`, [27]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:258
+assert_trap(() => invoke($3, `check_t0`, [28]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:259
+assert_trap(() => invoke($3, `check_t0`, [29]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:260
+assert_trap(() => invoke($3, `check_t1`, [0]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:261
+assert_trap(() => invoke($3, `check_t1`, [1]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:262
+assert_trap(() => invoke($3, `check_t1`, [2]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:263
+assert_return(() => invoke($3, `check_t1`, [3]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:264
+assert_return(() => invoke($3, `check_t1`, [4]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:265
+assert_return(() => invoke($3, `check_t1`, [5]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:266
+assert_return(() => invoke($3, `check_t1`, [6]), [value("i32", 4)]);
+
+// ./test/core/table_copy.wast:267
+assert_trap(() => invoke($3, `check_t1`, [7]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:268
+assert_trap(() => invoke($3, `check_t1`, [8]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:269
+assert_trap(() => invoke($3, `check_t1`, [9]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:270
+assert_trap(() => invoke($3, `check_t1`, [10]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:271
+assert_return(() => invoke($3, `check_t1`, [11]), [value("i32", 6)]);
+
+// ./test/core/table_copy.wast:272
+assert_return(() => invoke($3, `check_t1`, [12]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:273
+assert_return(() => invoke($3, `check_t1`, [13]), [value("i32", 2)]);
+
+// ./test/core/table_copy.wast:274
+assert_return(() => invoke($3, `check_t1`, [14]), [value("i32", 5)]);
+
+// ./test/core/table_copy.wast:275
+assert_return(() => invoke($3, `check_t1`, [15]), [value("i32", 7)]);
+
+// ./test/core/table_copy.wast:276
+assert_trap(() => invoke($3, `check_t1`, [16]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:277
+assert_trap(() => invoke($3, `check_t1`, [17]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:278
+assert_trap(() => invoke($3, `check_t1`, [18]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:279
+assert_trap(() => invoke($3, `check_t1`, [19]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:280
+assert_trap(() => invoke($3, `check_t1`, [20]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:281
+assert_trap(() => invoke($3, `check_t1`, [21]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:282
+assert_trap(() => invoke($3, `check_t1`, [22]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:283
+assert_trap(() => invoke($3, `check_t1`, [23]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:284
+assert_trap(() => invoke($3, `check_t1`, [24]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:285
+assert_trap(() => invoke($3, `check_t1`, [25]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:286
+assert_trap(() => invoke($3, `check_t1`, [26]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:287
+assert_trap(() => invoke($3, `check_t1`, [27]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:288
+assert_trap(() => invoke($3, `check_t1`, [28]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:289
+assert_trap(() => invoke($3, `check_t1`, [29]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:291
+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 $$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))
+ (elem (table $$t1) (i32.const 3) func 1 3 1 4)
+ (elem (table $$t1) (i32.const 11) func 6 3 2 5 7)
+ (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.copy $$t0 $$t0 (i32.const 13) (i32.const 25) (i32.const 3)))
+ (func (export "check_t0") (param i32) (result i32)
+ (call_indirect $$t0 (type 0) (local.get 0)))
+ (func (export "check_t1") (param i32) (result i32)
+ (call_indirect $$t1 (type 0) (local.get 0)))
+)`);
+
+// ./test/core/table_copy.wast:321
+invoke($4, `test`, []);
+
+// ./test/core/table_copy.wast:322
+assert_trap(() => invoke($4, `check_t0`, [0]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:323
+assert_trap(() => invoke($4, `check_t0`, [1]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:324
+assert_return(() => invoke($4, `check_t0`, [2]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:325
+assert_return(() => invoke($4, `check_t0`, [3]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:326
+assert_return(() => invoke($4, `check_t0`, [4]), [value("i32", 4)]);
+
+// ./test/core/table_copy.wast:327
+assert_return(() => invoke($4, `check_t0`, [5]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:328
+assert_trap(() => invoke($4, `check_t0`, [6]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:329
+assert_trap(() => invoke($4, `check_t0`, [7]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:330
+assert_trap(() => invoke($4, `check_t0`, [8]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:331
+assert_trap(() => invoke($4, `check_t0`, [9]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:332
+assert_trap(() => invoke($4, `check_t0`, [10]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:333
+assert_trap(() => invoke($4, `check_t0`, [11]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:334
+assert_return(() => invoke($4, `check_t0`, [12]), [value("i32", 7)]);
+
+// ./test/core/table_copy.wast:335
+assert_trap(() => invoke($4, `check_t0`, [13]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:336
+assert_trap(() => invoke($4, `check_t0`, [14]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:337
+assert_trap(() => invoke($4, `check_t0`, [15]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:338
+assert_return(() => invoke($4, `check_t0`, [16]), [value("i32", 6)]);
+
+// ./test/core/table_copy.wast:339
+assert_trap(() => invoke($4, `check_t0`, [17]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:340
+assert_trap(() => invoke($4, `check_t0`, [18]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:341
+assert_trap(() => invoke($4, `check_t0`, [19]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:342
+assert_trap(() => invoke($4, `check_t0`, [20]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:343
+assert_trap(() => invoke($4, `check_t0`, [21]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:344
+assert_trap(() => invoke($4, `check_t0`, [22]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:345
+assert_trap(() => invoke($4, `check_t0`, [23]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:346
+assert_trap(() => invoke($4, `check_t0`, [24]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:347
+assert_trap(() => invoke($4, `check_t0`, [25]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:348
+assert_trap(() => invoke($4, `check_t0`, [26]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:349
+assert_trap(() => invoke($4, `check_t0`, [27]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:350
+assert_trap(() => invoke($4, `check_t0`, [28]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:351
+assert_trap(() => invoke($4, `check_t0`, [29]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:352
+assert_trap(() => invoke($4, `check_t1`, [0]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:353
+assert_trap(() => invoke($4, `check_t1`, [1]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:354
+assert_trap(() => invoke($4, `check_t1`, [2]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:355
+assert_return(() => invoke($4, `check_t1`, [3]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:356
+assert_return(() => invoke($4, `check_t1`, [4]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:357
+assert_return(() => invoke($4, `check_t1`, [5]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:358
+assert_return(() => invoke($4, `check_t1`, [6]), [value("i32", 4)]);
+
+// ./test/core/table_copy.wast:359
+assert_trap(() => invoke($4, `check_t1`, [7]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:360
+assert_trap(() => invoke($4, `check_t1`, [8]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:361
+assert_trap(() => invoke($4, `check_t1`, [9]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:362
+assert_trap(() => invoke($4, `check_t1`, [10]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:363
+assert_return(() => invoke($4, `check_t1`, [11]), [value("i32", 6)]);
+
+// ./test/core/table_copy.wast:364
+assert_return(() => invoke($4, `check_t1`, [12]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:365
+assert_return(() => invoke($4, `check_t1`, [13]), [value("i32", 2)]);
+
+// ./test/core/table_copy.wast:366
+assert_return(() => invoke($4, `check_t1`, [14]), [value("i32", 5)]);
+
+// ./test/core/table_copy.wast:367
+assert_return(() => invoke($4, `check_t1`, [15]), [value("i32", 7)]);
+
+// ./test/core/table_copy.wast:368
+assert_trap(() => invoke($4, `check_t1`, [16]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:369
+assert_trap(() => invoke($4, `check_t1`, [17]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:370
+assert_trap(() => invoke($4, `check_t1`, [18]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:371
+assert_trap(() => invoke($4, `check_t1`, [19]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:372
+assert_trap(() => invoke($4, `check_t1`, [20]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:373
+assert_trap(() => invoke($4, `check_t1`, [21]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:374
+assert_trap(() => invoke($4, `check_t1`, [22]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:375
+assert_trap(() => invoke($4, `check_t1`, [23]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:376
+assert_trap(() => invoke($4, `check_t1`, [24]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:377
+assert_trap(() => invoke($4, `check_t1`, [25]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:378
+assert_trap(() => invoke($4, `check_t1`, [26]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:379
+assert_trap(() => invoke($4, `check_t1`, [27]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:380
+assert_trap(() => invoke($4, `check_t1`, [28]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:381
+assert_trap(() => invoke($4, `check_t1`, [29]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:383
+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 $$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))
+ (elem (table $$t1) (i32.const 3) func 1 3 1 4)
+ (elem (table $$t1) (i32.const 11) func 6 3 2 5 7)
+ (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.copy $$t0 $$t0 (i32.const 20) (i32.const 22) (i32.const 4)))
+ (func (export "check_t0") (param i32) (result i32)
+ (call_indirect $$t0 (type 0) (local.get 0)))
+ (func (export "check_t1") (param i32) (result i32)
+ (call_indirect $$t1 (type 0) (local.get 0)))
+)`);
+
+// ./test/core/table_copy.wast:413
+invoke($5, `test`, []);
+
+// ./test/core/table_copy.wast:414
+assert_trap(() => invoke($5, `check_t0`, [0]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:415
+assert_trap(() => invoke($5, `check_t0`, [1]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:416
+assert_return(() => invoke($5, `check_t0`, [2]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:417
+assert_return(() => invoke($5, `check_t0`, [3]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:418
+assert_return(() => invoke($5, `check_t0`, [4]), [value("i32", 4)]);
+
+// ./test/core/table_copy.wast:419
+assert_return(() => invoke($5, `check_t0`, [5]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:420
+assert_trap(() => invoke($5, `check_t0`, [6]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:421
+assert_trap(() => invoke($5, `check_t0`, [7]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:422
+assert_trap(() => invoke($5, `check_t0`, [8]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:423
+assert_trap(() => invoke($5, `check_t0`, [9]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:424
+assert_trap(() => invoke($5, `check_t0`, [10]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:425
+assert_trap(() => invoke($5, `check_t0`, [11]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:426
+assert_return(() => invoke($5, `check_t0`, [12]), [value("i32", 7)]);
+
+// ./test/core/table_copy.wast:427
+assert_return(() => invoke($5, `check_t0`, [13]), [value("i32", 5)]);
+
+// ./test/core/table_copy.wast:428
+assert_return(() => invoke($5, `check_t0`, [14]), [value("i32", 2)]);
+
+// ./test/core/table_copy.wast:429
+assert_return(() => invoke($5, `check_t0`, [15]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:430
+assert_return(() => invoke($5, `check_t0`, [16]), [value("i32", 6)]);
+
+// ./test/core/table_copy.wast:431
+assert_trap(() => invoke($5, `check_t0`, [17]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:432
+assert_trap(() => invoke($5, `check_t0`, [18]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:433
+assert_trap(() => invoke($5, `check_t0`, [19]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:434
+assert_trap(() => invoke($5, `check_t0`, [20]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:435
+assert_trap(() => invoke($5, `check_t0`, [21]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:436
+assert_trap(() => invoke($5, `check_t0`, [22]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:437
+assert_trap(() => invoke($5, `check_t0`, [23]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:438
+assert_trap(() => invoke($5, `check_t0`, [24]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:439
+assert_trap(() => invoke($5, `check_t0`, [25]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:440
+assert_trap(() => invoke($5, `check_t0`, [26]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:441
+assert_trap(() => invoke($5, `check_t0`, [27]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:442
+assert_trap(() => invoke($5, `check_t0`, [28]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:443
+assert_trap(() => invoke($5, `check_t0`, [29]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:444
+assert_trap(() => invoke($5, `check_t1`, [0]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:445
+assert_trap(() => invoke($5, `check_t1`, [1]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:446
+assert_trap(() => invoke($5, `check_t1`, [2]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:447
+assert_return(() => invoke($5, `check_t1`, [3]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:448
+assert_return(() => invoke($5, `check_t1`, [4]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:449
+assert_return(() => invoke($5, `check_t1`, [5]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:450
+assert_return(() => invoke($5, `check_t1`, [6]), [value("i32", 4)]);
+
+// ./test/core/table_copy.wast:451
+assert_trap(() => invoke($5, `check_t1`, [7]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:452
+assert_trap(() => invoke($5, `check_t1`, [8]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:453
+assert_trap(() => invoke($5, `check_t1`, [9]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:454
+assert_trap(() => invoke($5, `check_t1`, [10]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:455
+assert_return(() => invoke($5, `check_t1`, [11]), [value("i32", 6)]);
+
+// ./test/core/table_copy.wast:456
+assert_return(() => invoke($5, `check_t1`, [12]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:457
+assert_return(() => invoke($5, `check_t1`, [13]), [value("i32", 2)]);
+
+// ./test/core/table_copy.wast:458
+assert_return(() => invoke($5, `check_t1`, [14]), [value("i32", 5)]);
+
+// ./test/core/table_copy.wast:459
+assert_return(() => invoke($5, `check_t1`, [15]), [value("i32", 7)]);
+
+// ./test/core/table_copy.wast:460
+assert_trap(() => invoke($5, `check_t1`, [16]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:461
+assert_trap(() => invoke($5, `check_t1`, [17]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:462
+assert_trap(() => invoke($5, `check_t1`, [18]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:463
+assert_trap(() => invoke($5, `check_t1`, [19]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:464
+assert_trap(() => invoke($5, `check_t1`, [20]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:465
+assert_trap(() => invoke($5, `check_t1`, [21]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:466
+assert_trap(() => invoke($5, `check_t1`, [22]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:467
+assert_trap(() => invoke($5, `check_t1`, [23]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:468
+assert_trap(() => invoke($5, `check_t1`, [24]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:469
+assert_trap(() => invoke($5, `check_t1`, [25]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:470
+assert_trap(() => invoke($5, `check_t1`, [26]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:471
+assert_trap(() => invoke($5, `check_t1`, [27]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:472
+assert_trap(() => invoke($5, `check_t1`, [28]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:473
+assert_trap(() => invoke($5, `check_t1`, [29]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:475
+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 $$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))
+ (elem (table $$t1) (i32.const 3) func 1 3 1 4)
+ (elem (table $$t1) (i32.const 11) func 6 3 2 5 7)
+ (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.copy $$t0 $$t0 (i32.const 25) (i32.const 1) (i32.const 3)))
+ (func (export "check_t0") (param i32) (result i32)
+ (call_indirect $$t0 (type 0) (local.get 0)))
+ (func (export "check_t1") (param i32) (result i32)
+ (call_indirect $$t1 (type 0) (local.get 0)))
+)`);
+
+// ./test/core/table_copy.wast:505
+invoke($6, `test`, []);
+
+// ./test/core/table_copy.wast:506
+assert_trap(() => invoke($6, `check_t0`, [0]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:507
+assert_trap(() => invoke($6, `check_t0`, [1]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:508
+assert_return(() => invoke($6, `check_t0`, [2]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:509
+assert_return(() => invoke($6, `check_t0`, [3]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:510
+assert_return(() => invoke($6, `check_t0`, [4]), [value("i32", 4)]);
+
+// ./test/core/table_copy.wast:511
+assert_return(() => invoke($6, `check_t0`, [5]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:512
+assert_trap(() => invoke($6, `check_t0`, [6]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:513
+assert_trap(() => invoke($6, `check_t0`, [7]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:514
+assert_trap(() => invoke($6, `check_t0`, [8]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:515
+assert_trap(() => invoke($6, `check_t0`, [9]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:516
+assert_trap(() => invoke($6, `check_t0`, [10]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:517
+assert_trap(() => invoke($6, `check_t0`, [11]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:518
+assert_return(() => invoke($6, `check_t0`, [12]), [value("i32", 7)]);
+
+// ./test/core/table_copy.wast:519
+assert_return(() => invoke($6, `check_t0`, [13]), [value("i32", 5)]);
+
+// ./test/core/table_copy.wast:520
+assert_return(() => invoke($6, `check_t0`, [14]), [value("i32", 2)]);
+
+// ./test/core/table_copy.wast:521
+assert_return(() => invoke($6, `check_t0`, [15]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:522
+assert_return(() => invoke($6, `check_t0`, [16]), [value("i32", 6)]);
+
+// ./test/core/table_copy.wast:523
+assert_trap(() => invoke($6, `check_t0`, [17]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:524
+assert_trap(() => invoke($6, `check_t0`, [18]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:525
+assert_trap(() => invoke($6, `check_t0`, [19]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:526
+assert_trap(() => invoke($6, `check_t0`, [20]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:527
+assert_trap(() => invoke($6, `check_t0`, [21]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:528
+assert_trap(() => invoke($6, `check_t0`, [22]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:529
+assert_trap(() => invoke($6, `check_t0`, [23]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:530
+assert_trap(() => invoke($6, `check_t0`, [24]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:531
+assert_trap(() => invoke($6, `check_t0`, [25]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:532
+assert_return(() => invoke($6, `check_t0`, [26]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:533
+assert_return(() => invoke($6, `check_t0`, [27]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:534
+assert_trap(() => invoke($6, `check_t0`, [28]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:535
+assert_trap(() => invoke($6, `check_t0`, [29]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:536
+assert_trap(() => invoke($6, `check_t1`, [0]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:537
+assert_trap(() => invoke($6, `check_t1`, [1]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:538
+assert_trap(() => invoke($6, `check_t1`, [2]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:539
+assert_return(() => invoke($6, `check_t1`, [3]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:540
+assert_return(() => invoke($6, `check_t1`, [4]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:541
+assert_return(() => invoke($6, `check_t1`, [5]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:542
+assert_return(() => invoke($6, `check_t1`, [6]), [value("i32", 4)]);
+
+// ./test/core/table_copy.wast:543
+assert_trap(() => invoke($6, `check_t1`, [7]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:544
+assert_trap(() => invoke($6, `check_t1`, [8]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:545
+assert_trap(() => invoke($6, `check_t1`, [9]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:546
+assert_trap(() => invoke($6, `check_t1`, [10]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:547
+assert_return(() => invoke($6, `check_t1`, [11]), [value("i32", 6)]);
+
+// ./test/core/table_copy.wast:548
+assert_return(() => invoke($6, `check_t1`, [12]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:549
+assert_return(() => invoke($6, `check_t1`, [13]), [value("i32", 2)]);
+
+// ./test/core/table_copy.wast:550
+assert_return(() => invoke($6, `check_t1`, [14]), [value("i32", 5)]);
+
+// ./test/core/table_copy.wast:551
+assert_return(() => invoke($6, `check_t1`, [15]), [value("i32", 7)]);
+
+// ./test/core/table_copy.wast:552
+assert_trap(() => invoke($6, `check_t1`, [16]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:553
+assert_trap(() => invoke($6, `check_t1`, [17]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:554
+assert_trap(() => invoke($6, `check_t1`, [18]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:555
+assert_trap(() => invoke($6, `check_t1`, [19]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:556
+assert_trap(() => invoke($6, `check_t1`, [20]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:557
+assert_trap(() => invoke($6, `check_t1`, [21]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:558
+assert_trap(() => invoke($6, `check_t1`, [22]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:559
+assert_trap(() => invoke($6, `check_t1`, [23]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:560
+assert_trap(() => invoke($6, `check_t1`, [24]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:561
+assert_trap(() => invoke($6, `check_t1`, [25]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:562
+assert_trap(() => invoke($6, `check_t1`, [26]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:563
+assert_trap(() => invoke($6, `check_t1`, [27]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:564
+assert_trap(() => invoke($6, `check_t1`, [28]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:565
+assert_trap(() => invoke($6, `check_t1`, [29]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:567
+let $7 = 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))
+ (elem (table $$t1) (i32.const 3) func 1 3 1 4)
+ (elem (table $$t1) (i32.const 11) func 6 3 2 5 7)
+ (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.copy $$t0 $$t0 (i32.const 10) (i32.const 12) (i32.const 7)))
+ (func (export "check_t0") (param i32) (result i32)
+ (call_indirect $$t0 (type 0) (local.get 0)))
+ (func (export "check_t1") (param i32) (result i32)
+ (call_indirect $$t1 (type 0) (local.get 0)))
+)`);
+
+// ./test/core/table_copy.wast:597
+invoke($7, `test`, []);
+
+// ./test/core/table_copy.wast:598
+assert_trap(() => invoke($7, `check_t0`, [0]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:599
+assert_trap(() => invoke($7, `check_t0`, [1]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:600
+assert_return(() => invoke($7, `check_t0`, [2]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:601
+assert_return(() => invoke($7, `check_t0`, [3]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:602
+assert_return(() => invoke($7, `check_t0`, [4]), [value("i32", 4)]);
+
+// ./test/core/table_copy.wast:603
+assert_return(() => invoke($7, `check_t0`, [5]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:604
+assert_trap(() => invoke($7, `check_t0`, [6]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:605
+assert_trap(() => invoke($7, `check_t0`, [7]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:606
+assert_trap(() => invoke($7, `check_t0`, [8]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:607
+assert_trap(() => invoke($7, `check_t0`, [9]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:608
+assert_return(() => invoke($7, `check_t0`, [10]), [value("i32", 7)]);
+
+// ./test/core/table_copy.wast:609
+assert_return(() => invoke($7, `check_t0`, [11]), [value("i32", 5)]);
+
+// ./test/core/table_copy.wast:610
+assert_return(() => invoke($7, `check_t0`, [12]), [value("i32", 2)]);
+
+// ./test/core/table_copy.wast:611
+assert_return(() => invoke($7, `check_t0`, [13]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:612
+assert_return(() => invoke($7, `check_t0`, [14]), [value("i32", 6)]);
+
+// ./test/core/table_copy.wast:613
+assert_trap(() => invoke($7, `check_t0`, [15]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:614
+assert_trap(() => invoke($7, `check_t0`, [16]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:615
+assert_trap(() => invoke($7, `check_t0`, [17]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:616
+assert_trap(() => invoke($7, `check_t0`, [18]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:617
+assert_trap(() => invoke($7, `check_t0`, [19]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:618
+assert_trap(() => invoke($7, `check_t0`, [20]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:619
+assert_trap(() => invoke($7, `check_t0`, [21]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:620
+assert_trap(() => invoke($7, `check_t0`, [22]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:621
+assert_trap(() => invoke($7, `check_t0`, [23]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:622
+assert_trap(() => invoke($7, `check_t0`, [24]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:623
+assert_trap(() => invoke($7, `check_t0`, [25]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:624
+assert_trap(() => invoke($7, `check_t0`, [26]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:625
+assert_trap(() => invoke($7, `check_t0`, [27]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:626
+assert_trap(() => invoke($7, `check_t0`, [28]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:627
+assert_trap(() => invoke($7, `check_t0`, [29]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:628
+assert_trap(() => invoke($7, `check_t1`, [0]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:629
+assert_trap(() => invoke($7, `check_t1`, [1]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:630
+assert_trap(() => invoke($7, `check_t1`, [2]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:631
+assert_return(() => invoke($7, `check_t1`, [3]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:632
+assert_return(() => invoke($7, `check_t1`, [4]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:633
+assert_return(() => invoke($7, `check_t1`, [5]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:634
+assert_return(() => invoke($7, `check_t1`, [6]), [value("i32", 4)]);
+
+// ./test/core/table_copy.wast:635
+assert_trap(() => invoke($7, `check_t1`, [7]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:636
+assert_trap(() => invoke($7, `check_t1`, [8]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:637
+assert_trap(() => invoke($7, `check_t1`, [9]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:638
+assert_trap(() => invoke($7, `check_t1`, [10]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:639
+assert_return(() => invoke($7, `check_t1`, [11]), [value("i32", 6)]);
+
+// ./test/core/table_copy.wast:640
+assert_return(() => invoke($7, `check_t1`, [12]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:641
+assert_return(() => invoke($7, `check_t1`, [13]), [value("i32", 2)]);
+
+// ./test/core/table_copy.wast:642
+assert_return(() => invoke($7, `check_t1`, [14]), [value("i32", 5)]);
+
+// ./test/core/table_copy.wast:643
+assert_return(() => invoke($7, `check_t1`, [15]), [value("i32", 7)]);
+
+// ./test/core/table_copy.wast:644
+assert_trap(() => invoke($7, `check_t1`, [16]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:645
+assert_trap(() => invoke($7, `check_t1`, [17]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:646
+assert_trap(() => invoke($7, `check_t1`, [18]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:647
+assert_trap(() => invoke($7, `check_t1`, [19]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:648
+assert_trap(() => invoke($7, `check_t1`, [20]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:649
+assert_trap(() => invoke($7, `check_t1`, [21]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:650
+assert_trap(() => invoke($7, `check_t1`, [22]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:651
+assert_trap(() => invoke($7, `check_t1`, [23]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:652
+assert_trap(() => invoke($7, `check_t1`, [24]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:653
+assert_trap(() => invoke($7, `check_t1`, [25]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:654
+assert_trap(() => invoke($7, `check_t1`, [26]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:655
+assert_trap(() => invoke($7, `check_t1`, [27]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:656
+assert_trap(() => invoke($7, `check_t1`, [28]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:657
+assert_trap(() => invoke($7, `check_t1`, [29]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:659
+let $8 = 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))
+ (elem (table $$t1) (i32.const 3) func 1 3 1 4)
+ (elem (table $$t1) (i32.const 11) func 6 3 2 5 7)
+ (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.copy $$t0 $$t0 (i32.const 12) (i32.const 10) (i32.const 7)))
+ (func (export "check_t0") (param i32) (result i32)
+ (call_indirect $$t0 (type 0) (local.get 0)))
+ (func (export "check_t1") (param i32) (result i32)
+ (call_indirect $$t1 (type 0) (local.get 0)))
+)`);
+
+// ./test/core/table_copy.wast:689
+invoke($8, `test`, []);
+
+// ./test/core/table_copy.wast:690
+assert_trap(() => invoke($8, `check_t0`, [0]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:691
+assert_trap(() => invoke($8, `check_t0`, [1]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:692
+assert_return(() => invoke($8, `check_t0`, [2]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:693
+assert_return(() => invoke($8, `check_t0`, [3]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:694
+assert_return(() => invoke($8, `check_t0`, [4]), [value("i32", 4)]);
+
+// ./test/core/table_copy.wast:695
+assert_return(() => invoke($8, `check_t0`, [5]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:696
+assert_trap(() => invoke($8, `check_t0`, [6]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:697
+assert_trap(() => invoke($8, `check_t0`, [7]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:698
+assert_trap(() => invoke($8, `check_t0`, [8]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:699
+assert_trap(() => invoke($8, `check_t0`, [9]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:700
+assert_trap(() => invoke($8, `check_t0`, [10]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:701
+assert_trap(() => invoke($8, `check_t0`, [11]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:702
+assert_trap(() => invoke($8, `check_t0`, [12]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:703
+assert_trap(() => invoke($8, `check_t0`, [13]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:704
+assert_return(() => invoke($8, `check_t0`, [14]), [value("i32", 7)]);
+
+// ./test/core/table_copy.wast:705
+assert_return(() => invoke($8, `check_t0`, [15]), [value("i32", 5)]);
+
+// ./test/core/table_copy.wast:706
+assert_return(() => invoke($8, `check_t0`, [16]), [value("i32", 2)]);
+
+// ./test/core/table_copy.wast:707
+assert_return(() => invoke($8, `check_t0`, [17]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:708
+assert_return(() => invoke($8, `check_t0`, [18]), [value("i32", 6)]);
+
+// ./test/core/table_copy.wast:709
+assert_trap(() => invoke($8, `check_t0`, [19]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:710
+assert_trap(() => invoke($8, `check_t0`, [20]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:711
+assert_trap(() => invoke($8, `check_t0`, [21]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:712
+assert_trap(() => invoke($8, `check_t0`, [22]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:713
+assert_trap(() => invoke($8, `check_t0`, [23]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:714
+assert_trap(() => invoke($8, `check_t0`, [24]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:715
+assert_trap(() => invoke($8, `check_t0`, [25]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:716
+assert_trap(() => invoke($8, `check_t0`, [26]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:717
+assert_trap(() => invoke($8, `check_t0`, [27]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:718
+assert_trap(() => invoke($8, `check_t0`, [28]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:719
+assert_trap(() => invoke($8, `check_t0`, [29]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:720
+assert_trap(() => invoke($8, `check_t1`, [0]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:721
+assert_trap(() => invoke($8, `check_t1`, [1]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:722
+assert_trap(() => invoke($8, `check_t1`, [2]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:723
+assert_return(() => invoke($8, `check_t1`, [3]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:724
+assert_return(() => invoke($8, `check_t1`, [4]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:725
+assert_return(() => invoke($8, `check_t1`, [5]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:726
+assert_return(() => invoke($8, `check_t1`, [6]), [value("i32", 4)]);
+
+// ./test/core/table_copy.wast:727
+assert_trap(() => invoke($8, `check_t1`, [7]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:728
+assert_trap(() => invoke($8, `check_t1`, [8]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:729
+assert_trap(() => invoke($8, `check_t1`, [9]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:730
+assert_trap(() => invoke($8, `check_t1`, [10]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:731
+assert_return(() => invoke($8, `check_t1`, [11]), [value("i32", 6)]);
+
+// ./test/core/table_copy.wast:732
+assert_return(() => invoke($8, `check_t1`, [12]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:733
+assert_return(() => invoke($8, `check_t1`, [13]), [value("i32", 2)]);
+
+// ./test/core/table_copy.wast:734
+assert_return(() => invoke($8, `check_t1`, [14]), [value("i32", 5)]);
+
+// ./test/core/table_copy.wast:735
+assert_return(() => invoke($8, `check_t1`, [15]), [value("i32", 7)]);
+
+// ./test/core/table_copy.wast:736
+assert_trap(() => invoke($8, `check_t1`, [16]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:737
+assert_trap(() => invoke($8, `check_t1`, [17]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:738
+assert_trap(() => invoke($8, `check_t1`, [18]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:739
+assert_trap(() => invoke($8, `check_t1`, [19]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:740
+assert_trap(() => invoke($8, `check_t1`, [20]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:741
+assert_trap(() => invoke($8, `check_t1`, [21]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:742
+assert_trap(() => invoke($8, `check_t1`, [22]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:743
+assert_trap(() => invoke($8, `check_t1`, [23]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:744
+assert_trap(() => invoke($8, `check_t1`, [24]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:745
+assert_trap(() => invoke($8, `check_t1`, [25]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:746
+assert_trap(() => invoke($8, `check_t1`, [26]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:747
+assert_trap(() => invoke($8, `check_t1`, [27]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:748
+assert_trap(() => invoke($8, `check_t1`, [28]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:749
+assert_trap(() => invoke($8, `check_t1`, [29]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:751
+let $9 = 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))
+ (elem (table $$t1) (i32.const 3) func 1 3 1 4)
+ (elem (table $$t1) (i32.const 11) func 6 3 2 5 7)
+ (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.copy $$t1 $$t0 (i32.const 10) (i32.const 0) (i32.const 20)))
+ (func (export "check_t0") (param i32) (result i32)
+ (call_indirect $$t0 (type 0) (local.get 0)))
+ (func (export "check_t1") (param i32) (result i32)
+ (call_indirect $$t1 (type 0) (local.get 0)))
+)`);
+
+// ./test/core/table_copy.wast:781
+invoke($9, `test`, []);
+
+// ./test/core/table_copy.wast:782
+assert_trap(() => invoke($9, `check_t0`, [0]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:783
+assert_trap(() => invoke($9, `check_t0`, [1]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:784
+assert_return(() => invoke($9, `check_t0`, [2]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:785
+assert_return(() => invoke($9, `check_t0`, [3]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:786
+assert_return(() => invoke($9, `check_t0`, [4]), [value("i32", 4)]);
+
+// ./test/core/table_copy.wast:787
+assert_return(() => invoke($9, `check_t0`, [5]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:788
+assert_trap(() => invoke($9, `check_t0`, [6]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:789
+assert_trap(() => invoke($9, `check_t0`, [7]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:790
+assert_trap(() => invoke($9, `check_t0`, [8]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:791
+assert_trap(() => invoke($9, `check_t0`, [9]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:792
+assert_trap(() => invoke($9, `check_t0`, [10]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:793
+assert_trap(() => invoke($9, `check_t0`, [11]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:794
+assert_return(() => invoke($9, `check_t0`, [12]), [value("i32", 7)]);
+
+// ./test/core/table_copy.wast:795
+assert_return(() => invoke($9, `check_t0`, [13]), [value("i32", 5)]);
+
+// ./test/core/table_copy.wast:796
+assert_return(() => invoke($9, `check_t0`, [14]), [value("i32", 2)]);
+
+// ./test/core/table_copy.wast:797
+assert_return(() => invoke($9, `check_t0`, [15]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:798
+assert_return(() => invoke($9, `check_t0`, [16]), [value("i32", 6)]);
+
+// ./test/core/table_copy.wast:799
+assert_trap(() => invoke($9, `check_t0`, [17]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:800
+assert_trap(() => invoke($9, `check_t0`, [18]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:801
+assert_trap(() => invoke($9, `check_t0`, [19]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:802
+assert_trap(() => invoke($9, `check_t0`, [20]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:803
+assert_trap(() => invoke($9, `check_t0`, [21]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:804
+assert_trap(() => invoke($9, `check_t0`, [22]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:805
+assert_trap(() => invoke($9, `check_t0`, [23]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:806
+assert_trap(() => invoke($9, `check_t0`, [24]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:807
+assert_trap(() => invoke($9, `check_t0`, [25]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:808
+assert_trap(() => invoke($9, `check_t0`, [26]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:809
+assert_trap(() => invoke($9, `check_t0`, [27]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:810
+assert_trap(() => invoke($9, `check_t0`, [28]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:811
+assert_trap(() => invoke($9, `check_t0`, [29]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:812
+assert_trap(() => invoke($9, `check_t1`, [0]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:813
+assert_trap(() => invoke($9, `check_t1`, [1]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:814
+assert_trap(() => invoke($9, `check_t1`, [2]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:815
+assert_return(() => invoke($9, `check_t1`, [3]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:816
+assert_return(() => invoke($9, `check_t1`, [4]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:817
+assert_return(() => invoke($9, `check_t1`, [5]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:818
+assert_return(() => invoke($9, `check_t1`, [6]), [value("i32", 4)]);
+
+// ./test/core/table_copy.wast:819
+assert_trap(() => invoke($9, `check_t1`, [7]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:820
+assert_trap(() => invoke($9, `check_t1`, [8]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:821
+assert_trap(() => invoke($9, `check_t1`, [9]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:822
+assert_trap(() => invoke($9, `check_t1`, [10]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:823
+assert_trap(() => invoke($9, `check_t1`, [11]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:824
+assert_return(() => invoke($9, `check_t1`, [12]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:825
+assert_return(() => invoke($9, `check_t1`, [13]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:826
+assert_return(() => invoke($9, `check_t1`, [14]), [value("i32", 4)]);
+
+// ./test/core/table_copy.wast:827
+assert_return(() => invoke($9, `check_t1`, [15]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:828
+assert_trap(() => invoke($9, `check_t1`, [16]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:829
+assert_trap(() => invoke($9, `check_t1`, [17]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:830
+assert_trap(() => invoke($9, `check_t1`, [18]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:831
+assert_trap(() => invoke($9, `check_t1`, [19]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:832
+assert_trap(() => invoke($9, `check_t1`, [20]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:833
+assert_trap(() => invoke($9, `check_t1`, [21]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:834
+assert_return(() => invoke($9, `check_t1`, [22]), [value("i32", 7)]);
+
+// ./test/core/table_copy.wast:835
+assert_return(() => invoke($9, `check_t1`, [23]), [value("i32", 5)]);
+
+// ./test/core/table_copy.wast:836
+assert_return(() => invoke($9, `check_t1`, [24]), [value("i32", 2)]);
+
+// ./test/core/table_copy.wast:837
+assert_return(() => invoke($9, `check_t1`, [25]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:838
+assert_return(() => invoke($9, `check_t1`, [26]), [value("i32", 6)]);
+
+// ./test/core/table_copy.wast:839
+assert_trap(() => invoke($9, `check_t1`, [27]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:840
+assert_trap(() => invoke($9, `check_t1`, [28]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:841
+assert_trap(() => invoke($9, `check_t1`, [29]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:843
+let $10 = 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))
+ (elem (table $$t0) (i32.const 3) func 1 3 1 4)
+ (elem (table $$t0) (i32.const 11) func 6 3 2 5 7)
+ (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")
+ (nop))
+ (func (export "check_t0") (param i32) (result i32)
+ (call_indirect $$t1 (type 0) (local.get 0)))
+ (func (export "check_t1") (param i32) (result i32)
+ (call_indirect $$t0 (type 0) (local.get 0)))
+)`);
+
+// ./test/core/table_copy.wast:873
+invoke($10, `test`, []);
+
+// ./test/core/table_copy.wast:874
+assert_trap(() => invoke($10, `check_t0`, [0]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:875
+assert_trap(() => invoke($10, `check_t0`, [1]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:876
+assert_return(() => invoke($10, `check_t0`, [2]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:877
+assert_return(() => invoke($10, `check_t0`, [3]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:878
+assert_return(() => invoke($10, `check_t0`, [4]), [value("i32", 4)]);
+
+// ./test/core/table_copy.wast:879
+assert_return(() => invoke($10, `check_t0`, [5]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:880
+assert_trap(() => invoke($10, `check_t0`, [6]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:881
+assert_trap(() => invoke($10, `check_t0`, [7]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:882
+assert_trap(() => invoke($10, `check_t0`, [8]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:883
+assert_trap(() => invoke($10, `check_t0`, [9]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:884
+assert_trap(() => invoke($10, `check_t0`, [10]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:885
+assert_trap(() => invoke($10, `check_t0`, [11]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:886
+assert_return(() => invoke($10, `check_t0`, [12]), [value("i32", 7)]);
+
+// ./test/core/table_copy.wast:887
+assert_return(() => invoke($10, `check_t0`, [13]), [value("i32", 5)]);
+
+// ./test/core/table_copy.wast:888
+assert_return(() => invoke($10, `check_t0`, [14]), [value("i32", 2)]);
+
+// ./test/core/table_copy.wast:889
+assert_return(() => invoke($10, `check_t0`, [15]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:890
+assert_return(() => invoke($10, `check_t0`, [16]), [value("i32", 6)]);
+
+// ./test/core/table_copy.wast:891
+assert_trap(() => invoke($10, `check_t0`, [17]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:892
+assert_trap(() => invoke($10, `check_t0`, [18]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:893
+assert_trap(() => invoke($10, `check_t0`, [19]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:894
+assert_trap(() => invoke($10, `check_t0`, [20]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:895
+assert_trap(() => invoke($10, `check_t0`, [21]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:896
+assert_trap(() => invoke($10, `check_t0`, [22]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:897
+assert_trap(() => invoke($10, `check_t0`, [23]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:898
+assert_trap(() => invoke($10, `check_t0`, [24]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:899
+assert_trap(() => invoke($10, `check_t0`, [25]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:900
+assert_trap(() => invoke($10, `check_t0`, [26]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:901
+assert_trap(() => invoke($10, `check_t0`, [27]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:902
+assert_trap(() => invoke($10, `check_t0`, [28]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:903
+assert_trap(() => invoke($10, `check_t0`, [29]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:904
+assert_trap(() => invoke($10, `check_t1`, [0]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:905
+assert_trap(() => invoke($10, `check_t1`, [1]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:906
+assert_trap(() => invoke($10, `check_t1`, [2]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:907
+assert_return(() => invoke($10, `check_t1`, [3]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:908
+assert_return(() => invoke($10, `check_t1`, [4]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:909
+assert_return(() => invoke($10, `check_t1`, [5]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:910
+assert_return(() => invoke($10, `check_t1`, [6]), [value("i32", 4)]);
+
+// ./test/core/table_copy.wast:911
+assert_trap(() => invoke($10, `check_t1`, [7]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:912
+assert_trap(() => invoke($10, `check_t1`, [8]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:913
+assert_trap(() => invoke($10, `check_t1`, [9]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:914
+assert_trap(() => invoke($10, `check_t1`, [10]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:915
+assert_return(() => invoke($10, `check_t1`, [11]), [value("i32", 6)]);
+
+// ./test/core/table_copy.wast:916
+assert_return(() => invoke($10, `check_t1`, [12]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:917
+assert_return(() => invoke($10, `check_t1`, [13]), [value("i32", 2)]);
+
+// ./test/core/table_copy.wast:918
+assert_return(() => invoke($10, `check_t1`, [14]), [value("i32", 5)]);
+
+// ./test/core/table_copy.wast:919
+assert_return(() => invoke($10, `check_t1`, [15]), [value("i32", 7)]);
+
+// ./test/core/table_copy.wast:920
+assert_trap(() => invoke($10, `check_t1`, [16]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:921
+assert_trap(() => invoke($10, `check_t1`, [17]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:922
+assert_trap(() => invoke($10, `check_t1`, [18]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:923
+assert_trap(() => invoke($10, `check_t1`, [19]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:924
+assert_trap(() => invoke($10, `check_t1`, [20]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:925
+assert_trap(() => invoke($10, `check_t1`, [21]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:926
+assert_trap(() => invoke($10, `check_t1`, [22]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:927
+assert_trap(() => invoke($10, `check_t1`, [23]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:928
+assert_trap(() => invoke($10, `check_t1`, [24]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:929
+assert_trap(() => invoke($10, `check_t1`, [25]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:930
+assert_trap(() => invoke($10, `check_t1`, [26]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:931
+assert_trap(() => invoke($10, `check_t1`, [27]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:932
+assert_trap(() => invoke($10, `check_t1`, [28]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:933
+assert_trap(() => invoke($10, `check_t1`, [29]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:935
+let $11 = 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))
+ (elem (table $$t0) (i32.const 3) func 1 3 1 4)
+ (elem (table $$t0) (i32.const 11) func 6 3 2 5 7)
+ (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.copy $$t1 $$t1 (i32.const 13) (i32.const 2) (i32.const 3)))
+ (func (export "check_t0") (param i32) (result i32)
+ (call_indirect $$t1 (type 0) (local.get 0)))
+ (func (export "check_t1") (param i32) (result i32)
+ (call_indirect $$t0 (type 0) (local.get 0)))
+)`);
+
+// ./test/core/table_copy.wast:965
+invoke($11, `test`, []);
+
+// ./test/core/table_copy.wast:966
+assert_trap(() => invoke($11, `check_t0`, [0]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:967
+assert_trap(() => invoke($11, `check_t0`, [1]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:968
+assert_return(() => invoke($11, `check_t0`, [2]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:969
+assert_return(() => invoke($11, `check_t0`, [3]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:970
+assert_return(() => invoke($11, `check_t0`, [4]), [value("i32", 4)]);
+
+// ./test/core/table_copy.wast:971
+assert_return(() => invoke($11, `check_t0`, [5]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:972
+assert_trap(() => invoke($11, `check_t0`, [6]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:973
+assert_trap(() => invoke($11, `check_t0`, [7]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:974
+assert_trap(() => invoke($11, `check_t0`, [8]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:975
+assert_trap(() => invoke($11, `check_t0`, [9]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:976
+assert_trap(() => invoke($11, `check_t0`, [10]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:977
+assert_trap(() => invoke($11, `check_t0`, [11]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:978
+assert_return(() => invoke($11, `check_t0`, [12]), [value("i32", 7)]);
+
+// ./test/core/table_copy.wast:979
+assert_return(() => invoke($11, `check_t0`, [13]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:980
+assert_return(() => invoke($11, `check_t0`, [14]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:981
+assert_return(() => invoke($11, `check_t0`, [15]), [value("i32", 4)]);
+
+// ./test/core/table_copy.wast:982
+assert_return(() => invoke($11, `check_t0`, [16]), [value("i32", 6)]);
+
+// ./test/core/table_copy.wast:983
+assert_trap(() => invoke($11, `check_t0`, [17]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:984
+assert_trap(() => invoke($11, `check_t0`, [18]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:985
+assert_trap(() => invoke($11, `check_t0`, [19]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:986
+assert_trap(() => invoke($11, `check_t0`, [20]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:987
+assert_trap(() => invoke($11, `check_t0`, [21]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:988
+assert_trap(() => invoke($11, `check_t0`, [22]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:989
+assert_trap(() => invoke($11, `check_t0`, [23]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:990
+assert_trap(() => invoke($11, `check_t0`, [24]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:991
+assert_trap(() => invoke($11, `check_t0`, [25]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:992
+assert_trap(() => invoke($11, `check_t0`, [26]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:993
+assert_trap(() => invoke($11, `check_t0`, [27]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:994
+assert_trap(() => invoke($11, `check_t0`, [28]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:995
+assert_trap(() => invoke($11, `check_t0`, [29]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:996
+assert_trap(() => invoke($11, `check_t1`, [0]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:997
+assert_trap(() => invoke($11, `check_t1`, [1]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:998
+assert_trap(() => invoke($11, `check_t1`, [2]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:999
+assert_return(() => invoke($11, `check_t1`, [3]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:1000
+assert_return(() => invoke($11, `check_t1`, [4]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:1001
+assert_return(() => invoke($11, `check_t1`, [5]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:1002
+assert_return(() => invoke($11, `check_t1`, [6]), [value("i32", 4)]);
+
+// ./test/core/table_copy.wast:1003
+assert_trap(() => invoke($11, `check_t1`, [7]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1004
+assert_trap(() => invoke($11, `check_t1`, [8]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1005
+assert_trap(() => invoke($11, `check_t1`, [9]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1006
+assert_trap(() => invoke($11, `check_t1`, [10]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1007
+assert_return(() => invoke($11, `check_t1`, [11]), [value("i32", 6)]);
+
+// ./test/core/table_copy.wast:1008
+assert_return(() => invoke($11, `check_t1`, [12]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:1009
+assert_return(() => invoke($11, `check_t1`, [13]), [value("i32", 2)]);
+
+// ./test/core/table_copy.wast:1010
+assert_return(() => invoke($11, `check_t1`, [14]), [value("i32", 5)]);
+
+// ./test/core/table_copy.wast:1011
+assert_return(() => invoke($11, `check_t1`, [15]), [value("i32", 7)]);
+
+// ./test/core/table_copy.wast:1012
+assert_trap(() => invoke($11, `check_t1`, [16]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1013
+assert_trap(() => invoke($11, `check_t1`, [17]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1014
+assert_trap(() => invoke($11, `check_t1`, [18]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1015
+assert_trap(() => invoke($11, `check_t1`, [19]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1016
+assert_trap(() => invoke($11, `check_t1`, [20]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1017
+assert_trap(() => invoke($11, `check_t1`, [21]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1018
+assert_trap(() => invoke($11, `check_t1`, [22]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1019
+assert_trap(() => invoke($11, `check_t1`, [23]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1020
+assert_trap(() => invoke($11, `check_t1`, [24]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1021
+assert_trap(() => invoke($11, `check_t1`, [25]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1022
+assert_trap(() => invoke($11, `check_t1`, [26]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1023
+assert_trap(() => invoke($11, `check_t1`, [27]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1024
+assert_trap(() => invoke($11, `check_t1`, [28]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1025
+assert_trap(() => invoke($11, `check_t1`, [29]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1027
+let $12 = 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))
+ (elem (table $$t0) (i32.const 3) func 1 3 1 4)
+ (elem (table $$t0) (i32.const 11) func 6 3 2 5 7)
+ (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.copy $$t1 $$t1 (i32.const 25) (i32.const 15) (i32.const 2)))
+ (func (export "check_t0") (param i32) (result i32)
+ (call_indirect $$t1 (type 0) (local.get 0)))
+ (func (export "check_t1") (param i32) (result i32)
+ (call_indirect $$t0 (type 0) (local.get 0)))
+)`);
+
+// ./test/core/table_copy.wast:1057
+invoke($12, `test`, []);
+
+// ./test/core/table_copy.wast:1058
+assert_trap(() => invoke($12, `check_t0`, [0]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1059
+assert_trap(() => invoke($12, `check_t0`, [1]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1060
+assert_return(() => invoke($12, `check_t0`, [2]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:1061
+assert_return(() => invoke($12, `check_t0`, [3]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:1062
+assert_return(() => invoke($12, `check_t0`, [4]), [value("i32", 4)]);
+
+// ./test/core/table_copy.wast:1063
+assert_return(() => invoke($12, `check_t0`, [5]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:1064
+assert_trap(() => invoke($12, `check_t0`, [6]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1065
+assert_trap(() => invoke($12, `check_t0`, [7]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1066
+assert_trap(() => invoke($12, `check_t0`, [8]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1067
+assert_trap(() => invoke($12, `check_t0`, [9]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1068
+assert_trap(() => invoke($12, `check_t0`, [10]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1069
+assert_trap(() => invoke($12, `check_t0`, [11]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1070
+assert_return(() => invoke($12, `check_t0`, [12]), [value("i32", 7)]);
+
+// ./test/core/table_copy.wast:1071
+assert_return(() => invoke($12, `check_t0`, [13]), [value("i32", 5)]);
+
+// ./test/core/table_copy.wast:1072
+assert_return(() => invoke($12, `check_t0`, [14]), [value("i32", 2)]);
+
+// ./test/core/table_copy.wast:1073
+assert_return(() => invoke($12, `check_t0`, [15]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:1074
+assert_return(() => invoke($12, `check_t0`, [16]), [value("i32", 6)]);
+
+// ./test/core/table_copy.wast:1075
+assert_trap(() => invoke($12, `check_t0`, [17]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1076
+assert_trap(() => invoke($12, `check_t0`, [18]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1077
+assert_trap(() => invoke($12, `check_t0`, [19]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1078
+assert_trap(() => invoke($12, `check_t0`, [20]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1079
+assert_trap(() => invoke($12, `check_t0`, [21]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1080
+assert_trap(() => invoke($12, `check_t0`, [22]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1081
+assert_trap(() => invoke($12, `check_t0`, [23]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1082
+assert_trap(() => invoke($12, `check_t0`, [24]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1083
+assert_return(() => invoke($12, `check_t0`, [25]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:1084
+assert_return(() => invoke($12, `check_t0`, [26]), [value("i32", 6)]);
+
+// ./test/core/table_copy.wast:1085
+assert_trap(() => invoke($12, `check_t0`, [27]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1086
+assert_trap(() => invoke($12, `check_t0`, [28]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1087
+assert_trap(() => invoke($12, `check_t0`, [29]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1088
+assert_trap(() => invoke($12, `check_t1`, [0]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1089
+assert_trap(() => invoke($12, `check_t1`, [1]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1090
+assert_trap(() => invoke($12, `check_t1`, [2]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1091
+assert_return(() => invoke($12, `check_t1`, [3]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:1092
+assert_return(() => invoke($12, `check_t1`, [4]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:1093
+assert_return(() => invoke($12, `check_t1`, [5]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:1094
+assert_return(() => invoke($12, `check_t1`, [6]), [value("i32", 4)]);
+
+// ./test/core/table_copy.wast:1095
+assert_trap(() => invoke($12, `check_t1`, [7]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1096
+assert_trap(() => invoke($12, `check_t1`, [8]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1097
+assert_trap(() => invoke($12, `check_t1`, [9]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1098
+assert_trap(() => invoke($12, `check_t1`, [10]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1099
+assert_return(() => invoke($12, `check_t1`, [11]), [value("i32", 6)]);
+
+// ./test/core/table_copy.wast:1100
+assert_return(() => invoke($12, `check_t1`, [12]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:1101
+assert_return(() => invoke($12, `check_t1`, [13]), [value("i32", 2)]);
+
+// ./test/core/table_copy.wast:1102
+assert_return(() => invoke($12, `check_t1`, [14]), [value("i32", 5)]);
+
+// ./test/core/table_copy.wast:1103
+assert_return(() => invoke($12, `check_t1`, [15]), [value("i32", 7)]);
+
+// ./test/core/table_copy.wast:1104
+assert_trap(() => invoke($12, `check_t1`, [16]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1105
+assert_trap(() => invoke($12, `check_t1`, [17]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1106
+assert_trap(() => invoke($12, `check_t1`, [18]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1107
+assert_trap(() => invoke($12, `check_t1`, [19]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1108
+assert_trap(() => invoke($12, `check_t1`, [20]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1109
+assert_trap(() => invoke($12, `check_t1`, [21]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1110
+assert_trap(() => invoke($12, `check_t1`, [22]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1111
+assert_trap(() => invoke($12, `check_t1`, [23]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1112
+assert_trap(() => invoke($12, `check_t1`, [24]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1113
+assert_trap(() => invoke($12, `check_t1`, [25]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1114
+assert_trap(() => invoke($12, `check_t1`, [26]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1115
+assert_trap(() => invoke($12, `check_t1`, [27]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1116
+assert_trap(() => invoke($12, `check_t1`, [28]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1117
+assert_trap(() => invoke($12, `check_t1`, [29]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1119
+let $13 = 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))
+ (elem (table $$t0) (i32.const 3) func 1 3 1 4)
+ (elem (table $$t0) (i32.const 11) func 6 3 2 5 7)
+ (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.copy $$t1 $$t1 (i32.const 13) (i32.const 25) (i32.const 3)))
+ (func (export "check_t0") (param i32) (result i32)
+ (call_indirect $$t1 (type 0) (local.get 0)))
+ (func (export "check_t1") (param i32) (result i32)
+ (call_indirect $$t0 (type 0) (local.get 0)))
+)`);
+
+// ./test/core/table_copy.wast:1149
+invoke($13, `test`, []);
+
+// ./test/core/table_copy.wast:1150
+assert_trap(() => invoke($13, `check_t0`, [0]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1151
+assert_trap(() => invoke($13, `check_t0`, [1]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1152
+assert_return(() => invoke($13, `check_t0`, [2]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:1153
+assert_return(() => invoke($13, `check_t0`, [3]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:1154
+assert_return(() => invoke($13, `check_t0`, [4]), [value("i32", 4)]);
+
+// ./test/core/table_copy.wast:1155
+assert_return(() => invoke($13, `check_t0`, [5]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:1156
+assert_trap(() => invoke($13, `check_t0`, [6]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1157
+assert_trap(() => invoke($13, `check_t0`, [7]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1158
+assert_trap(() => invoke($13, `check_t0`, [8]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1159
+assert_trap(() => invoke($13, `check_t0`, [9]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1160
+assert_trap(() => invoke($13, `check_t0`, [10]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1161
+assert_trap(() => invoke($13, `check_t0`, [11]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1162
+assert_return(() => invoke($13, `check_t0`, [12]), [value("i32", 7)]);
+
+// ./test/core/table_copy.wast:1163
+assert_trap(() => invoke($13, `check_t0`, [13]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1164
+assert_trap(() => invoke($13, `check_t0`, [14]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1165
+assert_trap(() => invoke($13, `check_t0`, [15]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1166
+assert_return(() => invoke($13, `check_t0`, [16]), [value("i32", 6)]);
+
+// ./test/core/table_copy.wast:1167
+assert_trap(() => invoke($13, `check_t0`, [17]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1168
+assert_trap(() => invoke($13, `check_t0`, [18]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1169
+assert_trap(() => invoke($13, `check_t0`, [19]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1170
+assert_trap(() => invoke($13, `check_t0`, [20]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1171
+assert_trap(() => invoke($13, `check_t0`, [21]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1172
+assert_trap(() => invoke($13, `check_t0`, [22]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1173
+assert_trap(() => invoke($13, `check_t0`, [23]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1174
+assert_trap(() => invoke($13, `check_t0`, [24]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1175
+assert_trap(() => invoke($13, `check_t0`, [25]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1176
+assert_trap(() => invoke($13, `check_t0`, [26]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1177
+assert_trap(() => invoke($13, `check_t0`, [27]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1178
+assert_trap(() => invoke($13, `check_t0`, [28]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1179
+assert_trap(() => invoke($13, `check_t0`, [29]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1180
+assert_trap(() => invoke($13, `check_t1`, [0]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1181
+assert_trap(() => invoke($13, `check_t1`, [1]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1182
+assert_trap(() => invoke($13, `check_t1`, [2]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1183
+assert_return(() => invoke($13, `check_t1`, [3]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:1184
+assert_return(() => invoke($13, `check_t1`, [4]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:1185
+assert_return(() => invoke($13, `check_t1`, [5]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:1186
+assert_return(() => invoke($13, `check_t1`, [6]), [value("i32", 4)]);
+
+// ./test/core/table_copy.wast:1187
+assert_trap(() => invoke($13, `check_t1`, [7]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1188
+assert_trap(() => invoke($13, `check_t1`, [8]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1189
+assert_trap(() => invoke($13, `check_t1`, [9]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1190
+assert_trap(() => invoke($13, `check_t1`, [10]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1191
+assert_return(() => invoke($13, `check_t1`, [11]), [value("i32", 6)]);
+
+// ./test/core/table_copy.wast:1192
+assert_return(() => invoke($13, `check_t1`, [12]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:1193
+assert_return(() => invoke($13, `check_t1`, [13]), [value("i32", 2)]);
+
+// ./test/core/table_copy.wast:1194
+assert_return(() => invoke($13, `check_t1`, [14]), [value("i32", 5)]);
+
+// ./test/core/table_copy.wast:1195
+assert_return(() => invoke($13, `check_t1`, [15]), [value("i32", 7)]);
+
+// ./test/core/table_copy.wast:1196
+assert_trap(() => invoke($13, `check_t1`, [16]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1197
+assert_trap(() => invoke($13, `check_t1`, [17]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1198
+assert_trap(() => invoke($13, `check_t1`, [18]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1199
+assert_trap(() => invoke($13, `check_t1`, [19]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1200
+assert_trap(() => invoke($13, `check_t1`, [20]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1201
+assert_trap(() => invoke($13, `check_t1`, [21]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1202
+assert_trap(() => invoke($13, `check_t1`, [22]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1203
+assert_trap(() => invoke($13, `check_t1`, [23]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1204
+assert_trap(() => invoke($13, `check_t1`, [24]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1205
+assert_trap(() => invoke($13, `check_t1`, [25]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1206
+assert_trap(() => invoke($13, `check_t1`, [26]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1207
+assert_trap(() => invoke($13, `check_t1`, [27]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1208
+assert_trap(() => invoke($13, `check_t1`, [28]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1209
+assert_trap(() => invoke($13, `check_t1`, [29]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1211
+let $14 = 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))
+ (elem (table $$t0) (i32.const 3) func 1 3 1 4)
+ (elem (table $$t0) (i32.const 11) func 6 3 2 5 7)
+ (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.copy $$t1 $$t1 (i32.const 20) (i32.const 22) (i32.const 4)))
+ (func (export "check_t0") (param i32) (result i32)
+ (call_indirect $$t1 (type 0) (local.get 0)))
+ (func (export "check_t1") (param i32) (result i32)
+ (call_indirect $$t0 (type 0) (local.get 0)))
+)`);
+
+// ./test/core/table_copy.wast:1241
+invoke($14, `test`, []);
+
+// ./test/core/table_copy.wast:1242
+assert_trap(() => invoke($14, `check_t0`, [0]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1243
+assert_trap(() => invoke($14, `check_t0`, [1]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1244
+assert_return(() => invoke($14, `check_t0`, [2]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:1245
+assert_return(() => invoke($14, `check_t0`, [3]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:1246
+assert_return(() => invoke($14, `check_t0`, [4]), [value("i32", 4)]);
+
+// ./test/core/table_copy.wast:1247
+assert_return(() => invoke($14, `check_t0`, [5]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:1248
+assert_trap(() => invoke($14, `check_t0`, [6]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1249
+assert_trap(() => invoke($14, `check_t0`, [7]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1250
+assert_trap(() => invoke($14, `check_t0`, [8]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1251
+assert_trap(() => invoke($14, `check_t0`, [9]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1252
+assert_trap(() => invoke($14, `check_t0`, [10]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1253
+assert_trap(() => invoke($14, `check_t0`, [11]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1254
+assert_return(() => invoke($14, `check_t0`, [12]), [value("i32", 7)]);
+
+// ./test/core/table_copy.wast:1255
+assert_return(() => invoke($14, `check_t0`, [13]), [value("i32", 5)]);
+
+// ./test/core/table_copy.wast:1256
+assert_return(() => invoke($14, `check_t0`, [14]), [value("i32", 2)]);
+
+// ./test/core/table_copy.wast:1257
+assert_return(() => invoke($14, `check_t0`, [15]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:1258
+assert_return(() => invoke($14, `check_t0`, [16]), [value("i32", 6)]);
+
+// ./test/core/table_copy.wast:1259
+assert_trap(() => invoke($14, `check_t0`, [17]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1260
+assert_trap(() => invoke($14, `check_t0`, [18]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1261
+assert_trap(() => invoke($14, `check_t0`, [19]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1262
+assert_trap(() => invoke($14, `check_t0`, [20]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1263
+assert_trap(() => invoke($14, `check_t0`, [21]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1264
+assert_trap(() => invoke($14, `check_t0`, [22]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1265
+assert_trap(() => invoke($14, `check_t0`, [23]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1266
+assert_trap(() => invoke($14, `check_t0`, [24]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1267
+assert_trap(() => invoke($14, `check_t0`, [25]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1268
+assert_trap(() => invoke($14, `check_t0`, [26]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1269
+assert_trap(() => invoke($14, `check_t0`, [27]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1270
+assert_trap(() => invoke($14, `check_t0`, [28]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1271
+assert_trap(() => invoke($14, `check_t0`, [29]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1272
+assert_trap(() => invoke($14, `check_t1`, [0]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1273
+assert_trap(() => invoke($14, `check_t1`, [1]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1274
+assert_trap(() => invoke($14, `check_t1`, [2]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1275
+assert_return(() => invoke($14, `check_t1`, [3]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:1276
+assert_return(() => invoke($14, `check_t1`, [4]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:1277
+assert_return(() => invoke($14, `check_t1`, [5]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:1278
+assert_return(() => invoke($14, `check_t1`, [6]), [value("i32", 4)]);
+
+// ./test/core/table_copy.wast:1279
+assert_trap(() => invoke($14, `check_t1`, [7]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1280
+assert_trap(() => invoke($14, `check_t1`, [8]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1281
+assert_trap(() => invoke($14, `check_t1`, [9]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1282
+assert_trap(() => invoke($14, `check_t1`, [10]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1283
+assert_return(() => invoke($14, `check_t1`, [11]), [value("i32", 6)]);
+
+// ./test/core/table_copy.wast:1284
+assert_return(() => invoke($14, `check_t1`, [12]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:1285
+assert_return(() => invoke($14, `check_t1`, [13]), [value("i32", 2)]);
+
+// ./test/core/table_copy.wast:1286
+assert_return(() => invoke($14, `check_t1`, [14]), [value("i32", 5)]);
+
+// ./test/core/table_copy.wast:1287
+assert_return(() => invoke($14, `check_t1`, [15]), [value("i32", 7)]);
+
+// ./test/core/table_copy.wast:1288
+assert_trap(() => invoke($14, `check_t1`, [16]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1289
+assert_trap(() => invoke($14, `check_t1`, [17]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1290
+assert_trap(() => invoke($14, `check_t1`, [18]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1291
+assert_trap(() => invoke($14, `check_t1`, [19]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1292
+assert_trap(() => invoke($14, `check_t1`, [20]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1293
+assert_trap(() => invoke($14, `check_t1`, [21]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1294
+assert_trap(() => invoke($14, `check_t1`, [22]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1295
+assert_trap(() => invoke($14, `check_t1`, [23]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1296
+assert_trap(() => invoke($14, `check_t1`, [24]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1297
+assert_trap(() => invoke($14, `check_t1`, [25]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1298
+assert_trap(() => invoke($14, `check_t1`, [26]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1299
+assert_trap(() => invoke($14, `check_t1`, [27]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1300
+assert_trap(() => invoke($14, `check_t1`, [28]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1301
+assert_trap(() => invoke($14, `check_t1`, [29]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1303
+let $15 = 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))
+ (elem (table $$t0) (i32.const 3) func 1 3 1 4)
+ (elem (table $$t0) (i32.const 11) func 6 3 2 5 7)
+ (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.copy $$t1 $$t1 (i32.const 25) (i32.const 1) (i32.const 3)))
+ (func (export "check_t0") (param i32) (result i32)
+ (call_indirect $$t1 (type 0) (local.get 0)))
+ (func (export "check_t1") (param i32) (result i32)
+ (call_indirect $$t0 (type 0) (local.get 0)))
+)`);
+
+// ./test/core/table_copy.wast:1333
+invoke($15, `test`, []);
+
+// ./test/core/table_copy.wast:1334
+assert_trap(() => invoke($15, `check_t0`, [0]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1335
+assert_trap(() => invoke($15, `check_t0`, [1]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1336
+assert_return(() => invoke($15, `check_t0`, [2]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:1337
+assert_return(() => invoke($15, `check_t0`, [3]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:1338
+assert_return(() => invoke($15, `check_t0`, [4]), [value("i32", 4)]);
+
+// ./test/core/table_copy.wast:1339
+assert_return(() => invoke($15, `check_t0`, [5]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:1340
+assert_trap(() => invoke($15, `check_t0`, [6]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1341
+assert_trap(() => invoke($15, `check_t0`, [7]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1342
+assert_trap(() => invoke($15, `check_t0`, [8]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1343
+assert_trap(() => invoke($15, `check_t0`, [9]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1344
+assert_trap(() => invoke($15, `check_t0`, [10]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1345
+assert_trap(() => invoke($15, `check_t0`, [11]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1346
+assert_return(() => invoke($15, `check_t0`, [12]), [value("i32", 7)]);
+
+// ./test/core/table_copy.wast:1347
+assert_return(() => invoke($15, `check_t0`, [13]), [value("i32", 5)]);
+
+// ./test/core/table_copy.wast:1348
+assert_return(() => invoke($15, `check_t0`, [14]), [value("i32", 2)]);
+
+// ./test/core/table_copy.wast:1349
+assert_return(() => invoke($15, `check_t0`, [15]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:1350
+assert_return(() => invoke($15, `check_t0`, [16]), [value("i32", 6)]);
+
+// ./test/core/table_copy.wast:1351
+assert_trap(() => invoke($15, `check_t0`, [17]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1352
+assert_trap(() => invoke($15, `check_t0`, [18]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1353
+assert_trap(() => invoke($15, `check_t0`, [19]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1354
+assert_trap(() => invoke($15, `check_t0`, [20]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1355
+assert_trap(() => invoke($15, `check_t0`, [21]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1356
+assert_trap(() => invoke($15, `check_t0`, [22]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1357
+assert_trap(() => invoke($15, `check_t0`, [23]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1358
+assert_trap(() => invoke($15, `check_t0`, [24]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1359
+assert_trap(() => invoke($15, `check_t0`, [25]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1360
+assert_return(() => invoke($15, `check_t0`, [26]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:1361
+assert_return(() => invoke($15, `check_t0`, [27]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:1362
+assert_trap(() => invoke($15, `check_t0`, [28]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1363
+assert_trap(() => invoke($15, `check_t0`, [29]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1364
+assert_trap(() => invoke($15, `check_t1`, [0]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1365
+assert_trap(() => invoke($15, `check_t1`, [1]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1366
+assert_trap(() => invoke($15, `check_t1`, [2]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1367
+assert_return(() => invoke($15, `check_t1`, [3]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:1368
+assert_return(() => invoke($15, `check_t1`, [4]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:1369
+assert_return(() => invoke($15, `check_t1`, [5]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:1370
+assert_return(() => invoke($15, `check_t1`, [6]), [value("i32", 4)]);
+
+// ./test/core/table_copy.wast:1371
+assert_trap(() => invoke($15, `check_t1`, [7]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1372
+assert_trap(() => invoke($15, `check_t1`, [8]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1373
+assert_trap(() => invoke($15, `check_t1`, [9]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1374
+assert_trap(() => invoke($15, `check_t1`, [10]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1375
+assert_return(() => invoke($15, `check_t1`, [11]), [value("i32", 6)]);
+
+// ./test/core/table_copy.wast:1376
+assert_return(() => invoke($15, `check_t1`, [12]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:1377
+assert_return(() => invoke($15, `check_t1`, [13]), [value("i32", 2)]);
+
+// ./test/core/table_copy.wast:1378
+assert_return(() => invoke($15, `check_t1`, [14]), [value("i32", 5)]);
+
+// ./test/core/table_copy.wast:1379
+assert_return(() => invoke($15, `check_t1`, [15]), [value("i32", 7)]);
+
+// ./test/core/table_copy.wast:1380
+assert_trap(() => invoke($15, `check_t1`, [16]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1381
+assert_trap(() => invoke($15, `check_t1`, [17]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1382
+assert_trap(() => invoke($15, `check_t1`, [18]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1383
+assert_trap(() => invoke($15, `check_t1`, [19]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1384
+assert_trap(() => invoke($15, `check_t1`, [20]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1385
+assert_trap(() => invoke($15, `check_t1`, [21]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1386
+assert_trap(() => invoke($15, `check_t1`, [22]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1387
+assert_trap(() => invoke($15, `check_t1`, [23]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1388
+assert_trap(() => invoke($15, `check_t1`, [24]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1389
+assert_trap(() => invoke($15, `check_t1`, [25]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1390
+assert_trap(() => invoke($15, `check_t1`, [26]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1391
+assert_trap(() => invoke($15, `check_t1`, [27]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1392
+assert_trap(() => invoke($15, `check_t1`, [28]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1393
+assert_trap(() => invoke($15, `check_t1`, [29]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1395
+let $16 = 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))
+ (elem (table $$t0) (i32.const 3) func 1 3 1 4)
+ (elem (table $$t0) (i32.const 11) func 6 3 2 5 7)
+ (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.copy $$t1 $$t1 (i32.const 10) (i32.const 12) (i32.const 7)))
+ (func (export "check_t0") (param i32) (result i32)
+ (call_indirect $$t1 (type 0) (local.get 0)))
+ (func (export "check_t1") (param i32) (result i32)
+ (call_indirect $$t0 (type 0) (local.get 0)))
+)`);
+
+// ./test/core/table_copy.wast:1425
+invoke($16, `test`, []);
+
+// ./test/core/table_copy.wast:1426
+assert_trap(() => invoke($16, `check_t0`, [0]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1427
+assert_trap(() => invoke($16, `check_t0`, [1]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1428
+assert_return(() => invoke($16, `check_t0`, [2]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:1429
+assert_return(() => invoke($16, `check_t0`, [3]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:1430
+assert_return(() => invoke($16, `check_t0`, [4]), [value("i32", 4)]);
+
+// ./test/core/table_copy.wast:1431
+assert_return(() => invoke($16, `check_t0`, [5]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:1432
+assert_trap(() => invoke($16, `check_t0`, [6]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1433
+assert_trap(() => invoke($16, `check_t0`, [7]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1434
+assert_trap(() => invoke($16, `check_t0`, [8]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1435
+assert_trap(() => invoke($16, `check_t0`, [9]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1436
+assert_return(() => invoke($16, `check_t0`, [10]), [value("i32", 7)]);
+
+// ./test/core/table_copy.wast:1437
+assert_return(() => invoke($16, `check_t0`, [11]), [value("i32", 5)]);
+
+// ./test/core/table_copy.wast:1438
+assert_return(() => invoke($16, `check_t0`, [12]), [value("i32", 2)]);
+
+// ./test/core/table_copy.wast:1439
+assert_return(() => invoke($16, `check_t0`, [13]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:1440
+assert_return(() => invoke($16, `check_t0`, [14]), [value("i32", 6)]);
+
+// ./test/core/table_copy.wast:1441
+assert_trap(() => invoke($16, `check_t0`, [15]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1442
+assert_trap(() => invoke($16, `check_t0`, [16]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1443
+assert_trap(() => invoke($16, `check_t0`, [17]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1444
+assert_trap(() => invoke($16, `check_t0`, [18]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1445
+assert_trap(() => invoke($16, `check_t0`, [19]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1446
+assert_trap(() => invoke($16, `check_t0`, [20]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1447
+assert_trap(() => invoke($16, `check_t0`, [21]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1448
+assert_trap(() => invoke($16, `check_t0`, [22]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1449
+assert_trap(() => invoke($16, `check_t0`, [23]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1450
+assert_trap(() => invoke($16, `check_t0`, [24]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1451
+assert_trap(() => invoke($16, `check_t0`, [25]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1452
+assert_trap(() => invoke($16, `check_t0`, [26]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1453
+assert_trap(() => invoke($16, `check_t0`, [27]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1454
+assert_trap(() => invoke($16, `check_t0`, [28]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1455
+assert_trap(() => invoke($16, `check_t0`, [29]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1456
+assert_trap(() => invoke($16, `check_t1`, [0]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1457
+assert_trap(() => invoke($16, `check_t1`, [1]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1458
+assert_trap(() => invoke($16, `check_t1`, [2]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1459
+assert_return(() => invoke($16, `check_t1`, [3]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:1460
+assert_return(() => invoke($16, `check_t1`, [4]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:1461
+assert_return(() => invoke($16, `check_t1`, [5]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:1462
+assert_return(() => invoke($16, `check_t1`, [6]), [value("i32", 4)]);
+
+// ./test/core/table_copy.wast:1463
+assert_trap(() => invoke($16, `check_t1`, [7]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1464
+assert_trap(() => invoke($16, `check_t1`, [8]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1465
+assert_trap(() => invoke($16, `check_t1`, [9]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1466
+assert_trap(() => invoke($16, `check_t1`, [10]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1467
+assert_return(() => invoke($16, `check_t1`, [11]), [value("i32", 6)]);
+
+// ./test/core/table_copy.wast:1468
+assert_return(() => invoke($16, `check_t1`, [12]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:1469
+assert_return(() => invoke($16, `check_t1`, [13]), [value("i32", 2)]);
+
+// ./test/core/table_copy.wast:1470
+assert_return(() => invoke($16, `check_t1`, [14]), [value("i32", 5)]);
+
+// ./test/core/table_copy.wast:1471
+assert_return(() => invoke($16, `check_t1`, [15]), [value("i32", 7)]);
+
+// ./test/core/table_copy.wast:1472
+assert_trap(() => invoke($16, `check_t1`, [16]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1473
+assert_trap(() => invoke($16, `check_t1`, [17]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1474
+assert_trap(() => invoke($16, `check_t1`, [18]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1475
+assert_trap(() => invoke($16, `check_t1`, [19]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1476
+assert_trap(() => invoke($16, `check_t1`, [20]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1477
+assert_trap(() => invoke($16, `check_t1`, [21]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1478
+assert_trap(() => invoke($16, `check_t1`, [22]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1479
+assert_trap(() => invoke($16, `check_t1`, [23]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1480
+assert_trap(() => invoke($16, `check_t1`, [24]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1481
+assert_trap(() => invoke($16, `check_t1`, [25]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1482
+assert_trap(() => invoke($16, `check_t1`, [26]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1483
+assert_trap(() => invoke($16, `check_t1`, [27]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1484
+assert_trap(() => invoke($16, `check_t1`, [28]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1485
+assert_trap(() => invoke($16, `check_t1`, [29]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1487
+let $17 = 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))
+ (elem (table $$t0) (i32.const 3) func 1 3 1 4)
+ (elem (table $$t0) (i32.const 11) func 6 3 2 5 7)
+ (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.copy $$t1 $$t1 (i32.const 12) (i32.const 10) (i32.const 7)))
+ (func (export "check_t0") (param i32) (result i32)
+ (call_indirect $$t1 (type 0) (local.get 0)))
+ (func (export "check_t1") (param i32) (result i32)
+ (call_indirect $$t0 (type 0) (local.get 0)))
+)`);
+
+// ./test/core/table_copy.wast:1517
+invoke($17, `test`, []);
+
+// ./test/core/table_copy.wast:1518
+assert_trap(() => invoke($17, `check_t0`, [0]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1519
+assert_trap(() => invoke($17, `check_t0`, [1]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1520
+assert_return(() => invoke($17, `check_t0`, [2]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:1521
+assert_return(() => invoke($17, `check_t0`, [3]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:1522
+assert_return(() => invoke($17, `check_t0`, [4]), [value("i32", 4)]);
+
+// ./test/core/table_copy.wast:1523
+assert_return(() => invoke($17, `check_t0`, [5]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:1524
+assert_trap(() => invoke($17, `check_t0`, [6]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1525
+assert_trap(() => invoke($17, `check_t0`, [7]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1526
+assert_trap(() => invoke($17, `check_t0`, [8]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1527
+assert_trap(() => invoke($17, `check_t0`, [9]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1528
+assert_trap(() => invoke($17, `check_t0`, [10]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1529
+assert_trap(() => invoke($17, `check_t0`, [11]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1530
+assert_trap(() => invoke($17, `check_t0`, [12]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1531
+assert_trap(() => invoke($17, `check_t0`, [13]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1532
+assert_return(() => invoke($17, `check_t0`, [14]), [value("i32", 7)]);
+
+// ./test/core/table_copy.wast:1533
+assert_return(() => invoke($17, `check_t0`, [15]), [value("i32", 5)]);
+
+// ./test/core/table_copy.wast:1534
+assert_return(() => invoke($17, `check_t0`, [16]), [value("i32", 2)]);
+
+// ./test/core/table_copy.wast:1535
+assert_return(() => invoke($17, `check_t0`, [17]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:1536
+assert_return(() => invoke($17, `check_t0`, [18]), [value("i32", 6)]);
+
+// ./test/core/table_copy.wast:1537
+assert_trap(() => invoke($17, `check_t0`, [19]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1538
+assert_trap(() => invoke($17, `check_t0`, [20]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1539
+assert_trap(() => invoke($17, `check_t0`, [21]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1540
+assert_trap(() => invoke($17, `check_t0`, [22]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1541
+assert_trap(() => invoke($17, `check_t0`, [23]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1542
+assert_trap(() => invoke($17, `check_t0`, [24]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1543
+assert_trap(() => invoke($17, `check_t0`, [25]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1544
+assert_trap(() => invoke($17, `check_t0`, [26]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1545
+assert_trap(() => invoke($17, `check_t0`, [27]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1546
+assert_trap(() => invoke($17, `check_t0`, [28]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1547
+assert_trap(() => invoke($17, `check_t0`, [29]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1548
+assert_trap(() => invoke($17, `check_t1`, [0]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1549
+assert_trap(() => invoke($17, `check_t1`, [1]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1550
+assert_trap(() => invoke($17, `check_t1`, [2]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1551
+assert_return(() => invoke($17, `check_t1`, [3]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:1552
+assert_return(() => invoke($17, `check_t1`, [4]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:1553
+assert_return(() => invoke($17, `check_t1`, [5]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:1554
+assert_return(() => invoke($17, `check_t1`, [6]), [value("i32", 4)]);
+
+// ./test/core/table_copy.wast:1555
+assert_trap(() => invoke($17, `check_t1`, [7]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1556
+assert_trap(() => invoke($17, `check_t1`, [8]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1557
+assert_trap(() => invoke($17, `check_t1`, [9]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1558
+assert_trap(() => invoke($17, `check_t1`, [10]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1559
+assert_return(() => invoke($17, `check_t1`, [11]), [value("i32", 6)]);
+
+// ./test/core/table_copy.wast:1560
+assert_return(() => invoke($17, `check_t1`, [12]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:1561
+assert_return(() => invoke($17, `check_t1`, [13]), [value("i32", 2)]);
+
+// ./test/core/table_copy.wast:1562
+assert_return(() => invoke($17, `check_t1`, [14]), [value("i32", 5)]);
+
+// ./test/core/table_copy.wast:1563
+assert_return(() => invoke($17, `check_t1`, [15]), [value("i32", 7)]);
+
+// ./test/core/table_copy.wast:1564
+assert_trap(() => invoke($17, `check_t1`, [16]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1565
+assert_trap(() => invoke($17, `check_t1`, [17]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1566
+assert_trap(() => invoke($17, `check_t1`, [18]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1567
+assert_trap(() => invoke($17, `check_t1`, [19]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1568
+assert_trap(() => invoke($17, `check_t1`, [20]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1569
+assert_trap(() => invoke($17, `check_t1`, [21]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1570
+assert_trap(() => invoke($17, `check_t1`, [22]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1571
+assert_trap(() => invoke($17, `check_t1`, [23]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1572
+assert_trap(() => invoke($17, `check_t1`, [24]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1573
+assert_trap(() => invoke($17, `check_t1`, [25]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1574
+assert_trap(() => invoke($17, `check_t1`, [26]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1575
+assert_trap(() => invoke($17, `check_t1`, [27]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1576
+assert_trap(() => invoke($17, `check_t1`, [28]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1577
+assert_trap(() => invoke($17, `check_t1`, [29]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1579
+let $18 = 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))
+ (elem (table $$t0) (i32.const 3) func 1 3 1 4)
+ (elem (table $$t0) (i32.const 11) func 6 3 2 5 7)
+ (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.copy $$t0 $$t1 (i32.const 10) (i32.const 0) (i32.const 20)))
+ (func (export "check_t0") (param i32) (result i32)
+ (call_indirect $$t1 (type 0) (local.get 0)))
+ (func (export "check_t1") (param i32) (result i32)
+ (call_indirect $$t0 (type 0) (local.get 0)))
+)`);
+
+// ./test/core/table_copy.wast:1609
+invoke($18, `test`, []);
+
+// ./test/core/table_copy.wast:1610
+assert_trap(() => invoke($18, `check_t0`, [0]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1611
+assert_trap(() => invoke($18, `check_t0`, [1]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1612
+assert_return(() => invoke($18, `check_t0`, [2]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:1613
+assert_return(() => invoke($18, `check_t0`, [3]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:1614
+assert_return(() => invoke($18, `check_t0`, [4]), [value("i32", 4)]);
+
+// ./test/core/table_copy.wast:1615
+assert_return(() => invoke($18, `check_t0`, [5]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:1616
+assert_trap(() => invoke($18, `check_t0`, [6]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1617
+assert_trap(() => invoke($18, `check_t0`, [7]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1618
+assert_trap(() => invoke($18, `check_t0`, [8]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1619
+assert_trap(() => invoke($18, `check_t0`, [9]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1620
+assert_trap(() => invoke($18, `check_t0`, [10]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1621
+assert_trap(() => invoke($18, `check_t0`, [11]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1622
+assert_return(() => invoke($18, `check_t0`, [12]), [value("i32", 7)]);
+
+// ./test/core/table_copy.wast:1623
+assert_return(() => invoke($18, `check_t0`, [13]), [value("i32", 5)]);
+
+// ./test/core/table_copy.wast:1624
+assert_return(() => invoke($18, `check_t0`, [14]), [value("i32", 2)]);
+
+// ./test/core/table_copy.wast:1625
+assert_return(() => invoke($18, `check_t0`, [15]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:1626
+assert_return(() => invoke($18, `check_t0`, [16]), [value("i32", 6)]);
+
+// ./test/core/table_copy.wast:1627
+assert_trap(() => invoke($18, `check_t0`, [17]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1628
+assert_trap(() => invoke($18, `check_t0`, [18]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1629
+assert_trap(() => invoke($18, `check_t0`, [19]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1630
+assert_trap(() => invoke($18, `check_t0`, [20]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1631
+assert_trap(() => invoke($18, `check_t0`, [21]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1632
+assert_trap(() => invoke($18, `check_t0`, [22]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1633
+assert_trap(() => invoke($18, `check_t0`, [23]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1634
+assert_trap(() => invoke($18, `check_t0`, [24]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1635
+assert_trap(() => invoke($18, `check_t0`, [25]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1636
+assert_trap(() => invoke($18, `check_t0`, [26]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1637
+assert_trap(() => invoke($18, `check_t0`, [27]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1638
+assert_trap(() => invoke($18, `check_t0`, [28]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1639
+assert_trap(() => invoke($18, `check_t0`, [29]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1640
+assert_trap(() => invoke($18, `check_t1`, [0]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1641
+assert_trap(() => invoke($18, `check_t1`, [1]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1642
+assert_trap(() => invoke($18, `check_t1`, [2]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1643
+assert_return(() => invoke($18, `check_t1`, [3]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:1644
+assert_return(() => invoke($18, `check_t1`, [4]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:1645
+assert_return(() => invoke($18, `check_t1`, [5]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:1646
+assert_return(() => invoke($18, `check_t1`, [6]), [value("i32", 4)]);
+
+// ./test/core/table_copy.wast:1647
+assert_trap(() => invoke($18, `check_t1`, [7]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1648
+assert_trap(() => invoke($18, `check_t1`, [8]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1649
+assert_trap(() => invoke($18, `check_t1`, [9]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1650
+assert_trap(() => invoke($18, `check_t1`, [10]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1651
+assert_trap(() => invoke($18, `check_t1`, [11]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1652
+assert_return(() => invoke($18, `check_t1`, [12]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:1653
+assert_return(() => invoke($18, `check_t1`, [13]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:1654
+assert_return(() => invoke($18, `check_t1`, [14]), [value("i32", 4)]);
+
+// ./test/core/table_copy.wast:1655
+assert_return(() => invoke($18, `check_t1`, [15]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:1656
+assert_trap(() => invoke($18, `check_t1`, [16]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1657
+assert_trap(() => invoke($18, `check_t1`, [17]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1658
+assert_trap(() => invoke($18, `check_t1`, [18]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1659
+assert_trap(() => invoke($18, `check_t1`, [19]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1660
+assert_trap(() => invoke($18, `check_t1`, [20]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1661
+assert_trap(() => invoke($18, `check_t1`, [21]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1662
+assert_return(() => invoke($18, `check_t1`, [22]), [value("i32", 7)]);
+
+// ./test/core/table_copy.wast:1663
+assert_return(() => invoke($18, `check_t1`, [23]), [value("i32", 5)]);
+
+// ./test/core/table_copy.wast:1664
+assert_return(() => invoke($18, `check_t1`, [24]), [value("i32", 2)]);
+
+// ./test/core/table_copy.wast:1665
+assert_return(() => invoke($18, `check_t1`, [25]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:1666
+assert_return(() => invoke($18, `check_t1`, [26]), [value("i32", 6)]);
+
+// ./test/core/table_copy.wast:1667
+assert_trap(() => invoke($18, `check_t1`, [27]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1668
+assert_trap(() => invoke($18, `check_t1`, [28]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1669
+assert_trap(() => invoke($18, `check_t1`, [29]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:1671
+let $19 = instantiate(`(module
+ (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 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.copy $$t0 $$t0 (i32.const 28) (i32.const 1) (i32.const 3))
+ ))`);
+
+// ./test/core/table_copy.wast:1694
+assert_trap(() => invoke($19, `test`, []), `out of bounds table access`);
+
+// ./test/core/table_copy.wast:1696
+let $20 = instantiate(`(module
+ (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 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.copy $$t0 $$t0 (i32.const 0xFFFFFFFE) (i32.const 1) (i32.const 2))
+ ))`);
+
+// ./test/core/table_copy.wast:1719
+assert_trap(() => invoke($20, `test`, []), `out of bounds table access`);
+
+// ./test/core/table_copy.wast:1721
+let $21 = instantiate(`(module
+ (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 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.copy $$t0 $$t0 (i32.const 15) (i32.const 25) (i32.const 6))
+ ))`);
+
+// ./test/core/table_copy.wast:1744
+assert_trap(() => invoke($21, `test`, []), `out of bounds table access`);
+
+// ./test/core/table_copy.wast:1746
+let $22 = instantiate(`(module
+ (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 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.copy $$t0 $$t0 (i32.const 15) (i32.const 0xFFFFFFFE) (i32.const 2))
+ ))`);
+
+// ./test/core/table_copy.wast:1769
+assert_trap(() => invoke($22, `test`, []), `out of bounds table access`);
+
+// ./test/core/table_copy.wast:1771
+let $23 = instantiate(`(module
+ (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 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.copy $$t0 $$t0 (i32.const 15) (i32.const 25) (i32.const 0))
+ ))`);
+
+// ./test/core/table_copy.wast:1794
+invoke($23, `test`, []);
+
+// ./test/core/table_copy.wast:1796
+let $24 = instantiate(`(module
+ (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 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.copy $$t0 $$t0 (i32.const 30) (i32.const 15) (i32.const 0))
+ ))`);
+
+// ./test/core/table_copy.wast:1819
+invoke($24, `test`, []);
+
+// ./test/core/table_copy.wast:1821
+let $25 = instantiate(`(module
+ (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 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.copy $$t0 $$t0 (i32.const 31) (i32.const 15) (i32.const 0))
+ ))`);
+
+// ./test/core/table_copy.wast:1844
+assert_trap(() => invoke($25, `test`, []), `out of bounds table access`);
+
+// ./test/core/table_copy.wast:1846
+let $26 = instantiate(`(module
+ (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 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.copy $$t0 $$t0 (i32.const 15) (i32.const 30) (i32.const 0))
+ ))`);
+
+// ./test/core/table_copy.wast:1869
+invoke($26, `test`, []);
+
+// ./test/core/table_copy.wast:1871
+let $27 = instantiate(`(module
+ (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 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.copy $$t0 $$t0 (i32.const 15) (i32.const 31) (i32.const 0))
+ ))`);
+
+// ./test/core/table_copy.wast:1894
+assert_trap(() => invoke($27, `test`, []), `out of bounds table access`);
+
+// ./test/core/table_copy.wast:1896
+let $28 = instantiate(`(module
+ (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 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.copy $$t0 $$t0 (i32.const 30) (i32.const 30) (i32.const 0))
+ ))`);
+
+// ./test/core/table_copy.wast:1919
+invoke($28, `test`, []);
+
+// ./test/core/table_copy.wast:1921
+let $29 = instantiate(`(module
+ (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 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.copy $$t0 $$t0 (i32.const 31) (i32.const 31) (i32.const 0))
+ ))`);
+
+// ./test/core/table_copy.wast:1944
+assert_trap(() => invoke($29, `test`, []), `out of bounds table access`);
+
+// ./test/core/table_copy.wast:1946
+let $30 = instantiate(`(module
+ (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 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.copy $$t1 $$t0 (i32.const 28) (i32.const 1) (i32.const 3))
+ ))`);
+
+// ./test/core/table_copy.wast:1969
+assert_trap(() => invoke($30, `test`, []), `out of bounds table access`);
+
+// ./test/core/table_copy.wast:1971
+let $31 = instantiate(`(module
+ (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 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.copy $$t1 $$t0 (i32.const 0xFFFFFFFE) (i32.const 1) (i32.const 2))
+ ))`);
+
+// ./test/core/table_copy.wast:1994
+assert_trap(() => invoke($31, `test`, []), `out of bounds table access`);
+
+// ./test/core/table_copy.wast:1996
+let $32 = instantiate(`(module
+ (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 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.copy $$t1 $$t0 (i32.const 15) (i32.const 25) (i32.const 6))
+ ))`);
+
+// ./test/core/table_copy.wast:2019
+assert_trap(() => invoke($32, `test`, []), `out of bounds table access`);
+
+// ./test/core/table_copy.wast:2021
+let $33 = instantiate(`(module
+ (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 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.copy $$t1 $$t0 (i32.const 15) (i32.const 0xFFFFFFFE) (i32.const 2))
+ ))`);
+
+// ./test/core/table_copy.wast:2044
+assert_trap(() => invoke($33, `test`, []), `out of bounds table access`);
+
+// ./test/core/table_copy.wast:2046
+let $34 = instantiate(`(module
+ (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 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.copy $$t1 $$t0 (i32.const 15) (i32.const 25) (i32.const 0))
+ ))`);
+
+// ./test/core/table_copy.wast:2069
+invoke($34, `test`, []);
+
+// ./test/core/table_copy.wast:2071
+let $35 = instantiate(`(module
+ (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 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.copy $$t1 $$t0 (i32.const 30) (i32.const 15) (i32.const 0))
+ ))`);
+
+// ./test/core/table_copy.wast:2094
+invoke($35, `test`, []);
+
+// ./test/core/table_copy.wast:2096
+let $36 = instantiate(`(module
+ (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 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.copy $$t1 $$t0 (i32.const 31) (i32.const 15) (i32.const 0))
+ ))`);
+
+// ./test/core/table_copy.wast:2119
+assert_trap(() => invoke($36, `test`, []), `out of bounds table access`);
+
+// ./test/core/table_copy.wast:2121
+let $37 = instantiate(`(module
+ (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 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.copy $$t1 $$t0 (i32.const 15) (i32.const 30) (i32.const 0))
+ ))`);
+
+// ./test/core/table_copy.wast:2144
+invoke($37, `test`, []);
+
+// ./test/core/table_copy.wast:2146
+let $38 = instantiate(`(module
+ (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 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.copy $$t1 $$t0 (i32.const 15) (i32.const 31) (i32.const 0))
+ ))`);
+
+// ./test/core/table_copy.wast:2169
+assert_trap(() => invoke($38, `test`, []), `out of bounds table access`);
+
+// ./test/core/table_copy.wast:2171
+let $39 = instantiate(`(module
+ (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 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.copy $$t1 $$t0 (i32.const 30) (i32.const 30) (i32.const 0))
+ ))`);
+
+// ./test/core/table_copy.wast:2194
+invoke($39, `test`, []);
+
+// ./test/core/table_copy.wast:2196
+let $40 = instantiate(`(module
+ (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 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.copy $$t1 $$t0 (i32.const 31) (i32.const 31) (i32.const 0))
+ ))`);
+
+// ./test/core/table_copy.wast:2219
+assert_trap(() => invoke($40, `test`, []), `out of bounds table access`);
+
+// ./test/core/table_copy.wast:2221
+let $41 = instantiate(`(module
+ (type (func (result i32)))
+ (table 32 64 funcref)
+ (elem (i32.const 0)
+ $$f0 $$f1 $$f2 $$f3 $$f4 $$f5 $$f6 $$f7)
+ (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 $$targetOffs i32) (param $$srcOffs i32) (param $$len i32)
+ (table.copy (local.get $$targetOffs) (local.get $$srcOffs) (local.get $$len))))`);
+
+// ./test/core/table_copy.wast:2247
+assert_trap(() => invoke($41, `run`, [24, 0, 16]), `out of bounds table access`);
+
+// ./test/core/table_copy.wast:2249
+assert_return(() => invoke($41, `test`, [0]), [value("i32", 0)]);
+
+// ./test/core/table_copy.wast:2250
+assert_return(() => invoke($41, `test`, [1]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:2251
+assert_return(() => invoke($41, `test`, [2]), [value("i32", 2)]);
+
+// ./test/core/table_copy.wast:2252
+assert_return(() => invoke($41, `test`, [3]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:2253
+assert_return(() => invoke($41, `test`, [4]), [value("i32", 4)]);
+
+// ./test/core/table_copy.wast:2254
+assert_return(() => invoke($41, `test`, [5]), [value("i32", 5)]);
+
+// ./test/core/table_copy.wast:2255
+assert_return(() => invoke($41, `test`, [6]), [value("i32", 6)]);
+
+// ./test/core/table_copy.wast:2256
+assert_return(() => invoke($41, `test`, [7]), [value("i32", 7)]);
+
+// ./test/core/table_copy.wast:2257
+assert_trap(() => invoke($41, `test`, [8]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2258
+assert_trap(() => invoke($41, `test`, [9]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2259
+assert_trap(() => invoke($41, `test`, [10]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2260
+assert_trap(() => invoke($41, `test`, [11]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2261
+assert_trap(() => invoke($41, `test`, [12]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2262
+assert_trap(() => invoke($41, `test`, [13]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2263
+assert_trap(() => invoke($41, `test`, [14]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2264
+assert_trap(() => invoke($41, `test`, [15]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2265
+assert_trap(() => invoke($41, `test`, [16]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2266
+assert_trap(() => invoke($41, `test`, [17]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2267
+assert_trap(() => invoke($41, `test`, [18]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2268
+assert_trap(() => invoke($41, `test`, [19]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2269
+assert_trap(() => invoke($41, `test`, [20]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2270
+assert_trap(() => invoke($41, `test`, [21]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2271
+assert_trap(() => invoke($41, `test`, [22]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2272
+assert_trap(() => invoke($41, `test`, [23]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2273
+assert_trap(() => invoke($41, `test`, [24]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2274
+assert_trap(() => invoke($41, `test`, [25]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2275
+assert_trap(() => invoke($41, `test`, [26]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2276
+assert_trap(() => invoke($41, `test`, [27]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2277
+assert_trap(() => invoke($41, `test`, [28]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2278
+assert_trap(() => invoke($41, `test`, [29]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2279
+assert_trap(() => invoke($41, `test`, [30]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2280
+assert_trap(() => invoke($41, `test`, [31]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2282
+let $42 = instantiate(`(module
+ (type (func (result i32)))
+ (table 32 64 funcref)
+ (elem (i32.const 0)
+ $$f0 $$f1 $$f2 $$f3 $$f4 $$f5 $$f6 $$f7 $$f8)
+ (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 $$targetOffs i32) (param $$srcOffs i32) (param $$len i32)
+ (table.copy (local.get $$targetOffs) (local.get $$srcOffs) (local.get $$len))))`);
+
+// ./test/core/table_copy.wast:2308
+assert_trap(() => invoke($42, `run`, [23, 0, 15]), `out of bounds table access`);
+
+// ./test/core/table_copy.wast:2310
+assert_return(() => invoke($42, `test`, [0]), [value("i32", 0)]);
+
+// ./test/core/table_copy.wast:2311
+assert_return(() => invoke($42, `test`, [1]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:2312
+assert_return(() => invoke($42, `test`, [2]), [value("i32", 2)]);
+
+// ./test/core/table_copy.wast:2313
+assert_return(() => invoke($42, `test`, [3]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:2314
+assert_return(() => invoke($42, `test`, [4]), [value("i32", 4)]);
+
+// ./test/core/table_copy.wast:2315
+assert_return(() => invoke($42, `test`, [5]), [value("i32", 5)]);
+
+// ./test/core/table_copy.wast:2316
+assert_return(() => invoke($42, `test`, [6]), [value("i32", 6)]);
+
+// ./test/core/table_copy.wast:2317
+assert_return(() => invoke($42, `test`, [7]), [value("i32", 7)]);
+
+// ./test/core/table_copy.wast:2318
+assert_return(() => invoke($42, `test`, [8]), [value("i32", 8)]);
+
+// ./test/core/table_copy.wast:2319
+assert_trap(() => invoke($42, `test`, [9]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2320
+assert_trap(() => invoke($42, `test`, [10]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2321
+assert_trap(() => invoke($42, `test`, [11]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2322
+assert_trap(() => invoke($42, `test`, [12]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2323
+assert_trap(() => invoke($42, `test`, [13]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2324
+assert_trap(() => invoke($42, `test`, [14]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2325
+assert_trap(() => invoke($42, `test`, [15]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2326
+assert_trap(() => invoke($42, `test`, [16]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2327
+assert_trap(() => invoke($42, `test`, [17]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2328
+assert_trap(() => invoke($42, `test`, [18]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2329
+assert_trap(() => invoke($42, `test`, [19]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2330
+assert_trap(() => invoke($42, `test`, [20]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2331
+assert_trap(() => invoke($42, `test`, [21]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2332
+assert_trap(() => invoke($42, `test`, [22]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2333
+assert_trap(() => invoke($42, `test`, [23]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2334
+assert_trap(() => invoke($42, `test`, [24]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2335
+assert_trap(() => invoke($42, `test`, [25]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2336
+assert_trap(() => invoke($42, `test`, [26]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2337
+assert_trap(() => invoke($42, `test`, [27]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2338
+assert_trap(() => invoke($42, `test`, [28]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2339
+assert_trap(() => invoke($42, `test`, [29]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2340
+assert_trap(() => invoke($42, `test`, [30]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2341
+assert_trap(() => invoke($42, `test`, [31]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2343
+let $43 = instantiate(`(module
+ (type (func (result i32)))
+ (table 32 64 funcref)
+ (elem (i32.const 24)
+ $$f0 $$f1 $$f2 $$f3 $$f4 $$f5 $$f6 $$f7)
+ (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 $$targetOffs i32) (param $$srcOffs i32) (param $$len i32)
+ (table.copy (local.get $$targetOffs) (local.get $$srcOffs) (local.get $$len))))`);
+
+// ./test/core/table_copy.wast:2369
+assert_trap(() => invoke($43, `run`, [0, 24, 16]), `out of bounds table access`);
+
+// ./test/core/table_copy.wast:2371
+assert_trap(() => invoke($43, `test`, [0]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2372
+assert_trap(() => invoke($43, `test`, [1]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2373
+assert_trap(() => invoke($43, `test`, [2]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2374
+assert_trap(() => invoke($43, `test`, [3]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2375
+assert_trap(() => invoke($43, `test`, [4]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2376
+assert_trap(() => invoke($43, `test`, [5]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2377
+assert_trap(() => invoke($43, `test`, [6]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2378
+assert_trap(() => invoke($43, `test`, [7]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2379
+assert_trap(() => invoke($43, `test`, [8]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2380
+assert_trap(() => invoke($43, `test`, [9]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2381
+assert_trap(() => invoke($43, `test`, [10]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2382
+assert_trap(() => invoke($43, `test`, [11]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2383
+assert_trap(() => invoke($43, `test`, [12]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2384
+assert_trap(() => invoke($43, `test`, [13]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2385
+assert_trap(() => invoke($43, `test`, [14]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2386
+assert_trap(() => invoke($43, `test`, [15]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2387
+assert_trap(() => invoke($43, `test`, [16]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2388
+assert_trap(() => invoke($43, `test`, [17]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2389
+assert_trap(() => invoke($43, `test`, [18]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2390
+assert_trap(() => invoke($43, `test`, [19]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2391
+assert_trap(() => invoke($43, `test`, [20]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2392
+assert_trap(() => invoke($43, `test`, [21]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2393
+assert_trap(() => invoke($43, `test`, [22]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2394
+assert_trap(() => invoke($43, `test`, [23]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2395
+assert_return(() => invoke($43, `test`, [24]), [value("i32", 0)]);
+
+// ./test/core/table_copy.wast:2396
+assert_return(() => invoke($43, `test`, [25]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:2397
+assert_return(() => invoke($43, `test`, [26]), [value("i32", 2)]);
+
+// ./test/core/table_copy.wast:2398
+assert_return(() => invoke($43, `test`, [27]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:2399
+assert_return(() => invoke($43, `test`, [28]), [value("i32", 4)]);
+
+// ./test/core/table_copy.wast:2400
+assert_return(() => invoke($43, `test`, [29]), [value("i32", 5)]);
+
+// ./test/core/table_copy.wast:2401
+assert_return(() => invoke($43, `test`, [30]), [value("i32", 6)]);
+
+// ./test/core/table_copy.wast:2402
+assert_return(() => invoke($43, `test`, [31]), [value("i32", 7)]);
+
+// ./test/core/table_copy.wast:2404
+let $44 = instantiate(`(module
+ (type (func (result i32)))
+ (table 32 64 funcref)
+ (elem (i32.const 23)
+ $$f0 $$f1 $$f2 $$f3 $$f4 $$f5 $$f6 $$f7 $$f8)
+ (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 $$targetOffs i32) (param $$srcOffs i32) (param $$len i32)
+ (table.copy (local.get $$targetOffs) (local.get $$srcOffs) (local.get $$len))))`);
+
+// ./test/core/table_copy.wast:2430
+assert_trap(() => invoke($44, `run`, [0, 23, 15]), `out of bounds table access`);
+
+// ./test/core/table_copy.wast:2432
+assert_trap(() => invoke($44, `test`, [0]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2433
+assert_trap(() => invoke($44, `test`, [1]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2434
+assert_trap(() => invoke($44, `test`, [2]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2435
+assert_trap(() => invoke($44, `test`, [3]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2436
+assert_trap(() => invoke($44, `test`, [4]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2437
+assert_trap(() => invoke($44, `test`, [5]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2438
+assert_trap(() => invoke($44, `test`, [6]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2439
+assert_trap(() => invoke($44, `test`, [7]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2440
+assert_trap(() => invoke($44, `test`, [8]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2441
+assert_trap(() => invoke($44, `test`, [9]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2442
+assert_trap(() => invoke($44, `test`, [10]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2443
+assert_trap(() => invoke($44, `test`, [11]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2444
+assert_trap(() => invoke($44, `test`, [12]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2445
+assert_trap(() => invoke($44, `test`, [13]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2446
+assert_trap(() => invoke($44, `test`, [14]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2447
+assert_trap(() => invoke($44, `test`, [15]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2448
+assert_trap(() => invoke($44, `test`, [16]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2449
+assert_trap(() => invoke($44, `test`, [17]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2450
+assert_trap(() => invoke($44, `test`, [18]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2451
+assert_trap(() => invoke($44, `test`, [19]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2452
+assert_trap(() => invoke($44, `test`, [20]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2453
+assert_trap(() => invoke($44, `test`, [21]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2454
+assert_trap(() => invoke($44, `test`, [22]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2455
+assert_return(() => invoke($44, `test`, [23]), [value("i32", 0)]);
+
+// ./test/core/table_copy.wast:2456
+assert_return(() => invoke($44, `test`, [24]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:2457
+assert_return(() => invoke($44, `test`, [25]), [value("i32", 2)]);
+
+// ./test/core/table_copy.wast:2458
+assert_return(() => invoke($44, `test`, [26]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:2459
+assert_return(() => invoke($44, `test`, [27]), [value("i32", 4)]);
+
+// ./test/core/table_copy.wast:2460
+assert_return(() => invoke($44, `test`, [28]), [value("i32", 5)]);
+
+// ./test/core/table_copy.wast:2461
+assert_return(() => invoke($44, `test`, [29]), [value("i32", 6)]);
+
+// ./test/core/table_copy.wast:2462
+assert_return(() => invoke($44, `test`, [30]), [value("i32", 7)]);
+
+// ./test/core/table_copy.wast:2463
+assert_return(() => invoke($44, `test`, [31]), [value("i32", 8)]);
+
+// ./test/core/table_copy.wast:2465
+let $45 = instantiate(`(module
+ (type (func (result i32)))
+ (table 32 64 funcref)
+ (elem (i32.const 11)
+ $$f0 $$f1 $$f2 $$f3 $$f4 $$f5 $$f6 $$f7)
+ (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 $$targetOffs i32) (param $$srcOffs i32) (param $$len i32)
+ (table.copy (local.get $$targetOffs) (local.get $$srcOffs) (local.get $$len))))`);
+
+// ./test/core/table_copy.wast:2491
+assert_trap(() => invoke($45, `run`, [24, 11, 16]), `out of bounds table access`);
+
+// ./test/core/table_copy.wast:2493
+assert_trap(() => invoke($45, `test`, [0]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2494
+assert_trap(() => invoke($45, `test`, [1]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2495
+assert_trap(() => invoke($45, `test`, [2]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2496
+assert_trap(() => invoke($45, `test`, [3]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2497
+assert_trap(() => invoke($45, `test`, [4]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2498
+assert_trap(() => invoke($45, `test`, [5]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2499
+assert_trap(() => invoke($45, `test`, [6]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2500
+assert_trap(() => invoke($45, `test`, [7]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2501
+assert_trap(() => invoke($45, `test`, [8]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2502
+assert_trap(() => invoke($45, `test`, [9]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2503
+assert_trap(() => invoke($45, `test`, [10]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2504
+assert_return(() => invoke($45, `test`, [11]), [value("i32", 0)]);
+
+// ./test/core/table_copy.wast:2505
+assert_return(() => invoke($45, `test`, [12]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:2506
+assert_return(() => invoke($45, `test`, [13]), [value("i32", 2)]);
+
+// ./test/core/table_copy.wast:2507
+assert_return(() => invoke($45, `test`, [14]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:2508
+assert_return(() => invoke($45, `test`, [15]), [value("i32", 4)]);
+
+// ./test/core/table_copy.wast:2509
+assert_return(() => invoke($45, `test`, [16]), [value("i32", 5)]);
+
+// ./test/core/table_copy.wast:2510
+assert_return(() => invoke($45, `test`, [17]), [value("i32", 6)]);
+
+// ./test/core/table_copy.wast:2511
+assert_return(() => invoke($45, `test`, [18]), [value("i32", 7)]);
+
+// ./test/core/table_copy.wast:2512
+assert_trap(() => invoke($45, `test`, [19]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2513
+assert_trap(() => invoke($45, `test`, [20]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2514
+assert_trap(() => invoke($45, `test`, [21]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2515
+assert_trap(() => invoke($45, `test`, [22]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2516
+assert_trap(() => invoke($45, `test`, [23]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2517
+assert_trap(() => invoke($45, `test`, [24]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2518
+assert_trap(() => invoke($45, `test`, [25]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2519
+assert_trap(() => invoke($45, `test`, [26]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2520
+assert_trap(() => invoke($45, `test`, [27]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2521
+assert_trap(() => invoke($45, `test`, [28]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2522
+assert_trap(() => invoke($45, `test`, [29]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2523
+assert_trap(() => invoke($45, `test`, [30]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2524
+assert_trap(() => invoke($45, `test`, [31]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2526
+let $46 = instantiate(`(module
+ (type (func (result i32)))
+ (table 32 64 funcref)
+ (elem (i32.const 24)
+ $$f0 $$f1 $$f2 $$f3 $$f4 $$f5 $$f6 $$f7)
+ (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 $$targetOffs i32) (param $$srcOffs i32) (param $$len i32)
+ (table.copy (local.get $$targetOffs) (local.get $$srcOffs) (local.get $$len))))`);
+
+// ./test/core/table_copy.wast:2552
+assert_trap(() => invoke($46, `run`, [11, 24, 16]), `out of bounds table access`);
+
+// ./test/core/table_copy.wast:2554
+assert_trap(() => invoke($46, `test`, [0]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2555
+assert_trap(() => invoke($46, `test`, [1]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2556
+assert_trap(() => invoke($46, `test`, [2]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2557
+assert_trap(() => invoke($46, `test`, [3]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2558
+assert_trap(() => invoke($46, `test`, [4]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2559
+assert_trap(() => invoke($46, `test`, [5]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2560
+assert_trap(() => invoke($46, `test`, [6]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2561
+assert_trap(() => invoke($46, `test`, [7]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2562
+assert_trap(() => invoke($46, `test`, [8]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2563
+assert_trap(() => invoke($46, `test`, [9]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2564
+assert_trap(() => invoke($46, `test`, [10]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2565
+assert_trap(() => invoke($46, `test`, [11]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2566
+assert_trap(() => invoke($46, `test`, [12]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2567
+assert_trap(() => invoke($46, `test`, [13]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2568
+assert_trap(() => invoke($46, `test`, [14]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2569
+assert_trap(() => invoke($46, `test`, [15]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2570
+assert_trap(() => invoke($46, `test`, [16]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2571
+assert_trap(() => invoke($46, `test`, [17]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2572
+assert_trap(() => invoke($46, `test`, [18]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2573
+assert_trap(() => invoke($46, `test`, [19]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2574
+assert_trap(() => invoke($46, `test`, [20]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2575
+assert_trap(() => invoke($46, `test`, [21]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2576
+assert_trap(() => invoke($46, `test`, [22]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2577
+assert_trap(() => invoke($46, `test`, [23]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2578
+assert_return(() => invoke($46, `test`, [24]), [value("i32", 0)]);
+
+// ./test/core/table_copy.wast:2579
+assert_return(() => invoke($46, `test`, [25]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:2580
+assert_return(() => invoke($46, `test`, [26]), [value("i32", 2)]);
+
+// ./test/core/table_copy.wast:2581
+assert_return(() => invoke($46, `test`, [27]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:2582
+assert_return(() => invoke($46, `test`, [28]), [value("i32", 4)]);
+
+// ./test/core/table_copy.wast:2583
+assert_return(() => invoke($46, `test`, [29]), [value("i32", 5)]);
+
+// ./test/core/table_copy.wast:2584
+assert_return(() => invoke($46, `test`, [30]), [value("i32", 6)]);
+
+// ./test/core/table_copy.wast:2585
+assert_return(() => invoke($46, `test`, [31]), [value("i32", 7)]);
+
+// ./test/core/table_copy.wast:2587
+let $47 = instantiate(`(module
+ (type (func (result i32)))
+ (table 32 64 funcref)
+ (elem (i32.const 21)
+ $$f0 $$f1 $$f2 $$f3 $$f4 $$f5 $$f6 $$f7)
+ (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 $$targetOffs i32) (param $$srcOffs i32) (param $$len i32)
+ (table.copy (local.get $$targetOffs) (local.get $$srcOffs) (local.get $$len))))`);
+
+// ./test/core/table_copy.wast:2613
+assert_trap(() => invoke($47, `run`, [24, 21, 16]), `out of bounds table access`);
+
+// ./test/core/table_copy.wast:2615
+assert_trap(() => invoke($47, `test`, [0]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2616
+assert_trap(() => invoke($47, `test`, [1]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2617
+assert_trap(() => invoke($47, `test`, [2]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2618
+assert_trap(() => invoke($47, `test`, [3]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2619
+assert_trap(() => invoke($47, `test`, [4]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2620
+assert_trap(() => invoke($47, `test`, [5]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2621
+assert_trap(() => invoke($47, `test`, [6]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2622
+assert_trap(() => invoke($47, `test`, [7]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2623
+assert_trap(() => invoke($47, `test`, [8]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2624
+assert_trap(() => invoke($47, `test`, [9]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2625
+assert_trap(() => invoke($47, `test`, [10]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2626
+assert_trap(() => invoke($47, `test`, [11]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2627
+assert_trap(() => invoke($47, `test`, [12]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2628
+assert_trap(() => invoke($47, `test`, [13]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2629
+assert_trap(() => invoke($47, `test`, [14]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2630
+assert_trap(() => invoke($47, `test`, [15]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2631
+assert_trap(() => invoke($47, `test`, [16]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2632
+assert_trap(() => invoke($47, `test`, [17]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2633
+assert_trap(() => invoke($47, `test`, [18]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2634
+assert_trap(() => invoke($47, `test`, [19]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2635
+assert_trap(() => invoke($47, `test`, [20]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2636
+assert_return(() => invoke($47, `test`, [21]), [value("i32", 0)]);
+
+// ./test/core/table_copy.wast:2637
+assert_return(() => invoke($47, `test`, [22]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:2638
+assert_return(() => invoke($47, `test`, [23]), [value("i32", 2)]);
+
+// ./test/core/table_copy.wast:2639
+assert_return(() => invoke($47, `test`, [24]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:2640
+assert_return(() => invoke($47, `test`, [25]), [value("i32", 4)]);
+
+// ./test/core/table_copy.wast:2641
+assert_return(() => invoke($47, `test`, [26]), [value("i32", 5)]);
+
+// ./test/core/table_copy.wast:2642
+assert_return(() => invoke($47, `test`, [27]), [value("i32", 6)]);
+
+// ./test/core/table_copy.wast:2643
+assert_return(() => invoke($47, `test`, [28]), [value("i32", 7)]);
+
+// ./test/core/table_copy.wast:2644
+assert_trap(() => invoke($47, `test`, [29]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2645
+assert_trap(() => invoke($47, `test`, [30]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2646
+assert_trap(() => invoke($47, `test`, [31]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2648
+let $48 = instantiate(`(module
+ (type (func (result i32)))
+ (table 32 64 funcref)
+ (elem (i32.const 24)
+ $$f0 $$f1 $$f2 $$f3 $$f4 $$f5 $$f6 $$f7)
+ (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 $$targetOffs i32) (param $$srcOffs i32) (param $$len i32)
+ (table.copy (local.get $$targetOffs) (local.get $$srcOffs) (local.get $$len))))`);
+
+// ./test/core/table_copy.wast:2674
+assert_trap(() => invoke($48, `run`, [21, 24, 16]), `out of bounds table access`);
+
+// ./test/core/table_copy.wast:2676
+assert_trap(() => invoke($48, `test`, [0]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2677
+assert_trap(() => invoke($48, `test`, [1]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2678
+assert_trap(() => invoke($48, `test`, [2]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2679
+assert_trap(() => invoke($48, `test`, [3]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2680
+assert_trap(() => invoke($48, `test`, [4]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2681
+assert_trap(() => invoke($48, `test`, [5]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2682
+assert_trap(() => invoke($48, `test`, [6]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2683
+assert_trap(() => invoke($48, `test`, [7]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2684
+assert_trap(() => invoke($48, `test`, [8]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2685
+assert_trap(() => invoke($48, `test`, [9]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2686
+assert_trap(() => invoke($48, `test`, [10]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2687
+assert_trap(() => invoke($48, `test`, [11]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2688
+assert_trap(() => invoke($48, `test`, [12]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2689
+assert_trap(() => invoke($48, `test`, [13]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2690
+assert_trap(() => invoke($48, `test`, [14]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2691
+assert_trap(() => invoke($48, `test`, [15]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2692
+assert_trap(() => invoke($48, `test`, [16]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2693
+assert_trap(() => invoke($48, `test`, [17]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2694
+assert_trap(() => invoke($48, `test`, [18]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2695
+assert_trap(() => invoke($48, `test`, [19]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2696
+assert_trap(() => invoke($48, `test`, [20]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2697
+assert_trap(() => invoke($48, `test`, [21]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2698
+assert_trap(() => invoke($48, `test`, [22]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2699
+assert_trap(() => invoke($48, `test`, [23]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2700
+assert_return(() => invoke($48, `test`, [24]), [value("i32", 0)]);
+
+// ./test/core/table_copy.wast:2701
+assert_return(() => invoke($48, `test`, [25]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:2702
+assert_return(() => invoke($48, `test`, [26]), [value("i32", 2)]);
+
+// ./test/core/table_copy.wast:2703
+assert_return(() => invoke($48, `test`, [27]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:2704
+assert_return(() => invoke($48, `test`, [28]), [value("i32", 4)]);
+
+// ./test/core/table_copy.wast:2705
+assert_return(() => invoke($48, `test`, [29]), [value("i32", 5)]);
+
+// ./test/core/table_copy.wast:2706
+assert_return(() => invoke($48, `test`, [30]), [value("i32", 6)]);
+
+// ./test/core/table_copy.wast:2707
+assert_return(() => invoke($48, `test`, [31]), [value("i32", 7)]);
+
+// ./test/core/table_copy.wast:2709
+let $49 = instantiate(`(module
+ (type (func (result i32)))
+ (table 32 64 funcref)
+ (elem (i32.const 21)
+ $$f0 $$f1 $$f2 $$f3 $$f4 $$f5 $$f6 $$f7 $$f8 $$f9 $$f10)
+ (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 $$targetOffs i32) (param $$srcOffs i32) (param $$len i32)
+ (table.copy (local.get $$targetOffs) (local.get $$srcOffs) (local.get $$len))))`);
+
+// ./test/core/table_copy.wast:2735
+assert_trap(() => invoke($49, `run`, [21, 21, 16]), `out of bounds table access`);
+
+// ./test/core/table_copy.wast:2737
+assert_trap(() => invoke($49, `test`, [0]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2738
+assert_trap(() => invoke($49, `test`, [1]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2739
+assert_trap(() => invoke($49, `test`, [2]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2740
+assert_trap(() => invoke($49, `test`, [3]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2741
+assert_trap(() => invoke($49, `test`, [4]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2742
+assert_trap(() => invoke($49, `test`, [5]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2743
+assert_trap(() => invoke($49, `test`, [6]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2744
+assert_trap(() => invoke($49, `test`, [7]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2745
+assert_trap(() => invoke($49, `test`, [8]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2746
+assert_trap(() => invoke($49, `test`, [9]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2747
+assert_trap(() => invoke($49, `test`, [10]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2748
+assert_trap(() => invoke($49, `test`, [11]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2749
+assert_trap(() => invoke($49, `test`, [12]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2750
+assert_trap(() => invoke($49, `test`, [13]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2751
+assert_trap(() => invoke($49, `test`, [14]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2752
+assert_trap(() => invoke($49, `test`, [15]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2753
+assert_trap(() => invoke($49, `test`, [16]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2754
+assert_trap(() => invoke($49, `test`, [17]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2755
+assert_trap(() => invoke($49, `test`, [18]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2756
+assert_trap(() => invoke($49, `test`, [19]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2757
+assert_trap(() => invoke($49, `test`, [20]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2758
+assert_return(() => invoke($49, `test`, [21]), [value("i32", 0)]);
+
+// ./test/core/table_copy.wast:2759
+assert_return(() => invoke($49, `test`, [22]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:2760
+assert_return(() => invoke($49, `test`, [23]), [value("i32", 2)]);
+
+// ./test/core/table_copy.wast:2761
+assert_return(() => invoke($49, `test`, [24]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:2762
+assert_return(() => invoke($49, `test`, [25]), [value("i32", 4)]);
+
+// ./test/core/table_copy.wast:2763
+assert_return(() => invoke($49, `test`, [26]), [value("i32", 5)]);
+
+// ./test/core/table_copy.wast:2764
+assert_return(() => invoke($49, `test`, [27]), [value("i32", 6)]);
+
+// ./test/core/table_copy.wast:2765
+assert_return(() => invoke($49, `test`, [28]), [value("i32", 7)]);
+
+// ./test/core/table_copy.wast:2766
+assert_return(() => invoke($49, `test`, [29]), [value("i32", 8)]);
+
+// ./test/core/table_copy.wast:2767
+assert_return(() => invoke($49, `test`, [30]), [value("i32", 9)]);
+
+// ./test/core/table_copy.wast:2768
+assert_return(() => invoke($49, `test`, [31]), [value("i32", 10)]);
+
+// ./test/core/table_copy.wast:2770
+let $50 = instantiate(`(module
+ (type (func (result i32)))
+ (table 128 128 funcref)
+ (elem (i32.const 112)
+ $$f0 $$f1 $$f2 $$f3 $$f4 $$f5 $$f6 $$f7 $$f8 $$f9 $$f10 $$f11 $$f12 $$f13 $$f14 $$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 $$targetOffs i32) (param $$srcOffs i32) (param $$len i32)
+ (table.copy (local.get $$targetOffs) (local.get $$srcOffs) (local.get $$len))))`);
+
+// ./test/core/table_copy.wast:2796
+assert_trap(() => invoke($50, `run`, [0, 112, -32]), `out of bounds table access`);
+
+// ./test/core/table_copy.wast:2798
+assert_trap(() => invoke($50, `test`, [0]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2799
+assert_trap(() => invoke($50, `test`, [1]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2800
+assert_trap(() => invoke($50, `test`, [2]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2801
+assert_trap(() => invoke($50, `test`, [3]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2802
+assert_trap(() => invoke($50, `test`, [4]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2803
+assert_trap(() => invoke($50, `test`, [5]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2804
+assert_trap(() => invoke($50, `test`, [6]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2805
+assert_trap(() => invoke($50, `test`, [7]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2806
+assert_trap(() => invoke($50, `test`, [8]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2807
+assert_trap(() => invoke($50, `test`, [9]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2808
+assert_trap(() => invoke($50, `test`, [10]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2809
+assert_trap(() => invoke($50, `test`, [11]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2810
+assert_trap(() => invoke($50, `test`, [12]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2811
+assert_trap(() => invoke($50, `test`, [13]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2812
+assert_trap(() => invoke($50, `test`, [14]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2813
+assert_trap(() => invoke($50, `test`, [15]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2814
+assert_trap(() => invoke($50, `test`, [16]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2815
+assert_trap(() => invoke($50, `test`, [17]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2816
+assert_trap(() => invoke($50, `test`, [18]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2817
+assert_trap(() => invoke($50, `test`, [19]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2818
+assert_trap(() => invoke($50, `test`, [20]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2819
+assert_trap(() => invoke($50, `test`, [21]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2820
+assert_trap(() => invoke($50, `test`, [22]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2821
+assert_trap(() => invoke($50, `test`, [23]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2822
+assert_trap(() => invoke($50, `test`, [24]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2823
+assert_trap(() => invoke($50, `test`, [25]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2824
+assert_trap(() => invoke($50, `test`, [26]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2825
+assert_trap(() => invoke($50, `test`, [27]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2826
+assert_trap(() => invoke($50, `test`, [28]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2827
+assert_trap(() => invoke($50, `test`, [29]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2828
+assert_trap(() => invoke($50, `test`, [30]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2829
+assert_trap(() => invoke($50, `test`, [31]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2830
+assert_trap(() => invoke($50, `test`, [32]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2831
+assert_trap(() => invoke($50, `test`, [33]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2832
+assert_trap(() => invoke($50, `test`, [34]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2833
+assert_trap(() => invoke($50, `test`, [35]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2834
+assert_trap(() => invoke($50, `test`, [36]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2835
+assert_trap(() => invoke($50, `test`, [37]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2836
+assert_trap(() => invoke($50, `test`, [38]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2837
+assert_trap(() => invoke($50, `test`, [39]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2838
+assert_trap(() => invoke($50, `test`, [40]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2839
+assert_trap(() => invoke($50, `test`, [41]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2840
+assert_trap(() => invoke($50, `test`, [42]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2841
+assert_trap(() => invoke($50, `test`, [43]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2842
+assert_trap(() => invoke($50, `test`, [44]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2843
+assert_trap(() => invoke($50, `test`, [45]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2844
+assert_trap(() => invoke($50, `test`, [46]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2845
+assert_trap(() => invoke($50, `test`, [47]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2846
+assert_trap(() => invoke($50, `test`, [48]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2847
+assert_trap(() => invoke($50, `test`, [49]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2848
+assert_trap(() => invoke($50, `test`, [50]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2849
+assert_trap(() => invoke($50, `test`, [51]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2850
+assert_trap(() => invoke($50, `test`, [52]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2851
+assert_trap(() => invoke($50, `test`, [53]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2852
+assert_trap(() => invoke($50, `test`, [54]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2853
+assert_trap(() => invoke($50, `test`, [55]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2854
+assert_trap(() => invoke($50, `test`, [56]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2855
+assert_trap(() => invoke($50, `test`, [57]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2856
+assert_trap(() => invoke($50, `test`, [58]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2857
+assert_trap(() => invoke($50, `test`, [59]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2858
+assert_trap(() => invoke($50, `test`, [60]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2859
+assert_trap(() => invoke($50, `test`, [61]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2860
+assert_trap(() => invoke($50, `test`, [62]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2861
+assert_trap(() => invoke($50, `test`, [63]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2862
+assert_trap(() => invoke($50, `test`, [64]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2863
+assert_trap(() => invoke($50, `test`, [65]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2864
+assert_trap(() => invoke($50, `test`, [66]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2865
+assert_trap(() => invoke($50, `test`, [67]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2866
+assert_trap(() => invoke($50, `test`, [68]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2867
+assert_trap(() => invoke($50, `test`, [69]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2868
+assert_trap(() => invoke($50, `test`, [70]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2869
+assert_trap(() => invoke($50, `test`, [71]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2870
+assert_trap(() => invoke($50, `test`, [72]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2871
+assert_trap(() => invoke($50, `test`, [73]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2872
+assert_trap(() => invoke($50, `test`, [74]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2873
+assert_trap(() => invoke($50, `test`, [75]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2874
+assert_trap(() => invoke($50, `test`, [76]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2875
+assert_trap(() => invoke($50, `test`, [77]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2876
+assert_trap(() => invoke($50, `test`, [78]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2877
+assert_trap(() => invoke($50, `test`, [79]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2878
+assert_trap(() => invoke($50, `test`, [80]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2879
+assert_trap(() => invoke($50, `test`, [81]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2880
+assert_trap(() => invoke($50, `test`, [82]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2881
+assert_trap(() => invoke($50, `test`, [83]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2882
+assert_trap(() => invoke($50, `test`, [84]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2883
+assert_trap(() => invoke($50, `test`, [85]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2884
+assert_trap(() => invoke($50, `test`, [86]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2885
+assert_trap(() => invoke($50, `test`, [87]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2886
+assert_trap(() => invoke($50, `test`, [88]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2887
+assert_trap(() => invoke($50, `test`, [89]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2888
+assert_trap(() => invoke($50, `test`, [90]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2889
+assert_trap(() => invoke($50, `test`, [91]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2890
+assert_trap(() => invoke($50, `test`, [92]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2891
+assert_trap(() => invoke($50, `test`, [93]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2892
+assert_trap(() => invoke($50, `test`, [94]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2893
+assert_trap(() => invoke($50, `test`, [95]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2894
+assert_trap(() => invoke($50, `test`, [96]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2895
+assert_trap(() => invoke($50, `test`, [97]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2896
+assert_trap(() => invoke($50, `test`, [98]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2897
+assert_trap(() => invoke($50, `test`, [99]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2898
+assert_trap(() => invoke($50, `test`, [100]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2899
+assert_trap(() => invoke($50, `test`, [101]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2900
+assert_trap(() => invoke($50, `test`, [102]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2901
+assert_trap(() => invoke($50, `test`, [103]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2902
+assert_trap(() => invoke($50, `test`, [104]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2903
+assert_trap(() => invoke($50, `test`, [105]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2904
+assert_trap(() => invoke($50, `test`, [106]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2905
+assert_trap(() => invoke($50, `test`, [107]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2906
+assert_trap(() => invoke($50, `test`, [108]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2907
+assert_trap(() => invoke($50, `test`, [109]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2908
+assert_trap(() => invoke($50, `test`, [110]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2909
+assert_trap(() => invoke($50, `test`, [111]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2910
+assert_return(() => invoke($50, `test`, [112]), [value("i32", 0)]);
+
+// ./test/core/table_copy.wast:2911
+assert_return(() => invoke($50, `test`, [113]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:2912
+assert_return(() => invoke($50, `test`, [114]), [value("i32", 2)]);
+
+// ./test/core/table_copy.wast:2913
+assert_return(() => invoke($50, `test`, [115]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:2914
+assert_return(() => invoke($50, `test`, [116]), [value("i32", 4)]);
+
+// ./test/core/table_copy.wast:2915
+assert_return(() => invoke($50, `test`, [117]), [value("i32", 5)]);
+
+// ./test/core/table_copy.wast:2916
+assert_return(() => invoke($50, `test`, [118]), [value("i32", 6)]);
+
+// ./test/core/table_copy.wast:2917
+assert_return(() => invoke($50, `test`, [119]), [value("i32", 7)]);
+
+// ./test/core/table_copy.wast:2918
+assert_return(() => invoke($50, `test`, [120]), [value("i32", 8)]);
+
+// ./test/core/table_copy.wast:2919
+assert_return(() => invoke($50, `test`, [121]), [value("i32", 9)]);
+
+// ./test/core/table_copy.wast:2920
+assert_return(() => invoke($50, `test`, [122]), [value("i32", 10)]);
+
+// ./test/core/table_copy.wast:2921
+assert_return(() => invoke($50, `test`, [123]), [value("i32", 11)]);
+
+// ./test/core/table_copy.wast:2922
+assert_return(() => invoke($50, `test`, [124]), [value("i32", 12)]);
+
+// ./test/core/table_copy.wast:2923
+assert_return(() => invoke($50, `test`, [125]), [value("i32", 13)]);
+
+// ./test/core/table_copy.wast:2924
+assert_return(() => invoke($50, `test`, [126]), [value("i32", 14)]);
+
+// ./test/core/table_copy.wast:2925
+assert_return(() => invoke($50, `test`, [127]), [value("i32", 15)]);
+
+// ./test/core/table_copy.wast:2927
+let $51 = instantiate(`(module
+ (type (func (result i32)))
+ (table 128 128 funcref)
+ (elem (i32.const 0)
+ $$f0 $$f1 $$f2 $$f3 $$f4 $$f5 $$f6 $$f7 $$f8 $$f9 $$f10 $$f11 $$f12 $$f13 $$f14 $$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 $$targetOffs i32) (param $$srcOffs i32) (param $$len i32)
+ (table.copy (local.get $$targetOffs) (local.get $$srcOffs) (local.get $$len))))`);
+
+// ./test/core/table_copy.wast:2953
+assert_trap(() => invoke($51, `run`, [112, 0, -32]), `out of bounds table access`);
+
+// ./test/core/table_copy.wast:2955
+assert_return(() => invoke($51, `test`, [0]), [value("i32", 0)]);
+
+// ./test/core/table_copy.wast:2956
+assert_return(() => invoke($51, `test`, [1]), [value("i32", 1)]);
+
+// ./test/core/table_copy.wast:2957
+assert_return(() => invoke($51, `test`, [2]), [value("i32", 2)]);
+
+// ./test/core/table_copy.wast:2958
+assert_return(() => invoke($51, `test`, [3]), [value("i32", 3)]);
+
+// ./test/core/table_copy.wast:2959
+assert_return(() => invoke($51, `test`, [4]), [value("i32", 4)]);
+
+// ./test/core/table_copy.wast:2960
+assert_return(() => invoke($51, `test`, [5]), [value("i32", 5)]);
+
+// ./test/core/table_copy.wast:2961
+assert_return(() => invoke($51, `test`, [6]), [value("i32", 6)]);
+
+// ./test/core/table_copy.wast:2962
+assert_return(() => invoke($51, `test`, [7]), [value("i32", 7)]);
+
+// ./test/core/table_copy.wast:2963
+assert_return(() => invoke($51, `test`, [8]), [value("i32", 8)]);
+
+// ./test/core/table_copy.wast:2964
+assert_return(() => invoke($51, `test`, [9]), [value("i32", 9)]);
+
+// ./test/core/table_copy.wast:2965
+assert_return(() => invoke($51, `test`, [10]), [value("i32", 10)]);
+
+// ./test/core/table_copy.wast:2966
+assert_return(() => invoke($51, `test`, [11]), [value("i32", 11)]);
+
+// ./test/core/table_copy.wast:2967
+assert_return(() => invoke($51, `test`, [12]), [value("i32", 12)]);
+
+// ./test/core/table_copy.wast:2968
+assert_return(() => invoke($51, `test`, [13]), [value("i32", 13)]);
+
+// ./test/core/table_copy.wast:2969
+assert_return(() => invoke($51, `test`, [14]), [value("i32", 14)]);
+
+// ./test/core/table_copy.wast:2970
+assert_return(() => invoke($51, `test`, [15]), [value("i32", 15)]);
+
+// ./test/core/table_copy.wast:2971
+assert_trap(() => invoke($51, `test`, [16]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2972
+assert_trap(() => invoke($51, `test`, [17]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2973
+assert_trap(() => invoke($51, `test`, [18]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2974
+assert_trap(() => invoke($51, `test`, [19]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2975
+assert_trap(() => invoke($51, `test`, [20]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2976
+assert_trap(() => invoke($51, `test`, [21]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2977
+assert_trap(() => invoke($51, `test`, [22]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2978
+assert_trap(() => invoke($51, `test`, [23]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2979
+assert_trap(() => invoke($51, `test`, [24]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2980
+assert_trap(() => invoke($51, `test`, [25]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2981
+assert_trap(() => invoke($51, `test`, [26]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2982
+assert_trap(() => invoke($51, `test`, [27]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2983
+assert_trap(() => invoke($51, `test`, [28]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2984
+assert_trap(() => invoke($51, `test`, [29]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2985
+assert_trap(() => invoke($51, `test`, [30]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2986
+assert_trap(() => invoke($51, `test`, [31]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2987
+assert_trap(() => invoke($51, `test`, [32]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2988
+assert_trap(() => invoke($51, `test`, [33]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2989
+assert_trap(() => invoke($51, `test`, [34]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2990
+assert_trap(() => invoke($51, `test`, [35]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2991
+assert_trap(() => invoke($51, `test`, [36]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2992
+assert_trap(() => invoke($51, `test`, [37]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2993
+assert_trap(() => invoke($51, `test`, [38]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2994
+assert_trap(() => invoke($51, `test`, [39]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2995
+assert_trap(() => invoke($51, `test`, [40]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2996
+assert_trap(() => invoke($51, `test`, [41]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2997
+assert_trap(() => invoke($51, `test`, [42]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2998
+assert_trap(() => invoke($51, `test`, [43]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:2999
+assert_trap(() => invoke($51, `test`, [44]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3000
+assert_trap(() => invoke($51, `test`, [45]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3001
+assert_trap(() => invoke($51, `test`, [46]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3002
+assert_trap(() => invoke($51, `test`, [47]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3003
+assert_trap(() => invoke($51, `test`, [48]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3004
+assert_trap(() => invoke($51, `test`, [49]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3005
+assert_trap(() => invoke($51, `test`, [50]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3006
+assert_trap(() => invoke($51, `test`, [51]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3007
+assert_trap(() => invoke($51, `test`, [52]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3008
+assert_trap(() => invoke($51, `test`, [53]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3009
+assert_trap(() => invoke($51, `test`, [54]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3010
+assert_trap(() => invoke($51, `test`, [55]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3011
+assert_trap(() => invoke($51, `test`, [56]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3012
+assert_trap(() => invoke($51, `test`, [57]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3013
+assert_trap(() => invoke($51, `test`, [58]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3014
+assert_trap(() => invoke($51, `test`, [59]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3015
+assert_trap(() => invoke($51, `test`, [60]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3016
+assert_trap(() => invoke($51, `test`, [61]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3017
+assert_trap(() => invoke($51, `test`, [62]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3018
+assert_trap(() => invoke($51, `test`, [63]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3019
+assert_trap(() => invoke($51, `test`, [64]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3020
+assert_trap(() => invoke($51, `test`, [65]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3021
+assert_trap(() => invoke($51, `test`, [66]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3022
+assert_trap(() => invoke($51, `test`, [67]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3023
+assert_trap(() => invoke($51, `test`, [68]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3024
+assert_trap(() => invoke($51, `test`, [69]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3025
+assert_trap(() => invoke($51, `test`, [70]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3026
+assert_trap(() => invoke($51, `test`, [71]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3027
+assert_trap(() => invoke($51, `test`, [72]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3028
+assert_trap(() => invoke($51, `test`, [73]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3029
+assert_trap(() => invoke($51, `test`, [74]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3030
+assert_trap(() => invoke($51, `test`, [75]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3031
+assert_trap(() => invoke($51, `test`, [76]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3032
+assert_trap(() => invoke($51, `test`, [77]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3033
+assert_trap(() => invoke($51, `test`, [78]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3034
+assert_trap(() => invoke($51, `test`, [79]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3035
+assert_trap(() => invoke($51, `test`, [80]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3036
+assert_trap(() => invoke($51, `test`, [81]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3037
+assert_trap(() => invoke($51, `test`, [82]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3038
+assert_trap(() => invoke($51, `test`, [83]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3039
+assert_trap(() => invoke($51, `test`, [84]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3040
+assert_trap(() => invoke($51, `test`, [85]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3041
+assert_trap(() => invoke($51, `test`, [86]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3042
+assert_trap(() => invoke($51, `test`, [87]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3043
+assert_trap(() => invoke($51, `test`, [88]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3044
+assert_trap(() => invoke($51, `test`, [89]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3045
+assert_trap(() => invoke($51, `test`, [90]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3046
+assert_trap(() => invoke($51, `test`, [91]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3047
+assert_trap(() => invoke($51, `test`, [92]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3048
+assert_trap(() => invoke($51, `test`, [93]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3049
+assert_trap(() => invoke($51, `test`, [94]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3050
+assert_trap(() => invoke($51, `test`, [95]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3051
+assert_trap(() => invoke($51, `test`, [96]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3052
+assert_trap(() => invoke($51, `test`, [97]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3053
+assert_trap(() => invoke($51, `test`, [98]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3054
+assert_trap(() => invoke($51, `test`, [99]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3055
+assert_trap(() => invoke($51, `test`, [100]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3056
+assert_trap(() => invoke($51, `test`, [101]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3057
+assert_trap(() => invoke($51, `test`, [102]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3058
+assert_trap(() => invoke($51, `test`, [103]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3059
+assert_trap(() => invoke($51, `test`, [104]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3060
+assert_trap(() => invoke($51, `test`, [105]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3061
+assert_trap(() => invoke($51, `test`, [106]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3062
+assert_trap(() => invoke($51, `test`, [107]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3063
+assert_trap(() => invoke($51, `test`, [108]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3064
+assert_trap(() => invoke($51, `test`, [109]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3065
+assert_trap(() => invoke($51, `test`, [110]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3066
+assert_trap(() => invoke($51, `test`, [111]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3067
+assert_trap(() => invoke($51, `test`, [112]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3068
+assert_trap(() => invoke($51, `test`, [113]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3069
+assert_trap(() => invoke($51, `test`, [114]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3070
+assert_trap(() => invoke($51, `test`, [115]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3071
+assert_trap(() => invoke($51, `test`, [116]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3072
+assert_trap(() => invoke($51, `test`, [117]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3073
+assert_trap(() => invoke($51, `test`, [118]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3074
+assert_trap(() => invoke($51, `test`, [119]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3075
+assert_trap(() => invoke($51, `test`, [120]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3076
+assert_trap(() => invoke($51, `test`, [121]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3077
+assert_trap(() => invoke($51, `test`, [122]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3078
+assert_trap(() => invoke($51, `test`, [123]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3079
+assert_trap(() => invoke($51, `test`, [124]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3080
+assert_trap(() => invoke($51, `test`, [125]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3081
+assert_trap(() => invoke($51, `test`, [126]), `uninitialized element`);
+
+// ./test/core/table_copy.wast:3082
+assert_trap(() => invoke($51, `test`, [127]), `uninitialized element`);