github.com/tetratelabs/wazero@v1.7.3-0.20240513003603-48f702e154b5/internal/integration_test/spectest/v2/testdata/table_copy.wast (about)

     1  ;;
     2  ;; Generated by ../meta/generate_table_copy.js
     3  ;; DO NOT EDIT THIS FILE.  CHANGE THE SOURCE AND REGENERATE.
     4  ;;
     5  
     6  (module
     7    (func (export "ef0") (result i32) (i32.const 0))
     8    (func (export "ef1") (result i32) (i32.const 1))
     9    (func (export "ef2") (result i32) (i32.const 2))
    10    (func (export "ef3") (result i32) (i32.const 3))
    11    (func (export "ef4") (result i32) (i32.const 4))
    12  )
    13  (register "a")
    14  
    15  (module
    16    (type (func (result i32)))  ;; type #0
    17    (import "a" "ef0" (func (result i32)))    ;; index 0
    18    (import "a" "ef1" (func (result i32)))
    19    (import "a" "ef2" (func (result i32)))
    20    (import "a" "ef3" (func (result i32)))
    21    (import "a" "ef4" (func (result i32)))    ;; index 4
    22    (table $t0 30 30 funcref)
    23    (table $t1 30 30 funcref)
    24    (elem (table $t0) (i32.const 2) func 3 1 4 1)
    25    (elem funcref
    26      (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
    27    (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
    28    (elem funcref
    29      (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
    30    (elem (table $t1) (i32.const 3) func 1 3 1 4)
    31    (elem (table $t1) (i32.const 11) func 6 3 2 5 7)
    32    (func (result i32) (i32.const 5))  ;; index 5
    33    (func (result i32) (i32.const 6))
    34    (func (result i32) (i32.const 7))
    35    (func (result i32) (i32.const 8))
    36    (func (result i32) (i32.const 9))  ;; index 9
    37    (func (export "test")
    38      (nop))
    39    (func (export "check_t0") (param i32) (result i32)
    40      (call_indirect $t0 (type 0) (local.get 0)))
    41    (func (export "check_t1") (param i32) (result i32)
    42      (call_indirect $t1 (type 0) (local.get 0)))
    43  )
    44  
    45  (invoke "test")
    46  (assert_trap (invoke "check_t0" (i32.const 0)) "uninitialized element")
    47  (assert_trap (invoke "check_t0" (i32.const 1)) "uninitialized element")
    48  (assert_return (invoke "check_t0" (i32.const 2)) (i32.const 3))
    49  (assert_return (invoke "check_t0" (i32.const 3)) (i32.const 1))
    50  (assert_return (invoke "check_t0" (i32.const 4)) (i32.const 4))
    51  (assert_return (invoke "check_t0" (i32.const 5)) (i32.const 1))
    52  (assert_trap (invoke "check_t0" (i32.const 6)) "uninitialized element")
    53  (assert_trap (invoke "check_t0" (i32.const 7)) "uninitialized element")
    54  (assert_trap (invoke "check_t0" (i32.const 8)) "uninitialized element")
    55  (assert_trap (invoke "check_t0" (i32.const 9)) "uninitialized element")
    56  (assert_trap (invoke "check_t0" (i32.const 10)) "uninitialized element")
    57  (assert_trap (invoke "check_t0" (i32.const 11)) "uninitialized element")
    58  (assert_return (invoke "check_t0" (i32.const 12)) (i32.const 7))
    59  (assert_return (invoke "check_t0" (i32.const 13)) (i32.const 5))
    60  (assert_return (invoke "check_t0" (i32.const 14)) (i32.const 2))
    61  (assert_return (invoke "check_t0" (i32.const 15)) (i32.const 3))
    62  (assert_return (invoke "check_t0" (i32.const 16)) (i32.const 6))
    63  (assert_trap (invoke "check_t0" (i32.const 17)) "uninitialized element")
    64  (assert_trap (invoke "check_t0" (i32.const 18)) "uninitialized element")
    65  (assert_trap (invoke "check_t0" (i32.const 19)) "uninitialized element")
    66  (assert_trap (invoke "check_t0" (i32.const 20)) "uninitialized element")
    67  (assert_trap (invoke "check_t0" (i32.const 21)) "uninitialized element")
    68  (assert_trap (invoke "check_t0" (i32.const 22)) "uninitialized element")
    69  (assert_trap (invoke "check_t0" (i32.const 23)) "uninitialized element")
    70  (assert_trap (invoke "check_t0" (i32.const 24)) "uninitialized element")
    71  (assert_trap (invoke "check_t0" (i32.const 25)) "uninitialized element")
    72  (assert_trap (invoke "check_t0" (i32.const 26)) "uninitialized element")
    73  (assert_trap (invoke "check_t0" (i32.const 27)) "uninitialized element")
    74  (assert_trap (invoke "check_t0" (i32.const 28)) "uninitialized element")
    75  (assert_trap (invoke "check_t0" (i32.const 29)) "uninitialized element")
    76  (assert_trap (invoke "check_t1" (i32.const 0)) "uninitialized element")
    77  (assert_trap (invoke "check_t1" (i32.const 1)) "uninitialized element")
    78  (assert_trap (invoke "check_t1" (i32.const 2)) "uninitialized element")
    79  (assert_return (invoke "check_t1" (i32.const 3)) (i32.const 1))
    80  (assert_return (invoke "check_t1" (i32.const 4)) (i32.const 3))
    81  (assert_return (invoke "check_t1" (i32.const 5)) (i32.const 1))
    82  (assert_return (invoke "check_t1" (i32.const 6)) (i32.const 4))
    83  (assert_trap (invoke "check_t1" (i32.const 7)) "uninitialized element")
    84  (assert_trap (invoke "check_t1" (i32.const 8)) "uninitialized element")
    85  (assert_trap (invoke "check_t1" (i32.const 9)) "uninitialized element")
    86  (assert_trap (invoke "check_t1" (i32.const 10)) "uninitialized element")
    87  (assert_return (invoke "check_t1" (i32.const 11)) (i32.const 6))
    88  (assert_return (invoke "check_t1" (i32.const 12)) (i32.const 3))
    89  (assert_return (invoke "check_t1" (i32.const 13)) (i32.const 2))
    90  (assert_return (invoke "check_t1" (i32.const 14)) (i32.const 5))
    91  (assert_return (invoke "check_t1" (i32.const 15)) (i32.const 7))
    92  (assert_trap (invoke "check_t1" (i32.const 16)) "uninitialized element")
    93  (assert_trap (invoke "check_t1" (i32.const 17)) "uninitialized element")
    94  (assert_trap (invoke "check_t1" (i32.const 18)) "uninitialized element")
    95  (assert_trap (invoke "check_t1" (i32.const 19)) "uninitialized element")
    96  (assert_trap (invoke "check_t1" (i32.const 20)) "uninitialized element")
    97  (assert_trap (invoke "check_t1" (i32.const 21)) "uninitialized element")
    98  (assert_trap (invoke "check_t1" (i32.const 22)) "uninitialized element")
    99  (assert_trap (invoke "check_t1" (i32.const 23)) "uninitialized element")
   100  (assert_trap (invoke "check_t1" (i32.const 24)) "uninitialized element")
   101  (assert_trap (invoke "check_t1" (i32.const 25)) "uninitialized element")
   102  (assert_trap (invoke "check_t1" (i32.const 26)) "uninitialized element")
   103  (assert_trap (invoke "check_t1" (i32.const 27)) "uninitialized element")
   104  (assert_trap (invoke "check_t1" (i32.const 28)) "uninitialized element")
   105  (assert_trap (invoke "check_t1" (i32.const 29)) "uninitialized element")
   106  
   107  (module
   108    (type (func (result i32)))  ;; type #0
   109    (import "a" "ef0" (func (result i32)))    ;; index 0
   110    (import "a" "ef1" (func (result i32)))
   111    (import "a" "ef2" (func (result i32)))
   112    (import "a" "ef3" (func (result i32)))
   113    (import "a" "ef4" (func (result i32)))    ;; index 4
   114    (table $t0 30 30 funcref)
   115    (table $t1 30 30 funcref)
   116    (elem (table $t0) (i32.const 2) func 3 1 4 1)
   117    (elem funcref
   118      (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
   119    (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
   120    (elem funcref
   121      (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
   122    (elem (table $t1) (i32.const 3) func 1 3 1 4)
   123    (elem (table $t1) (i32.const 11) func 6 3 2 5 7)
   124    (func (result i32) (i32.const 5))  ;; index 5
   125    (func (result i32) (i32.const 6))
   126    (func (result i32) (i32.const 7))
   127    (func (result i32) (i32.const 8))
   128    (func (result i32) (i32.const 9))  ;; index 9
   129    (func (export "test")
   130      (table.copy $t0 $t0 (i32.const 13) (i32.const 2) (i32.const 3)))
   131    (func (export "check_t0") (param i32) (result i32)
   132      (call_indirect $t0 (type 0) (local.get 0)))
   133    (func (export "check_t1") (param i32) (result i32)
   134      (call_indirect $t1 (type 0) (local.get 0)))
   135  )
   136  
   137  (invoke "test")
   138  (assert_trap (invoke "check_t0" (i32.const 0)) "uninitialized element")
   139  (assert_trap (invoke "check_t0" (i32.const 1)) "uninitialized element")
   140  (assert_return (invoke "check_t0" (i32.const 2)) (i32.const 3))
   141  (assert_return (invoke "check_t0" (i32.const 3)) (i32.const 1))
   142  (assert_return (invoke "check_t0" (i32.const 4)) (i32.const 4))
   143  (assert_return (invoke "check_t0" (i32.const 5)) (i32.const 1))
   144  (assert_trap (invoke "check_t0" (i32.const 6)) "uninitialized element")
   145  (assert_trap (invoke "check_t0" (i32.const 7)) "uninitialized element")
   146  (assert_trap (invoke "check_t0" (i32.const 8)) "uninitialized element")
   147  (assert_trap (invoke "check_t0" (i32.const 9)) "uninitialized element")
   148  (assert_trap (invoke "check_t0" (i32.const 10)) "uninitialized element")
   149  (assert_trap (invoke "check_t0" (i32.const 11)) "uninitialized element")
   150  (assert_return (invoke "check_t0" (i32.const 12)) (i32.const 7))
   151  (assert_return (invoke "check_t0" (i32.const 13)) (i32.const 3))
   152  (assert_return (invoke "check_t0" (i32.const 14)) (i32.const 1))
   153  (assert_return (invoke "check_t0" (i32.const 15)) (i32.const 4))
   154  (assert_return (invoke "check_t0" (i32.const 16)) (i32.const 6))
   155  (assert_trap (invoke "check_t0" (i32.const 17)) "uninitialized element")
   156  (assert_trap (invoke "check_t0" (i32.const 18)) "uninitialized element")
   157  (assert_trap (invoke "check_t0" (i32.const 19)) "uninitialized element")
   158  (assert_trap (invoke "check_t0" (i32.const 20)) "uninitialized element")
   159  (assert_trap (invoke "check_t0" (i32.const 21)) "uninitialized element")
   160  (assert_trap (invoke "check_t0" (i32.const 22)) "uninitialized element")
   161  (assert_trap (invoke "check_t0" (i32.const 23)) "uninitialized element")
   162  (assert_trap (invoke "check_t0" (i32.const 24)) "uninitialized element")
   163  (assert_trap (invoke "check_t0" (i32.const 25)) "uninitialized element")
   164  (assert_trap (invoke "check_t0" (i32.const 26)) "uninitialized element")
   165  (assert_trap (invoke "check_t0" (i32.const 27)) "uninitialized element")
   166  (assert_trap (invoke "check_t0" (i32.const 28)) "uninitialized element")
   167  (assert_trap (invoke "check_t0" (i32.const 29)) "uninitialized element")
   168  (assert_trap (invoke "check_t1" (i32.const 0)) "uninitialized element")
   169  (assert_trap (invoke "check_t1" (i32.const 1)) "uninitialized element")
   170  (assert_trap (invoke "check_t1" (i32.const 2)) "uninitialized element")
   171  (assert_return (invoke "check_t1" (i32.const 3)) (i32.const 1))
   172  (assert_return (invoke "check_t1" (i32.const 4)) (i32.const 3))
   173  (assert_return (invoke "check_t1" (i32.const 5)) (i32.const 1))
   174  (assert_return (invoke "check_t1" (i32.const 6)) (i32.const 4))
   175  (assert_trap (invoke "check_t1" (i32.const 7)) "uninitialized element")
   176  (assert_trap (invoke "check_t1" (i32.const 8)) "uninitialized element")
   177  (assert_trap (invoke "check_t1" (i32.const 9)) "uninitialized element")
   178  (assert_trap (invoke "check_t1" (i32.const 10)) "uninitialized element")
   179  (assert_return (invoke "check_t1" (i32.const 11)) (i32.const 6))
   180  (assert_return (invoke "check_t1" (i32.const 12)) (i32.const 3))
   181  (assert_return (invoke "check_t1" (i32.const 13)) (i32.const 2))
   182  (assert_return (invoke "check_t1" (i32.const 14)) (i32.const 5))
   183  (assert_return (invoke "check_t1" (i32.const 15)) (i32.const 7))
   184  (assert_trap (invoke "check_t1" (i32.const 16)) "uninitialized element")
   185  (assert_trap (invoke "check_t1" (i32.const 17)) "uninitialized element")
   186  (assert_trap (invoke "check_t1" (i32.const 18)) "uninitialized element")
   187  (assert_trap (invoke "check_t1" (i32.const 19)) "uninitialized element")
   188  (assert_trap (invoke "check_t1" (i32.const 20)) "uninitialized element")
   189  (assert_trap (invoke "check_t1" (i32.const 21)) "uninitialized element")
   190  (assert_trap (invoke "check_t1" (i32.const 22)) "uninitialized element")
   191  (assert_trap (invoke "check_t1" (i32.const 23)) "uninitialized element")
   192  (assert_trap (invoke "check_t1" (i32.const 24)) "uninitialized element")
   193  (assert_trap (invoke "check_t1" (i32.const 25)) "uninitialized element")
   194  (assert_trap (invoke "check_t1" (i32.const 26)) "uninitialized element")
   195  (assert_trap (invoke "check_t1" (i32.const 27)) "uninitialized element")
   196  (assert_trap (invoke "check_t1" (i32.const 28)) "uninitialized element")
   197  (assert_trap (invoke "check_t1" (i32.const 29)) "uninitialized element")
   198  
   199  (module
   200    (type (func (result i32)))  ;; type #0
   201    (import "a" "ef0" (func (result i32)))    ;; index 0
   202    (import "a" "ef1" (func (result i32)))
   203    (import "a" "ef2" (func (result i32)))
   204    (import "a" "ef3" (func (result i32)))
   205    (import "a" "ef4" (func (result i32)))    ;; index 4
   206    (table $t0 30 30 funcref)
   207    (table $t1 30 30 funcref)
   208    (elem (table $t0) (i32.const 2) func 3 1 4 1)
   209    (elem funcref
   210      (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
   211    (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
   212    (elem funcref
   213      (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
   214    (elem (table $t1) (i32.const 3) func 1 3 1 4)
   215    (elem (table $t1) (i32.const 11) func 6 3 2 5 7)
   216    (func (result i32) (i32.const 5))  ;; index 5
   217    (func (result i32) (i32.const 6))
   218    (func (result i32) (i32.const 7))
   219    (func (result i32) (i32.const 8))
   220    (func (result i32) (i32.const 9))  ;; index 9
   221    (func (export "test")
   222      (table.copy $t0 $t0 (i32.const 25) (i32.const 15) (i32.const 2)))
   223    (func (export "check_t0") (param i32) (result i32)
   224      (call_indirect $t0 (type 0) (local.get 0)))
   225    (func (export "check_t1") (param i32) (result i32)
   226      (call_indirect $t1 (type 0) (local.get 0)))
   227  )
   228  
   229  (invoke "test")
   230  (assert_trap (invoke "check_t0" (i32.const 0)) "uninitialized element")
   231  (assert_trap (invoke "check_t0" (i32.const 1)) "uninitialized element")
   232  (assert_return (invoke "check_t0" (i32.const 2)) (i32.const 3))
   233  (assert_return (invoke "check_t0" (i32.const 3)) (i32.const 1))
   234  (assert_return (invoke "check_t0" (i32.const 4)) (i32.const 4))
   235  (assert_return (invoke "check_t0" (i32.const 5)) (i32.const 1))
   236  (assert_trap (invoke "check_t0" (i32.const 6)) "uninitialized element")
   237  (assert_trap (invoke "check_t0" (i32.const 7)) "uninitialized element")
   238  (assert_trap (invoke "check_t0" (i32.const 8)) "uninitialized element")
   239  (assert_trap (invoke "check_t0" (i32.const 9)) "uninitialized element")
   240  (assert_trap (invoke "check_t0" (i32.const 10)) "uninitialized element")
   241  (assert_trap (invoke "check_t0" (i32.const 11)) "uninitialized element")
   242  (assert_return (invoke "check_t0" (i32.const 12)) (i32.const 7))
   243  (assert_return (invoke "check_t0" (i32.const 13)) (i32.const 5))
   244  (assert_return (invoke "check_t0" (i32.const 14)) (i32.const 2))
   245  (assert_return (invoke "check_t0" (i32.const 15)) (i32.const 3))
   246  (assert_return (invoke "check_t0" (i32.const 16)) (i32.const 6))
   247  (assert_trap (invoke "check_t0" (i32.const 17)) "uninitialized element")
   248  (assert_trap (invoke "check_t0" (i32.const 18)) "uninitialized element")
   249  (assert_trap (invoke "check_t0" (i32.const 19)) "uninitialized element")
   250  (assert_trap (invoke "check_t0" (i32.const 20)) "uninitialized element")
   251  (assert_trap (invoke "check_t0" (i32.const 21)) "uninitialized element")
   252  (assert_trap (invoke "check_t0" (i32.const 22)) "uninitialized element")
   253  (assert_trap (invoke "check_t0" (i32.const 23)) "uninitialized element")
   254  (assert_trap (invoke "check_t0" (i32.const 24)) "uninitialized element")
   255  (assert_return (invoke "check_t0" (i32.const 25)) (i32.const 3))
   256  (assert_return (invoke "check_t0" (i32.const 26)) (i32.const 6))
   257  (assert_trap (invoke "check_t0" (i32.const 27)) "uninitialized element")
   258  (assert_trap (invoke "check_t0" (i32.const 28)) "uninitialized element")
   259  (assert_trap (invoke "check_t0" (i32.const 29)) "uninitialized element")
   260  (assert_trap (invoke "check_t1" (i32.const 0)) "uninitialized element")
   261  (assert_trap (invoke "check_t1" (i32.const 1)) "uninitialized element")
   262  (assert_trap (invoke "check_t1" (i32.const 2)) "uninitialized element")
   263  (assert_return (invoke "check_t1" (i32.const 3)) (i32.const 1))
   264  (assert_return (invoke "check_t1" (i32.const 4)) (i32.const 3))
   265  (assert_return (invoke "check_t1" (i32.const 5)) (i32.const 1))
   266  (assert_return (invoke "check_t1" (i32.const 6)) (i32.const 4))
   267  (assert_trap (invoke "check_t1" (i32.const 7)) "uninitialized element")
   268  (assert_trap (invoke "check_t1" (i32.const 8)) "uninitialized element")
   269  (assert_trap (invoke "check_t1" (i32.const 9)) "uninitialized element")
   270  (assert_trap (invoke "check_t1" (i32.const 10)) "uninitialized element")
   271  (assert_return (invoke "check_t1" (i32.const 11)) (i32.const 6))
   272  (assert_return (invoke "check_t1" (i32.const 12)) (i32.const 3))
   273  (assert_return (invoke "check_t1" (i32.const 13)) (i32.const 2))
   274  (assert_return (invoke "check_t1" (i32.const 14)) (i32.const 5))
   275  (assert_return (invoke "check_t1" (i32.const 15)) (i32.const 7))
   276  (assert_trap (invoke "check_t1" (i32.const 16)) "uninitialized element")
   277  (assert_trap (invoke "check_t1" (i32.const 17)) "uninitialized element")
   278  (assert_trap (invoke "check_t1" (i32.const 18)) "uninitialized element")
   279  (assert_trap (invoke "check_t1" (i32.const 19)) "uninitialized element")
   280  (assert_trap (invoke "check_t1" (i32.const 20)) "uninitialized element")
   281  (assert_trap (invoke "check_t1" (i32.const 21)) "uninitialized element")
   282  (assert_trap (invoke "check_t1" (i32.const 22)) "uninitialized element")
   283  (assert_trap (invoke "check_t1" (i32.const 23)) "uninitialized element")
   284  (assert_trap (invoke "check_t1" (i32.const 24)) "uninitialized element")
   285  (assert_trap (invoke "check_t1" (i32.const 25)) "uninitialized element")
   286  (assert_trap (invoke "check_t1" (i32.const 26)) "uninitialized element")
   287  (assert_trap (invoke "check_t1" (i32.const 27)) "uninitialized element")
   288  (assert_trap (invoke "check_t1" (i32.const 28)) "uninitialized element")
   289  (assert_trap (invoke "check_t1" (i32.const 29)) "uninitialized element")
   290  
   291  (module
   292    (type (func (result i32)))  ;; type #0
   293    (import "a" "ef0" (func (result i32)))    ;; index 0
   294    (import "a" "ef1" (func (result i32)))
   295    (import "a" "ef2" (func (result i32)))
   296    (import "a" "ef3" (func (result i32)))
   297    (import "a" "ef4" (func (result i32)))    ;; index 4
   298    (table $t0 30 30 funcref)
   299    (table $t1 30 30 funcref)
   300    (elem (table $t0) (i32.const 2) func 3 1 4 1)
   301    (elem funcref
   302      (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
   303    (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
   304    (elem funcref
   305      (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
   306    (elem (table $t1) (i32.const 3) func 1 3 1 4)
   307    (elem (table $t1) (i32.const 11) func 6 3 2 5 7)
   308    (func (result i32) (i32.const 5))  ;; index 5
   309    (func (result i32) (i32.const 6))
   310    (func (result i32) (i32.const 7))
   311    (func (result i32) (i32.const 8))
   312    (func (result i32) (i32.const 9))  ;; index 9
   313    (func (export "test")
   314      (table.copy $t0 $t0 (i32.const 13) (i32.const 25) (i32.const 3)))
   315    (func (export "check_t0") (param i32) (result i32)
   316      (call_indirect $t0 (type 0) (local.get 0)))
   317    (func (export "check_t1") (param i32) (result i32)
   318      (call_indirect $t1 (type 0) (local.get 0)))
   319  )
   320  
   321  (invoke "test")
   322  (assert_trap (invoke "check_t0" (i32.const 0)) "uninitialized element")
   323  (assert_trap (invoke "check_t0" (i32.const 1)) "uninitialized element")
   324  (assert_return (invoke "check_t0" (i32.const 2)) (i32.const 3))
   325  (assert_return (invoke "check_t0" (i32.const 3)) (i32.const 1))
   326  (assert_return (invoke "check_t0" (i32.const 4)) (i32.const 4))
   327  (assert_return (invoke "check_t0" (i32.const 5)) (i32.const 1))
   328  (assert_trap (invoke "check_t0" (i32.const 6)) "uninitialized element")
   329  (assert_trap (invoke "check_t0" (i32.const 7)) "uninitialized element")
   330  (assert_trap (invoke "check_t0" (i32.const 8)) "uninitialized element")
   331  (assert_trap (invoke "check_t0" (i32.const 9)) "uninitialized element")
   332  (assert_trap (invoke "check_t0" (i32.const 10)) "uninitialized element")
   333  (assert_trap (invoke "check_t0" (i32.const 11)) "uninitialized element")
   334  (assert_return (invoke "check_t0" (i32.const 12)) (i32.const 7))
   335  (assert_trap (invoke "check_t0" (i32.const 13)) "uninitialized element")
   336  (assert_trap (invoke "check_t0" (i32.const 14)) "uninitialized element")
   337  (assert_trap (invoke "check_t0" (i32.const 15)) "uninitialized element")
   338  (assert_return (invoke "check_t0" (i32.const 16)) (i32.const 6))
   339  (assert_trap (invoke "check_t0" (i32.const 17)) "uninitialized element")
   340  (assert_trap (invoke "check_t0" (i32.const 18)) "uninitialized element")
   341  (assert_trap (invoke "check_t0" (i32.const 19)) "uninitialized element")
   342  (assert_trap (invoke "check_t0" (i32.const 20)) "uninitialized element")
   343  (assert_trap (invoke "check_t0" (i32.const 21)) "uninitialized element")
   344  (assert_trap (invoke "check_t0" (i32.const 22)) "uninitialized element")
   345  (assert_trap (invoke "check_t0" (i32.const 23)) "uninitialized element")
   346  (assert_trap (invoke "check_t0" (i32.const 24)) "uninitialized element")
   347  (assert_trap (invoke "check_t0" (i32.const 25)) "uninitialized element")
   348  (assert_trap (invoke "check_t0" (i32.const 26)) "uninitialized element")
   349  (assert_trap (invoke "check_t0" (i32.const 27)) "uninitialized element")
   350  (assert_trap (invoke "check_t0" (i32.const 28)) "uninitialized element")
   351  (assert_trap (invoke "check_t0" (i32.const 29)) "uninitialized element")
   352  (assert_trap (invoke "check_t1" (i32.const 0)) "uninitialized element")
   353  (assert_trap (invoke "check_t1" (i32.const 1)) "uninitialized element")
   354  (assert_trap (invoke "check_t1" (i32.const 2)) "uninitialized element")
   355  (assert_return (invoke "check_t1" (i32.const 3)) (i32.const 1))
   356  (assert_return (invoke "check_t1" (i32.const 4)) (i32.const 3))
   357  (assert_return (invoke "check_t1" (i32.const 5)) (i32.const 1))
   358  (assert_return (invoke "check_t1" (i32.const 6)) (i32.const 4))
   359  (assert_trap (invoke "check_t1" (i32.const 7)) "uninitialized element")
   360  (assert_trap (invoke "check_t1" (i32.const 8)) "uninitialized element")
   361  (assert_trap (invoke "check_t1" (i32.const 9)) "uninitialized element")
   362  (assert_trap (invoke "check_t1" (i32.const 10)) "uninitialized element")
   363  (assert_return (invoke "check_t1" (i32.const 11)) (i32.const 6))
   364  (assert_return (invoke "check_t1" (i32.const 12)) (i32.const 3))
   365  (assert_return (invoke "check_t1" (i32.const 13)) (i32.const 2))
   366  (assert_return (invoke "check_t1" (i32.const 14)) (i32.const 5))
   367  (assert_return (invoke "check_t1" (i32.const 15)) (i32.const 7))
   368  (assert_trap (invoke "check_t1" (i32.const 16)) "uninitialized element")
   369  (assert_trap (invoke "check_t1" (i32.const 17)) "uninitialized element")
   370  (assert_trap (invoke "check_t1" (i32.const 18)) "uninitialized element")
   371  (assert_trap (invoke "check_t1" (i32.const 19)) "uninitialized element")
   372  (assert_trap (invoke "check_t1" (i32.const 20)) "uninitialized element")
   373  (assert_trap (invoke "check_t1" (i32.const 21)) "uninitialized element")
   374  (assert_trap (invoke "check_t1" (i32.const 22)) "uninitialized element")
   375  (assert_trap (invoke "check_t1" (i32.const 23)) "uninitialized element")
   376  (assert_trap (invoke "check_t1" (i32.const 24)) "uninitialized element")
   377  (assert_trap (invoke "check_t1" (i32.const 25)) "uninitialized element")
   378  (assert_trap (invoke "check_t1" (i32.const 26)) "uninitialized element")
   379  (assert_trap (invoke "check_t1" (i32.const 27)) "uninitialized element")
   380  (assert_trap (invoke "check_t1" (i32.const 28)) "uninitialized element")
   381  (assert_trap (invoke "check_t1" (i32.const 29)) "uninitialized element")
   382  
   383  (module
   384    (type (func (result i32)))  ;; type #0
   385    (import "a" "ef0" (func (result i32)))    ;; index 0
   386    (import "a" "ef1" (func (result i32)))
   387    (import "a" "ef2" (func (result i32)))
   388    (import "a" "ef3" (func (result i32)))
   389    (import "a" "ef4" (func (result i32)))    ;; index 4
   390    (table $t0 30 30 funcref)
   391    (table $t1 30 30 funcref)
   392    (elem (table $t0) (i32.const 2) func 3 1 4 1)
   393    (elem funcref
   394      (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
   395    (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
   396    (elem funcref
   397      (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
   398    (elem (table $t1) (i32.const 3) func 1 3 1 4)
   399    (elem (table $t1) (i32.const 11) func 6 3 2 5 7)
   400    (func (result i32) (i32.const 5))  ;; index 5
   401    (func (result i32) (i32.const 6))
   402    (func (result i32) (i32.const 7))
   403    (func (result i32) (i32.const 8))
   404    (func (result i32) (i32.const 9))  ;; index 9
   405    (func (export "test")
   406      (table.copy $t0 $t0 (i32.const 20) (i32.const 22) (i32.const 4)))
   407    (func (export "check_t0") (param i32) (result i32)
   408      (call_indirect $t0 (type 0) (local.get 0)))
   409    (func (export "check_t1") (param i32) (result i32)
   410      (call_indirect $t1 (type 0) (local.get 0)))
   411  )
   412  
   413  (invoke "test")
   414  (assert_trap (invoke "check_t0" (i32.const 0)) "uninitialized element")
   415  (assert_trap (invoke "check_t0" (i32.const 1)) "uninitialized element")
   416  (assert_return (invoke "check_t0" (i32.const 2)) (i32.const 3))
   417  (assert_return (invoke "check_t0" (i32.const 3)) (i32.const 1))
   418  (assert_return (invoke "check_t0" (i32.const 4)) (i32.const 4))
   419  (assert_return (invoke "check_t0" (i32.const 5)) (i32.const 1))
   420  (assert_trap (invoke "check_t0" (i32.const 6)) "uninitialized element")
   421  (assert_trap (invoke "check_t0" (i32.const 7)) "uninitialized element")
   422  (assert_trap (invoke "check_t0" (i32.const 8)) "uninitialized element")
   423  (assert_trap (invoke "check_t0" (i32.const 9)) "uninitialized element")
   424  (assert_trap (invoke "check_t0" (i32.const 10)) "uninitialized element")
   425  (assert_trap (invoke "check_t0" (i32.const 11)) "uninitialized element")
   426  (assert_return (invoke "check_t0" (i32.const 12)) (i32.const 7))
   427  (assert_return (invoke "check_t0" (i32.const 13)) (i32.const 5))
   428  (assert_return (invoke "check_t0" (i32.const 14)) (i32.const 2))
   429  (assert_return (invoke "check_t0" (i32.const 15)) (i32.const 3))
   430  (assert_return (invoke "check_t0" (i32.const 16)) (i32.const 6))
   431  (assert_trap (invoke "check_t0" (i32.const 17)) "uninitialized element")
   432  (assert_trap (invoke "check_t0" (i32.const 18)) "uninitialized element")
   433  (assert_trap (invoke "check_t0" (i32.const 19)) "uninitialized element")
   434  (assert_trap (invoke "check_t0" (i32.const 20)) "uninitialized element")
   435  (assert_trap (invoke "check_t0" (i32.const 21)) "uninitialized element")
   436  (assert_trap (invoke "check_t0" (i32.const 22)) "uninitialized element")
   437  (assert_trap (invoke "check_t0" (i32.const 23)) "uninitialized element")
   438  (assert_trap (invoke "check_t0" (i32.const 24)) "uninitialized element")
   439  (assert_trap (invoke "check_t0" (i32.const 25)) "uninitialized element")
   440  (assert_trap (invoke "check_t0" (i32.const 26)) "uninitialized element")
   441  (assert_trap (invoke "check_t0" (i32.const 27)) "uninitialized element")
   442  (assert_trap (invoke "check_t0" (i32.const 28)) "uninitialized element")
   443  (assert_trap (invoke "check_t0" (i32.const 29)) "uninitialized element")
   444  (assert_trap (invoke "check_t1" (i32.const 0)) "uninitialized element")
   445  (assert_trap (invoke "check_t1" (i32.const 1)) "uninitialized element")
   446  (assert_trap (invoke "check_t1" (i32.const 2)) "uninitialized element")
   447  (assert_return (invoke "check_t1" (i32.const 3)) (i32.const 1))
   448  (assert_return (invoke "check_t1" (i32.const 4)) (i32.const 3))
   449  (assert_return (invoke "check_t1" (i32.const 5)) (i32.const 1))
   450  (assert_return (invoke "check_t1" (i32.const 6)) (i32.const 4))
   451  (assert_trap (invoke "check_t1" (i32.const 7)) "uninitialized element")
   452  (assert_trap (invoke "check_t1" (i32.const 8)) "uninitialized element")
   453  (assert_trap (invoke "check_t1" (i32.const 9)) "uninitialized element")
   454  (assert_trap (invoke "check_t1" (i32.const 10)) "uninitialized element")
   455  (assert_return (invoke "check_t1" (i32.const 11)) (i32.const 6))
   456  (assert_return (invoke "check_t1" (i32.const 12)) (i32.const 3))
   457  (assert_return (invoke "check_t1" (i32.const 13)) (i32.const 2))
   458  (assert_return (invoke "check_t1" (i32.const 14)) (i32.const 5))
   459  (assert_return (invoke "check_t1" (i32.const 15)) (i32.const 7))
   460  (assert_trap (invoke "check_t1" (i32.const 16)) "uninitialized element")
   461  (assert_trap (invoke "check_t1" (i32.const 17)) "uninitialized element")
   462  (assert_trap (invoke "check_t1" (i32.const 18)) "uninitialized element")
   463  (assert_trap (invoke "check_t1" (i32.const 19)) "uninitialized element")
   464  (assert_trap (invoke "check_t1" (i32.const 20)) "uninitialized element")
   465  (assert_trap (invoke "check_t1" (i32.const 21)) "uninitialized element")
   466  (assert_trap (invoke "check_t1" (i32.const 22)) "uninitialized element")
   467  (assert_trap (invoke "check_t1" (i32.const 23)) "uninitialized element")
   468  (assert_trap (invoke "check_t1" (i32.const 24)) "uninitialized element")
   469  (assert_trap (invoke "check_t1" (i32.const 25)) "uninitialized element")
   470  (assert_trap (invoke "check_t1" (i32.const 26)) "uninitialized element")
   471  (assert_trap (invoke "check_t1" (i32.const 27)) "uninitialized element")
   472  (assert_trap (invoke "check_t1" (i32.const 28)) "uninitialized element")
   473  (assert_trap (invoke "check_t1" (i32.const 29)) "uninitialized element")
   474  
   475  (module
   476    (type (func (result i32)))  ;; type #0
   477    (import "a" "ef0" (func (result i32)))    ;; index 0
   478    (import "a" "ef1" (func (result i32)))
   479    (import "a" "ef2" (func (result i32)))
   480    (import "a" "ef3" (func (result i32)))
   481    (import "a" "ef4" (func (result i32)))    ;; index 4
   482    (table $t0 30 30 funcref)
   483    (table $t1 30 30 funcref)
   484    (elem (table $t0) (i32.const 2) func 3 1 4 1)
   485    (elem funcref
   486      (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
   487    (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
   488    (elem funcref
   489      (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
   490    (elem (table $t1) (i32.const 3) func 1 3 1 4)
   491    (elem (table $t1) (i32.const 11) func 6 3 2 5 7)
   492    (func (result i32) (i32.const 5))  ;; index 5
   493    (func (result i32) (i32.const 6))
   494    (func (result i32) (i32.const 7))
   495    (func (result i32) (i32.const 8))
   496    (func (result i32) (i32.const 9))  ;; index 9
   497    (func (export "test")
   498      (table.copy $t0 $t0 (i32.const 25) (i32.const 1) (i32.const 3)))
   499    (func (export "check_t0") (param i32) (result i32)
   500      (call_indirect $t0 (type 0) (local.get 0)))
   501    (func (export "check_t1") (param i32) (result i32)
   502      (call_indirect $t1 (type 0) (local.get 0)))
   503  )
   504  
   505  (invoke "test")
   506  (assert_trap (invoke "check_t0" (i32.const 0)) "uninitialized element")
   507  (assert_trap (invoke "check_t0" (i32.const 1)) "uninitialized element")
   508  (assert_return (invoke "check_t0" (i32.const 2)) (i32.const 3))
   509  (assert_return (invoke "check_t0" (i32.const 3)) (i32.const 1))
   510  (assert_return (invoke "check_t0" (i32.const 4)) (i32.const 4))
   511  (assert_return (invoke "check_t0" (i32.const 5)) (i32.const 1))
   512  (assert_trap (invoke "check_t0" (i32.const 6)) "uninitialized element")
   513  (assert_trap (invoke "check_t0" (i32.const 7)) "uninitialized element")
   514  (assert_trap (invoke "check_t0" (i32.const 8)) "uninitialized element")
   515  (assert_trap (invoke "check_t0" (i32.const 9)) "uninitialized element")
   516  (assert_trap (invoke "check_t0" (i32.const 10)) "uninitialized element")
   517  (assert_trap (invoke "check_t0" (i32.const 11)) "uninitialized element")
   518  (assert_return (invoke "check_t0" (i32.const 12)) (i32.const 7))
   519  (assert_return (invoke "check_t0" (i32.const 13)) (i32.const 5))
   520  (assert_return (invoke "check_t0" (i32.const 14)) (i32.const 2))
   521  (assert_return (invoke "check_t0" (i32.const 15)) (i32.const 3))
   522  (assert_return (invoke "check_t0" (i32.const 16)) (i32.const 6))
   523  (assert_trap (invoke "check_t0" (i32.const 17)) "uninitialized element")
   524  (assert_trap (invoke "check_t0" (i32.const 18)) "uninitialized element")
   525  (assert_trap (invoke "check_t0" (i32.const 19)) "uninitialized element")
   526  (assert_trap (invoke "check_t0" (i32.const 20)) "uninitialized element")
   527  (assert_trap (invoke "check_t0" (i32.const 21)) "uninitialized element")
   528  (assert_trap (invoke "check_t0" (i32.const 22)) "uninitialized element")
   529  (assert_trap (invoke "check_t0" (i32.const 23)) "uninitialized element")
   530  (assert_trap (invoke "check_t0" (i32.const 24)) "uninitialized element")
   531  (assert_trap (invoke "check_t0" (i32.const 25)) "uninitialized element")
   532  (assert_return (invoke "check_t0" (i32.const 26)) (i32.const 3))
   533  (assert_return (invoke "check_t0" (i32.const 27)) (i32.const 1))
   534  (assert_trap (invoke "check_t0" (i32.const 28)) "uninitialized element")
   535  (assert_trap (invoke "check_t0" (i32.const 29)) "uninitialized element")
   536  (assert_trap (invoke "check_t1" (i32.const 0)) "uninitialized element")
   537  (assert_trap (invoke "check_t1" (i32.const 1)) "uninitialized element")
   538  (assert_trap (invoke "check_t1" (i32.const 2)) "uninitialized element")
   539  (assert_return (invoke "check_t1" (i32.const 3)) (i32.const 1))
   540  (assert_return (invoke "check_t1" (i32.const 4)) (i32.const 3))
   541  (assert_return (invoke "check_t1" (i32.const 5)) (i32.const 1))
   542  (assert_return (invoke "check_t1" (i32.const 6)) (i32.const 4))
   543  (assert_trap (invoke "check_t1" (i32.const 7)) "uninitialized element")
   544  (assert_trap (invoke "check_t1" (i32.const 8)) "uninitialized element")
   545  (assert_trap (invoke "check_t1" (i32.const 9)) "uninitialized element")
   546  (assert_trap (invoke "check_t1" (i32.const 10)) "uninitialized element")
   547  (assert_return (invoke "check_t1" (i32.const 11)) (i32.const 6))
   548  (assert_return (invoke "check_t1" (i32.const 12)) (i32.const 3))
   549  (assert_return (invoke "check_t1" (i32.const 13)) (i32.const 2))
   550  (assert_return (invoke "check_t1" (i32.const 14)) (i32.const 5))
   551  (assert_return (invoke "check_t1" (i32.const 15)) (i32.const 7))
   552  (assert_trap (invoke "check_t1" (i32.const 16)) "uninitialized element")
   553  (assert_trap (invoke "check_t1" (i32.const 17)) "uninitialized element")
   554  (assert_trap (invoke "check_t1" (i32.const 18)) "uninitialized element")
   555  (assert_trap (invoke "check_t1" (i32.const 19)) "uninitialized element")
   556  (assert_trap (invoke "check_t1" (i32.const 20)) "uninitialized element")
   557  (assert_trap (invoke "check_t1" (i32.const 21)) "uninitialized element")
   558  (assert_trap (invoke "check_t1" (i32.const 22)) "uninitialized element")
   559  (assert_trap (invoke "check_t1" (i32.const 23)) "uninitialized element")
   560  (assert_trap (invoke "check_t1" (i32.const 24)) "uninitialized element")
   561  (assert_trap (invoke "check_t1" (i32.const 25)) "uninitialized element")
   562  (assert_trap (invoke "check_t1" (i32.const 26)) "uninitialized element")
   563  (assert_trap (invoke "check_t1" (i32.const 27)) "uninitialized element")
   564  (assert_trap (invoke "check_t1" (i32.const 28)) "uninitialized element")
   565  (assert_trap (invoke "check_t1" (i32.const 29)) "uninitialized element")
   566  
   567  (module
   568    (type (func (result i32)))  ;; type #0
   569    (import "a" "ef0" (func (result i32)))    ;; index 0
   570    (import "a" "ef1" (func (result i32)))
   571    (import "a" "ef2" (func (result i32)))
   572    (import "a" "ef3" (func (result i32)))
   573    (import "a" "ef4" (func (result i32)))    ;; index 4
   574    (table $t0 30 30 funcref)
   575    (table $t1 30 30 funcref)
   576    (elem (table $t0) (i32.const 2) func 3 1 4 1)
   577    (elem funcref
   578      (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
   579    (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
   580    (elem funcref
   581      (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
   582    (elem (table $t1) (i32.const 3) func 1 3 1 4)
   583    (elem (table $t1) (i32.const 11) func 6 3 2 5 7)
   584    (func (result i32) (i32.const 5))  ;; index 5
   585    (func (result i32) (i32.const 6))
   586    (func (result i32) (i32.const 7))
   587    (func (result i32) (i32.const 8))
   588    (func (result i32) (i32.const 9))  ;; index 9
   589    (func (export "test")
   590      (table.copy $t0 $t0 (i32.const 10) (i32.const 12) (i32.const 7)))
   591    (func (export "check_t0") (param i32) (result i32)
   592      (call_indirect $t0 (type 0) (local.get 0)))
   593    (func (export "check_t1") (param i32) (result i32)
   594      (call_indirect $t1 (type 0) (local.get 0)))
   595  )
   596  
   597  (invoke "test")
   598  (assert_trap (invoke "check_t0" (i32.const 0)) "uninitialized element")
   599  (assert_trap (invoke "check_t0" (i32.const 1)) "uninitialized element")
   600  (assert_return (invoke "check_t0" (i32.const 2)) (i32.const 3))
   601  (assert_return (invoke "check_t0" (i32.const 3)) (i32.const 1))
   602  (assert_return (invoke "check_t0" (i32.const 4)) (i32.const 4))
   603  (assert_return (invoke "check_t0" (i32.const 5)) (i32.const 1))
   604  (assert_trap (invoke "check_t0" (i32.const 6)) "uninitialized element")
   605  (assert_trap (invoke "check_t0" (i32.const 7)) "uninitialized element")
   606  (assert_trap (invoke "check_t0" (i32.const 8)) "uninitialized element")
   607  (assert_trap (invoke "check_t0" (i32.const 9)) "uninitialized element")
   608  (assert_return (invoke "check_t0" (i32.const 10)) (i32.const 7))
   609  (assert_return (invoke "check_t0" (i32.const 11)) (i32.const 5))
   610  (assert_return (invoke "check_t0" (i32.const 12)) (i32.const 2))
   611  (assert_return (invoke "check_t0" (i32.const 13)) (i32.const 3))
   612  (assert_return (invoke "check_t0" (i32.const 14)) (i32.const 6))
   613  (assert_trap (invoke "check_t0" (i32.const 15)) "uninitialized element")
   614  (assert_trap (invoke "check_t0" (i32.const 16)) "uninitialized element")
   615  (assert_trap (invoke "check_t0" (i32.const 17)) "uninitialized element")
   616  (assert_trap (invoke "check_t0" (i32.const 18)) "uninitialized element")
   617  (assert_trap (invoke "check_t0" (i32.const 19)) "uninitialized element")
   618  (assert_trap (invoke "check_t0" (i32.const 20)) "uninitialized element")
   619  (assert_trap (invoke "check_t0" (i32.const 21)) "uninitialized element")
   620  (assert_trap (invoke "check_t0" (i32.const 22)) "uninitialized element")
   621  (assert_trap (invoke "check_t0" (i32.const 23)) "uninitialized element")
   622  (assert_trap (invoke "check_t0" (i32.const 24)) "uninitialized element")
   623  (assert_trap (invoke "check_t0" (i32.const 25)) "uninitialized element")
   624  (assert_trap (invoke "check_t0" (i32.const 26)) "uninitialized element")
   625  (assert_trap (invoke "check_t0" (i32.const 27)) "uninitialized element")
   626  (assert_trap (invoke "check_t0" (i32.const 28)) "uninitialized element")
   627  (assert_trap (invoke "check_t0" (i32.const 29)) "uninitialized element")
   628  (assert_trap (invoke "check_t1" (i32.const 0)) "uninitialized element")
   629  (assert_trap (invoke "check_t1" (i32.const 1)) "uninitialized element")
   630  (assert_trap (invoke "check_t1" (i32.const 2)) "uninitialized element")
   631  (assert_return (invoke "check_t1" (i32.const 3)) (i32.const 1))
   632  (assert_return (invoke "check_t1" (i32.const 4)) (i32.const 3))
   633  (assert_return (invoke "check_t1" (i32.const 5)) (i32.const 1))
   634  (assert_return (invoke "check_t1" (i32.const 6)) (i32.const 4))
   635  (assert_trap (invoke "check_t1" (i32.const 7)) "uninitialized element")
   636  (assert_trap (invoke "check_t1" (i32.const 8)) "uninitialized element")
   637  (assert_trap (invoke "check_t1" (i32.const 9)) "uninitialized element")
   638  (assert_trap (invoke "check_t1" (i32.const 10)) "uninitialized element")
   639  (assert_return (invoke "check_t1" (i32.const 11)) (i32.const 6))
   640  (assert_return (invoke "check_t1" (i32.const 12)) (i32.const 3))
   641  (assert_return (invoke "check_t1" (i32.const 13)) (i32.const 2))
   642  (assert_return (invoke "check_t1" (i32.const 14)) (i32.const 5))
   643  (assert_return (invoke "check_t1" (i32.const 15)) (i32.const 7))
   644  (assert_trap (invoke "check_t1" (i32.const 16)) "uninitialized element")
   645  (assert_trap (invoke "check_t1" (i32.const 17)) "uninitialized element")
   646  (assert_trap (invoke "check_t1" (i32.const 18)) "uninitialized element")
   647  (assert_trap (invoke "check_t1" (i32.const 19)) "uninitialized element")
   648  (assert_trap (invoke "check_t1" (i32.const 20)) "uninitialized element")
   649  (assert_trap (invoke "check_t1" (i32.const 21)) "uninitialized element")
   650  (assert_trap (invoke "check_t1" (i32.const 22)) "uninitialized element")
   651  (assert_trap (invoke "check_t1" (i32.const 23)) "uninitialized element")
   652  (assert_trap (invoke "check_t1" (i32.const 24)) "uninitialized element")
   653  (assert_trap (invoke "check_t1" (i32.const 25)) "uninitialized element")
   654  (assert_trap (invoke "check_t1" (i32.const 26)) "uninitialized element")
   655  (assert_trap (invoke "check_t1" (i32.const 27)) "uninitialized element")
   656  (assert_trap (invoke "check_t1" (i32.const 28)) "uninitialized element")
   657  (assert_trap (invoke "check_t1" (i32.const 29)) "uninitialized element")
   658  
   659  (module
   660    (type (func (result i32)))  ;; type #0
   661    (import "a" "ef0" (func (result i32)))    ;; index 0
   662    (import "a" "ef1" (func (result i32)))
   663    (import "a" "ef2" (func (result i32)))
   664    (import "a" "ef3" (func (result i32)))
   665    (import "a" "ef4" (func (result i32)))    ;; index 4
   666    (table $t0 30 30 funcref)
   667    (table $t1 30 30 funcref)
   668    (elem (table $t0) (i32.const 2) func 3 1 4 1)
   669    (elem funcref
   670      (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
   671    (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
   672    (elem funcref
   673      (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
   674    (elem (table $t1) (i32.const 3) func 1 3 1 4)
   675    (elem (table $t1) (i32.const 11) func 6 3 2 5 7)
   676    (func (result i32) (i32.const 5))  ;; index 5
   677    (func (result i32) (i32.const 6))
   678    (func (result i32) (i32.const 7))
   679    (func (result i32) (i32.const 8))
   680    (func (result i32) (i32.const 9))  ;; index 9
   681    (func (export "test")
   682      (table.copy $t0 $t0 (i32.const 12) (i32.const 10) (i32.const 7)))
   683    (func (export "check_t0") (param i32) (result i32)
   684      (call_indirect $t0 (type 0) (local.get 0)))
   685    (func (export "check_t1") (param i32) (result i32)
   686      (call_indirect $t1 (type 0) (local.get 0)))
   687  )
   688  
   689  (invoke "test")
   690  (assert_trap (invoke "check_t0" (i32.const 0)) "uninitialized element")
   691  (assert_trap (invoke "check_t0" (i32.const 1)) "uninitialized element")
   692  (assert_return (invoke "check_t0" (i32.const 2)) (i32.const 3))
   693  (assert_return (invoke "check_t0" (i32.const 3)) (i32.const 1))
   694  (assert_return (invoke "check_t0" (i32.const 4)) (i32.const 4))
   695  (assert_return (invoke "check_t0" (i32.const 5)) (i32.const 1))
   696  (assert_trap (invoke "check_t0" (i32.const 6)) "uninitialized element")
   697  (assert_trap (invoke "check_t0" (i32.const 7)) "uninitialized element")
   698  (assert_trap (invoke "check_t0" (i32.const 8)) "uninitialized element")
   699  (assert_trap (invoke "check_t0" (i32.const 9)) "uninitialized element")
   700  (assert_trap (invoke "check_t0" (i32.const 10)) "uninitialized element")
   701  (assert_trap (invoke "check_t0" (i32.const 11)) "uninitialized element")
   702  (assert_trap (invoke "check_t0" (i32.const 12)) "uninitialized element")
   703  (assert_trap (invoke "check_t0" (i32.const 13)) "uninitialized element")
   704  (assert_return (invoke "check_t0" (i32.const 14)) (i32.const 7))
   705  (assert_return (invoke "check_t0" (i32.const 15)) (i32.const 5))
   706  (assert_return (invoke "check_t0" (i32.const 16)) (i32.const 2))
   707  (assert_return (invoke "check_t0" (i32.const 17)) (i32.const 3))
   708  (assert_return (invoke "check_t0" (i32.const 18)) (i32.const 6))
   709  (assert_trap (invoke "check_t0" (i32.const 19)) "uninitialized element")
   710  (assert_trap (invoke "check_t0" (i32.const 20)) "uninitialized element")
   711  (assert_trap (invoke "check_t0" (i32.const 21)) "uninitialized element")
   712  (assert_trap (invoke "check_t0" (i32.const 22)) "uninitialized element")
   713  (assert_trap (invoke "check_t0" (i32.const 23)) "uninitialized element")
   714  (assert_trap (invoke "check_t0" (i32.const 24)) "uninitialized element")
   715  (assert_trap (invoke "check_t0" (i32.const 25)) "uninitialized element")
   716  (assert_trap (invoke "check_t0" (i32.const 26)) "uninitialized element")
   717  (assert_trap (invoke "check_t0" (i32.const 27)) "uninitialized element")
   718  (assert_trap (invoke "check_t0" (i32.const 28)) "uninitialized element")
   719  (assert_trap (invoke "check_t0" (i32.const 29)) "uninitialized element")
   720  (assert_trap (invoke "check_t1" (i32.const 0)) "uninitialized element")
   721  (assert_trap (invoke "check_t1" (i32.const 1)) "uninitialized element")
   722  (assert_trap (invoke "check_t1" (i32.const 2)) "uninitialized element")
   723  (assert_return (invoke "check_t1" (i32.const 3)) (i32.const 1))
   724  (assert_return (invoke "check_t1" (i32.const 4)) (i32.const 3))
   725  (assert_return (invoke "check_t1" (i32.const 5)) (i32.const 1))
   726  (assert_return (invoke "check_t1" (i32.const 6)) (i32.const 4))
   727  (assert_trap (invoke "check_t1" (i32.const 7)) "uninitialized element")
   728  (assert_trap (invoke "check_t1" (i32.const 8)) "uninitialized element")
   729  (assert_trap (invoke "check_t1" (i32.const 9)) "uninitialized element")
   730  (assert_trap (invoke "check_t1" (i32.const 10)) "uninitialized element")
   731  (assert_return (invoke "check_t1" (i32.const 11)) (i32.const 6))
   732  (assert_return (invoke "check_t1" (i32.const 12)) (i32.const 3))
   733  (assert_return (invoke "check_t1" (i32.const 13)) (i32.const 2))
   734  (assert_return (invoke "check_t1" (i32.const 14)) (i32.const 5))
   735  (assert_return (invoke "check_t1" (i32.const 15)) (i32.const 7))
   736  (assert_trap (invoke "check_t1" (i32.const 16)) "uninitialized element")
   737  (assert_trap (invoke "check_t1" (i32.const 17)) "uninitialized element")
   738  (assert_trap (invoke "check_t1" (i32.const 18)) "uninitialized element")
   739  (assert_trap (invoke "check_t1" (i32.const 19)) "uninitialized element")
   740  (assert_trap (invoke "check_t1" (i32.const 20)) "uninitialized element")
   741  (assert_trap (invoke "check_t1" (i32.const 21)) "uninitialized element")
   742  (assert_trap (invoke "check_t1" (i32.const 22)) "uninitialized element")
   743  (assert_trap (invoke "check_t1" (i32.const 23)) "uninitialized element")
   744  (assert_trap (invoke "check_t1" (i32.const 24)) "uninitialized element")
   745  (assert_trap (invoke "check_t1" (i32.const 25)) "uninitialized element")
   746  (assert_trap (invoke "check_t1" (i32.const 26)) "uninitialized element")
   747  (assert_trap (invoke "check_t1" (i32.const 27)) "uninitialized element")
   748  (assert_trap (invoke "check_t1" (i32.const 28)) "uninitialized element")
   749  (assert_trap (invoke "check_t1" (i32.const 29)) "uninitialized element")
   750  
   751  (module
   752    (type (func (result i32)))  ;; type #0
   753    (import "a" "ef0" (func (result i32)))    ;; index 0
   754    (import "a" "ef1" (func (result i32)))
   755    (import "a" "ef2" (func (result i32)))
   756    (import "a" "ef3" (func (result i32)))
   757    (import "a" "ef4" (func (result i32)))    ;; index 4
   758    (table $t0 30 30 funcref)
   759    (table $t1 30 30 funcref)
   760    (elem (table $t0) (i32.const 2) func 3 1 4 1)
   761    (elem funcref
   762      (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
   763    (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
   764    (elem funcref
   765      (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
   766    (elem (table $t1) (i32.const 3) func 1 3 1 4)
   767    (elem (table $t1) (i32.const 11) func 6 3 2 5 7)
   768    (func (result i32) (i32.const 5))  ;; index 5
   769    (func (result i32) (i32.const 6))
   770    (func (result i32) (i32.const 7))
   771    (func (result i32) (i32.const 8))
   772    (func (result i32) (i32.const 9))  ;; index 9
   773    (func (export "test")
   774      (table.copy $t1 $t0 (i32.const 10) (i32.const 0) (i32.const 20)))
   775    (func (export "check_t0") (param i32) (result i32)
   776      (call_indirect $t0 (type 0) (local.get 0)))
   777    (func (export "check_t1") (param i32) (result i32)
   778      (call_indirect $t1 (type 0) (local.get 0)))
   779  )
   780  
   781  (invoke "test")
   782  (assert_trap (invoke "check_t0" (i32.const 0)) "uninitialized element")
   783  (assert_trap (invoke "check_t0" (i32.const 1)) "uninitialized element")
   784  (assert_return (invoke "check_t0" (i32.const 2)) (i32.const 3))
   785  (assert_return (invoke "check_t0" (i32.const 3)) (i32.const 1))
   786  (assert_return (invoke "check_t0" (i32.const 4)) (i32.const 4))
   787  (assert_return (invoke "check_t0" (i32.const 5)) (i32.const 1))
   788  (assert_trap (invoke "check_t0" (i32.const 6)) "uninitialized element")
   789  (assert_trap (invoke "check_t0" (i32.const 7)) "uninitialized element")
   790  (assert_trap (invoke "check_t0" (i32.const 8)) "uninitialized element")
   791  (assert_trap (invoke "check_t0" (i32.const 9)) "uninitialized element")
   792  (assert_trap (invoke "check_t0" (i32.const 10)) "uninitialized element")
   793  (assert_trap (invoke "check_t0" (i32.const 11)) "uninitialized element")
   794  (assert_return (invoke "check_t0" (i32.const 12)) (i32.const 7))
   795  (assert_return (invoke "check_t0" (i32.const 13)) (i32.const 5))
   796  (assert_return (invoke "check_t0" (i32.const 14)) (i32.const 2))
   797  (assert_return (invoke "check_t0" (i32.const 15)) (i32.const 3))
   798  (assert_return (invoke "check_t0" (i32.const 16)) (i32.const 6))
   799  (assert_trap (invoke "check_t0" (i32.const 17)) "uninitialized element")
   800  (assert_trap (invoke "check_t0" (i32.const 18)) "uninitialized element")
   801  (assert_trap (invoke "check_t0" (i32.const 19)) "uninitialized element")
   802  (assert_trap (invoke "check_t0" (i32.const 20)) "uninitialized element")
   803  (assert_trap (invoke "check_t0" (i32.const 21)) "uninitialized element")
   804  (assert_trap (invoke "check_t0" (i32.const 22)) "uninitialized element")
   805  (assert_trap (invoke "check_t0" (i32.const 23)) "uninitialized element")
   806  (assert_trap (invoke "check_t0" (i32.const 24)) "uninitialized element")
   807  (assert_trap (invoke "check_t0" (i32.const 25)) "uninitialized element")
   808  (assert_trap (invoke "check_t0" (i32.const 26)) "uninitialized element")
   809  (assert_trap (invoke "check_t0" (i32.const 27)) "uninitialized element")
   810  (assert_trap (invoke "check_t0" (i32.const 28)) "uninitialized element")
   811  (assert_trap (invoke "check_t0" (i32.const 29)) "uninitialized element")
   812  (assert_trap (invoke "check_t1" (i32.const 0)) "uninitialized element")
   813  (assert_trap (invoke "check_t1" (i32.const 1)) "uninitialized element")
   814  (assert_trap (invoke "check_t1" (i32.const 2)) "uninitialized element")
   815  (assert_return (invoke "check_t1" (i32.const 3)) (i32.const 1))
   816  (assert_return (invoke "check_t1" (i32.const 4)) (i32.const 3))
   817  (assert_return (invoke "check_t1" (i32.const 5)) (i32.const 1))
   818  (assert_return (invoke "check_t1" (i32.const 6)) (i32.const 4))
   819  (assert_trap (invoke "check_t1" (i32.const 7)) "uninitialized element")
   820  (assert_trap (invoke "check_t1" (i32.const 8)) "uninitialized element")
   821  (assert_trap (invoke "check_t1" (i32.const 9)) "uninitialized element")
   822  (assert_trap (invoke "check_t1" (i32.const 10)) "uninitialized element")
   823  (assert_trap (invoke "check_t1" (i32.const 11)) "uninitialized element")
   824  (assert_return (invoke "check_t1" (i32.const 12)) (i32.const 3))
   825  (assert_return (invoke "check_t1" (i32.const 13)) (i32.const 1))
   826  (assert_return (invoke "check_t1" (i32.const 14)) (i32.const 4))
   827  (assert_return (invoke "check_t1" (i32.const 15)) (i32.const 1))
   828  (assert_trap (invoke "check_t1" (i32.const 16)) "uninitialized element")
   829  (assert_trap (invoke "check_t1" (i32.const 17)) "uninitialized element")
   830  (assert_trap (invoke "check_t1" (i32.const 18)) "uninitialized element")
   831  (assert_trap (invoke "check_t1" (i32.const 19)) "uninitialized element")
   832  (assert_trap (invoke "check_t1" (i32.const 20)) "uninitialized element")
   833  (assert_trap (invoke "check_t1" (i32.const 21)) "uninitialized element")
   834  (assert_return (invoke "check_t1" (i32.const 22)) (i32.const 7))
   835  (assert_return (invoke "check_t1" (i32.const 23)) (i32.const 5))
   836  (assert_return (invoke "check_t1" (i32.const 24)) (i32.const 2))
   837  (assert_return (invoke "check_t1" (i32.const 25)) (i32.const 3))
   838  (assert_return (invoke "check_t1" (i32.const 26)) (i32.const 6))
   839  (assert_trap (invoke "check_t1" (i32.const 27)) "uninitialized element")
   840  (assert_trap (invoke "check_t1" (i32.const 28)) "uninitialized element")
   841  (assert_trap (invoke "check_t1" (i32.const 29)) "uninitialized element")
   842  
   843  (module
   844    (type (func (result i32)))  ;; type #0
   845    (import "a" "ef0" (func (result i32)))    ;; index 0
   846    (import "a" "ef1" (func (result i32)))
   847    (import "a" "ef2" (func (result i32)))
   848    (import "a" "ef3" (func (result i32)))
   849    (import "a" "ef4" (func (result i32)))    ;; index 4
   850    (table $t0 30 30 funcref)
   851    (table $t1 30 30 funcref)
   852    (elem (table $t1) (i32.const 2) func 3 1 4 1)
   853    (elem funcref
   854      (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
   855    (elem (table $t1) (i32.const 12) func 7 5 2 3 6)
   856    (elem funcref
   857      (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
   858    (elem (table $t0) (i32.const 3) func 1 3 1 4)
   859    (elem (table $t0) (i32.const 11) func 6 3 2 5 7)
   860    (func (result i32) (i32.const 5))  ;; index 5
   861    (func (result i32) (i32.const 6))
   862    (func (result i32) (i32.const 7))
   863    (func (result i32) (i32.const 8))
   864    (func (result i32) (i32.const 9))  ;; index 9
   865    (func (export "test")
   866      (nop))
   867    (func (export "check_t0") (param i32) (result i32)
   868      (call_indirect $t1 (type 0) (local.get 0)))
   869    (func (export "check_t1") (param i32) (result i32)
   870      (call_indirect $t0 (type 0) (local.get 0)))
   871  )
   872  
   873  (invoke "test")
   874  (assert_trap (invoke "check_t0" (i32.const 0)) "uninitialized element")
   875  (assert_trap (invoke "check_t0" (i32.const 1)) "uninitialized element")
   876  (assert_return (invoke "check_t0" (i32.const 2)) (i32.const 3))
   877  (assert_return (invoke "check_t0" (i32.const 3)) (i32.const 1))
   878  (assert_return (invoke "check_t0" (i32.const 4)) (i32.const 4))
   879  (assert_return (invoke "check_t0" (i32.const 5)) (i32.const 1))
   880  (assert_trap (invoke "check_t0" (i32.const 6)) "uninitialized element")
   881  (assert_trap (invoke "check_t0" (i32.const 7)) "uninitialized element")
   882  (assert_trap (invoke "check_t0" (i32.const 8)) "uninitialized element")
   883  (assert_trap (invoke "check_t0" (i32.const 9)) "uninitialized element")
   884  (assert_trap (invoke "check_t0" (i32.const 10)) "uninitialized element")
   885  (assert_trap (invoke "check_t0" (i32.const 11)) "uninitialized element")
   886  (assert_return (invoke "check_t0" (i32.const 12)) (i32.const 7))
   887  (assert_return (invoke "check_t0" (i32.const 13)) (i32.const 5))
   888  (assert_return (invoke "check_t0" (i32.const 14)) (i32.const 2))
   889  (assert_return (invoke "check_t0" (i32.const 15)) (i32.const 3))
   890  (assert_return (invoke "check_t0" (i32.const 16)) (i32.const 6))
   891  (assert_trap (invoke "check_t0" (i32.const 17)) "uninitialized element")
   892  (assert_trap (invoke "check_t0" (i32.const 18)) "uninitialized element")
   893  (assert_trap (invoke "check_t0" (i32.const 19)) "uninitialized element")
   894  (assert_trap (invoke "check_t0" (i32.const 20)) "uninitialized element")
   895  (assert_trap (invoke "check_t0" (i32.const 21)) "uninitialized element")
   896  (assert_trap (invoke "check_t0" (i32.const 22)) "uninitialized element")
   897  (assert_trap (invoke "check_t0" (i32.const 23)) "uninitialized element")
   898  (assert_trap (invoke "check_t0" (i32.const 24)) "uninitialized element")
   899  (assert_trap (invoke "check_t0" (i32.const 25)) "uninitialized element")
   900  (assert_trap (invoke "check_t0" (i32.const 26)) "uninitialized element")
   901  (assert_trap (invoke "check_t0" (i32.const 27)) "uninitialized element")
   902  (assert_trap (invoke "check_t0" (i32.const 28)) "uninitialized element")
   903  (assert_trap (invoke "check_t0" (i32.const 29)) "uninitialized element")
   904  (assert_trap (invoke "check_t1" (i32.const 0)) "uninitialized element")
   905  (assert_trap (invoke "check_t1" (i32.const 1)) "uninitialized element")
   906  (assert_trap (invoke "check_t1" (i32.const 2)) "uninitialized element")
   907  (assert_return (invoke "check_t1" (i32.const 3)) (i32.const 1))
   908  (assert_return (invoke "check_t1" (i32.const 4)) (i32.const 3))
   909  (assert_return (invoke "check_t1" (i32.const 5)) (i32.const 1))
   910  (assert_return (invoke "check_t1" (i32.const 6)) (i32.const 4))
   911  (assert_trap (invoke "check_t1" (i32.const 7)) "uninitialized element")
   912  (assert_trap (invoke "check_t1" (i32.const 8)) "uninitialized element")
   913  (assert_trap (invoke "check_t1" (i32.const 9)) "uninitialized element")
   914  (assert_trap (invoke "check_t1" (i32.const 10)) "uninitialized element")
   915  (assert_return (invoke "check_t1" (i32.const 11)) (i32.const 6))
   916  (assert_return (invoke "check_t1" (i32.const 12)) (i32.const 3))
   917  (assert_return (invoke "check_t1" (i32.const 13)) (i32.const 2))
   918  (assert_return (invoke "check_t1" (i32.const 14)) (i32.const 5))
   919  (assert_return (invoke "check_t1" (i32.const 15)) (i32.const 7))
   920  (assert_trap (invoke "check_t1" (i32.const 16)) "uninitialized element")
   921  (assert_trap (invoke "check_t1" (i32.const 17)) "uninitialized element")
   922  (assert_trap (invoke "check_t1" (i32.const 18)) "uninitialized element")
   923  (assert_trap (invoke "check_t1" (i32.const 19)) "uninitialized element")
   924  (assert_trap (invoke "check_t1" (i32.const 20)) "uninitialized element")
   925  (assert_trap (invoke "check_t1" (i32.const 21)) "uninitialized element")
   926  (assert_trap (invoke "check_t1" (i32.const 22)) "uninitialized element")
   927  (assert_trap (invoke "check_t1" (i32.const 23)) "uninitialized element")
   928  (assert_trap (invoke "check_t1" (i32.const 24)) "uninitialized element")
   929  (assert_trap (invoke "check_t1" (i32.const 25)) "uninitialized element")
   930  (assert_trap (invoke "check_t1" (i32.const 26)) "uninitialized element")
   931  (assert_trap (invoke "check_t1" (i32.const 27)) "uninitialized element")
   932  (assert_trap (invoke "check_t1" (i32.const 28)) "uninitialized element")
   933  (assert_trap (invoke "check_t1" (i32.const 29)) "uninitialized element")
   934  
   935  (module
   936    (type (func (result i32)))  ;; type #0
   937    (import "a" "ef0" (func (result i32)))    ;; index 0
   938    (import "a" "ef1" (func (result i32)))
   939    (import "a" "ef2" (func (result i32)))
   940    (import "a" "ef3" (func (result i32)))
   941    (import "a" "ef4" (func (result i32)))    ;; index 4
   942    (table $t0 30 30 funcref)
   943    (table $t1 30 30 funcref)
   944    (elem (table $t1) (i32.const 2) func 3 1 4 1)
   945    (elem funcref
   946      (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
   947    (elem (table $t1) (i32.const 12) func 7 5 2 3 6)
   948    (elem funcref
   949      (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
   950    (elem (table $t0) (i32.const 3) func 1 3 1 4)
   951    (elem (table $t0) (i32.const 11) func 6 3 2 5 7)
   952    (func (result i32) (i32.const 5))  ;; index 5
   953    (func (result i32) (i32.const 6))
   954    (func (result i32) (i32.const 7))
   955    (func (result i32) (i32.const 8))
   956    (func (result i32) (i32.const 9))  ;; index 9
   957    (func (export "test")
   958      (table.copy $t1 $t1 (i32.const 13) (i32.const 2) (i32.const 3)))
   959    (func (export "check_t0") (param i32) (result i32)
   960      (call_indirect $t1 (type 0) (local.get 0)))
   961    (func (export "check_t1") (param i32) (result i32)
   962      (call_indirect $t0 (type 0) (local.get 0)))
   963  )
   964  
   965  (invoke "test")
   966  (assert_trap (invoke "check_t0" (i32.const 0)) "uninitialized element")
   967  (assert_trap (invoke "check_t0" (i32.const 1)) "uninitialized element")
   968  (assert_return (invoke "check_t0" (i32.const 2)) (i32.const 3))
   969  (assert_return (invoke "check_t0" (i32.const 3)) (i32.const 1))
   970  (assert_return (invoke "check_t0" (i32.const 4)) (i32.const 4))
   971  (assert_return (invoke "check_t0" (i32.const 5)) (i32.const 1))
   972  (assert_trap (invoke "check_t0" (i32.const 6)) "uninitialized element")
   973  (assert_trap (invoke "check_t0" (i32.const 7)) "uninitialized element")
   974  (assert_trap (invoke "check_t0" (i32.const 8)) "uninitialized element")
   975  (assert_trap (invoke "check_t0" (i32.const 9)) "uninitialized element")
   976  (assert_trap (invoke "check_t0" (i32.const 10)) "uninitialized element")
   977  (assert_trap (invoke "check_t0" (i32.const 11)) "uninitialized element")
   978  (assert_return (invoke "check_t0" (i32.const 12)) (i32.const 7))
   979  (assert_return (invoke "check_t0" (i32.const 13)) (i32.const 3))
   980  (assert_return (invoke "check_t0" (i32.const 14)) (i32.const 1))
   981  (assert_return (invoke "check_t0" (i32.const 15)) (i32.const 4))
   982  (assert_return (invoke "check_t0" (i32.const 16)) (i32.const 6))
   983  (assert_trap (invoke "check_t0" (i32.const 17)) "uninitialized element")
   984  (assert_trap (invoke "check_t0" (i32.const 18)) "uninitialized element")
   985  (assert_trap (invoke "check_t0" (i32.const 19)) "uninitialized element")
   986  (assert_trap (invoke "check_t0" (i32.const 20)) "uninitialized element")
   987  (assert_trap (invoke "check_t0" (i32.const 21)) "uninitialized element")
   988  (assert_trap (invoke "check_t0" (i32.const 22)) "uninitialized element")
   989  (assert_trap (invoke "check_t0" (i32.const 23)) "uninitialized element")
   990  (assert_trap (invoke "check_t0" (i32.const 24)) "uninitialized element")
   991  (assert_trap (invoke "check_t0" (i32.const 25)) "uninitialized element")
   992  (assert_trap (invoke "check_t0" (i32.const 26)) "uninitialized element")
   993  (assert_trap (invoke "check_t0" (i32.const 27)) "uninitialized element")
   994  (assert_trap (invoke "check_t0" (i32.const 28)) "uninitialized element")
   995  (assert_trap (invoke "check_t0" (i32.const 29)) "uninitialized element")
   996  (assert_trap (invoke "check_t1" (i32.const 0)) "uninitialized element")
   997  (assert_trap (invoke "check_t1" (i32.const 1)) "uninitialized element")
   998  (assert_trap (invoke "check_t1" (i32.const 2)) "uninitialized element")
   999  (assert_return (invoke "check_t1" (i32.const 3)) (i32.const 1))
  1000  (assert_return (invoke "check_t1" (i32.const 4)) (i32.const 3))
  1001  (assert_return (invoke "check_t1" (i32.const 5)) (i32.const 1))
  1002  (assert_return (invoke "check_t1" (i32.const 6)) (i32.const 4))
  1003  (assert_trap (invoke "check_t1" (i32.const 7)) "uninitialized element")
  1004  (assert_trap (invoke "check_t1" (i32.const 8)) "uninitialized element")
  1005  (assert_trap (invoke "check_t1" (i32.const 9)) "uninitialized element")
  1006  (assert_trap (invoke "check_t1" (i32.const 10)) "uninitialized element")
  1007  (assert_return (invoke "check_t1" (i32.const 11)) (i32.const 6))
  1008  (assert_return (invoke "check_t1" (i32.const 12)) (i32.const 3))
  1009  (assert_return (invoke "check_t1" (i32.const 13)) (i32.const 2))
  1010  (assert_return (invoke "check_t1" (i32.const 14)) (i32.const 5))
  1011  (assert_return (invoke "check_t1" (i32.const 15)) (i32.const 7))
  1012  (assert_trap (invoke "check_t1" (i32.const 16)) "uninitialized element")
  1013  (assert_trap (invoke "check_t1" (i32.const 17)) "uninitialized element")
  1014  (assert_trap (invoke "check_t1" (i32.const 18)) "uninitialized element")
  1015  (assert_trap (invoke "check_t1" (i32.const 19)) "uninitialized element")
  1016  (assert_trap (invoke "check_t1" (i32.const 20)) "uninitialized element")
  1017  (assert_trap (invoke "check_t1" (i32.const 21)) "uninitialized element")
  1018  (assert_trap (invoke "check_t1" (i32.const 22)) "uninitialized element")
  1019  (assert_trap (invoke "check_t1" (i32.const 23)) "uninitialized element")
  1020  (assert_trap (invoke "check_t1" (i32.const 24)) "uninitialized element")
  1021  (assert_trap (invoke "check_t1" (i32.const 25)) "uninitialized element")
  1022  (assert_trap (invoke "check_t1" (i32.const 26)) "uninitialized element")
  1023  (assert_trap (invoke "check_t1" (i32.const 27)) "uninitialized element")
  1024  (assert_trap (invoke "check_t1" (i32.const 28)) "uninitialized element")
  1025  (assert_trap (invoke "check_t1" (i32.const 29)) "uninitialized element")
  1026  
  1027  (module
  1028    (type (func (result i32)))  ;; type #0
  1029    (import "a" "ef0" (func (result i32)))    ;; index 0
  1030    (import "a" "ef1" (func (result i32)))
  1031    (import "a" "ef2" (func (result i32)))
  1032    (import "a" "ef3" (func (result i32)))
  1033    (import "a" "ef4" (func (result i32)))    ;; index 4
  1034    (table $t0 30 30 funcref)
  1035    (table $t1 30 30 funcref)
  1036    (elem (table $t1) (i32.const 2) func 3 1 4 1)
  1037    (elem funcref
  1038      (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
  1039    (elem (table $t1) (i32.const 12) func 7 5 2 3 6)
  1040    (elem funcref
  1041      (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
  1042    (elem (table $t0) (i32.const 3) func 1 3 1 4)
  1043    (elem (table $t0) (i32.const 11) func 6 3 2 5 7)
  1044    (func (result i32) (i32.const 5))  ;; index 5
  1045    (func (result i32) (i32.const 6))
  1046    (func (result i32) (i32.const 7))
  1047    (func (result i32) (i32.const 8))
  1048    (func (result i32) (i32.const 9))  ;; index 9
  1049    (func (export "test")
  1050      (table.copy $t1 $t1 (i32.const 25) (i32.const 15) (i32.const 2)))
  1051    (func (export "check_t0") (param i32) (result i32)
  1052      (call_indirect $t1 (type 0) (local.get 0)))
  1053    (func (export "check_t1") (param i32) (result i32)
  1054      (call_indirect $t0 (type 0) (local.get 0)))
  1055  )
  1056  
  1057  (invoke "test")
  1058  (assert_trap (invoke "check_t0" (i32.const 0)) "uninitialized element")
  1059  (assert_trap (invoke "check_t0" (i32.const 1)) "uninitialized element")
  1060  (assert_return (invoke "check_t0" (i32.const 2)) (i32.const 3))
  1061  (assert_return (invoke "check_t0" (i32.const 3)) (i32.const 1))
  1062  (assert_return (invoke "check_t0" (i32.const 4)) (i32.const 4))
  1063  (assert_return (invoke "check_t0" (i32.const 5)) (i32.const 1))
  1064  (assert_trap (invoke "check_t0" (i32.const 6)) "uninitialized element")
  1065  (assert_trap (invoke "check_t0" (i32.const 7)) "uninitialized element")
  1066  (assert_trap (invoke "check_t0" (i32.const 8)) "uninitialized element")
  1067  (assert_trap (invoke "check_t0" (i32.const 9)) "uninitialized element")
  1068  (assert_trap (invoke "check_t0" (i32.const 10)) "uninitialized element")
  1069  (assert_trap (invoke "check_t0" (i32.const 11)) "uninitialized element")
  1070  (assert_return (invoke "check_t0" (i32.const 12)) (i32.const 7))
  1071  (assert_return (invoke "check_t0" (i32.const 13)) (i32.const 5))
  1072  (assert_return (invoke "check_t0" (i32.const 14)) (i32.const 2))
  1073  (assert_return (invoke "check_t0" (i32.const 15)) (i32.const 3))
  1074  (assert_return (invoke "check_t0" (i32.const 16)) (i32.const 6))
  1075  (assert_trap (invoke "check_t0" (i32.const 17)) "uninitialized element")
  1076  (assert_trap (invoke "check_t0" (i32.const 18)) "uninitialized element")
  1077  (assert_trap (invoke "check_t0" (i32.const 19)) "uninitialized element")
  1078  (assert_trap (invoke "check_t0" (i32.const 20)) "uninitialized element")
  1079  (assert_trap (invoke "check_t0" (i32.const 21)) "uninitialized element")
  1080  (assert_trap (invoke "check_t0" (i32.const 22)) "uninitialized element")
  1081  (assert_trap (invoke "check_t0" (i32.const 23)) "uninitialized element")
  1082  (assert_trap (invoke "check_t0" (i32.const 24)) "uninitialized element")
  1083  (assert_return (invoke "check_t0" (i32.const 25)) (i32.const 3))
  1084  (assert_return (invoke "check_t0" (i32.const 26)) (i32.const 6))
  1085  (assert_trap (invoke "check_t0" (i32.const 27)) "uninitialized element")
  1086  (assert_trap (invoke "check_t0" (i32.const 28)) "uninitialized element")
  1087  (assert_trap (invoke "check_t0" (i32.const 29)) "uninitialized element")
  1088  (assert_trap (invoke "check_t1" (i32.const 0)) "uninitialized element")
  1089  (assert_trap (invoke "check_t1" (i32.const 1)) "uninitialized element")
  1090  (assert_trap (invoke "check_t1" (i32.const 2)) "uninitialized element")
  1091  (assert_return (invoke "check_t1" (i32.const 3)) (i32.const 1))
  1092  (assert_return (invoke "check_t1" (i32.const 4)) (i32.const 3))
  1093  (assert_return (invoke "check_t1" (i32.const 5)) (i32.const 1))
  1094  (assert_return (invoke "check_t1" (i32.const 6)) (i32.const 4))
  1095  (assert_trap (invoke "check_t1" (i32.const 7)) "uninitialized element")
  1096  (assert_trap (invoke "check_t1" (i32.const 8)) "uninitialized element")
  1097  (assert_trap (invoke "check_t1" (i32.const 9)) "uninitialized element")
  1098  (assert_trap (invoke "check_t1" (i32.const 10)) "uninitialized element")
  1099  (assert_return (invoke "check_t1" (i32.const 11)) (i32.const 6))
  1100  (assert_return (invoke "check_t1" (i32.const 12)) (i32.const 3))
  1101  (assert_return (invoke "check_t1" (i32.const 13)) (i32.const 2))
  1102  (assert_return (invoke "check_t1" (i32.const 14)) (i32.const 5))
  1103  (assert_return (invoke "check_t1" (i32.const 15)) (i32.const 7))
  1104  (assert_trap (invoke "check_t1" (i32.const 16)) "uninitialized element")
  1105  (assert_trap (invoke "check_t1" (i32.const 17)) "uninitialized element")
  1106  (assert_trap (invoke "check_t1" (i32.const 18)) "uninitialized element")
  1107  (assert_trap (invoke "check_t1" (i32.const 19)) "uninitialized element")
  1108  (assert_trap (invoke "check_t1" (i32.const 20)) "uninitialized element")
  1109  (assert_trap (invoke "check_t1" (i32.const 21)) "uninitialized element")
  1110  (assert_trap (invoke "check_t1" (i32.const 22)) "uninitialized element")
  1111  (assert_trap (invoke "check_t1" (i32.const 23)) "uninitialized element")
  1112  (assert_trap (invoke "check_t1" (i32.const 24)) "uninitialized element")
  1113  (assert_trap (invoke "check_t1" (i32.const 25)) "uninitialized element")
  1114  (assert_trap (invoke "check_t1" (i32.const 26)) "uninitialized element")
  1115  (assert_trap (invoke "check_t1" (i32.const 27)) "uninitialized element")
  1116  (assert_trap (invoke "check_t1" (i32.const 28)) "uninitialized element")
  1117  (assert_trap (invoke "check_t1" (i32.const 29)) "uninitialized element")
  1118  
  1119  (module
  1120    (type (func (result i32)))  ;; type #0
  1121    (import "a" "ef0" (func (result i32)))    ;; index 0
  1122    (import "a" "ef1" (func (result i32)))
  1123    (import "a" "ef2" (func (result i32)))
  1124    (import "a" "ef3" (func (result i32)))
  1125    (import "a" "ef4" (func (result i32)))    ;; index 4
  1126    (table $t0 30 30 funcref)
  1127    (table $t1 30 30 funcref)
  1128    (elem (table $t1) (i32.const 2) func 3 1 4 1)
  1129    (elem funcref
  1130      (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
  1131    (elem (table $t1) (i32.const 12) func 7 5 2 3 6)
  1132    (elem funcref
  1133      (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
  1134    (elem (table $t0) (i32.const 3) func 1 3 1 4)
  1135    (elem (table $t0) (i32.const 11) func 6 3 2 5 7)
  1136    (func (result i32) (i32.const 5))  ;; index 5
  1137    (func (result i32) (i32.const 6))
  1138    (func (result i32) (i32.const 7))
  1139    (func (result i32) (i32.const 8))
  1140    (func (result i32) (i32.const 9))  ;; index 9
  1141    (func (export "test")
  1142      (table.copy $t1 $t1 (i32.const 13) (i32.const 25) (i32.const 3)))
  1143    (func (export "check_t0") (param i32) (result i32)
  1144      (call_indirect $t1 (type 0) (local.get 0)))
  1145    (func (export "check_t1") (param i32) (result i32)
  1146      (call_indirect $t0 (type 0) (local.get 0)))
  1147  )
  1148  
  1149  (invoke "test")
  1150  (assert_trap (invoke "check_t0" (i32.const 0)) "uninitialized element")
  1151  (assert_trap (invoke "check_t0" (i32.const 1)) "uninitialized element")
  1152  (assert_return (invoke "check_t0" (i32.const 2)) (i32.const 3))
  1153  (assert_return (invoke "check_t0" (i32.const 3)) (i32.const 1))
  1154  (assert_return (invoke "check_t0" (i32.const 4)) (i32.const 4))
  1155  (assert_return (invoke "check_t0" (i32.const 5)) (i32.const 1))
  1156  (assert_trap (invoke "check_t0" (i32.const 6)) "uninitialized element")
  1157  (assert_trap (invoke "check_t0" (i32.const 7)) "uninitialized element")
  1158  (assert_trap (invoke "check_t0" (i32.const 8)) "uninitialized element")
  1159  (assert_trap (invoke "check_t0" (i32.const 9)) "uninitialized element")
  1160  (assert_trap (invoke "check_t0" (i32.const 10)) "uninitialized element")
  1161  (assert_trap (invoke "check_t0" (i32.const 11)) "uninitialized element")
  1162  (assert_return (invoke "check_t0" (i32.const 12)) (i32.const 7))
  1163  (assert_trap (invoke "check_t0" (i32.const 13)) "uninitialized element")
  1164  (assert_trap (invoke "check_t0" (i32.const 14)) "uninitialized element")
  1165  (assert_trap (invoke "check_t0" (i32.const 15)) "uninitialized element")
  1166  (assert_return (invoke "check_t0" (i32.const 16)) (i32.const 6))
  1167  (assert_trap (invoke "check_t0" (i32.const 17)) "uninitialized element")
  1168  (assert_trap (invoke "check_t0" (i32.const 18)) "uninitialized element")
  1169  (assert_trap (invoke "check_t0" (i32.const 19)) "uninitialized element")
  1170  (assert_trap (invoke "check_t0" (i32.const 20)) "uninitialized element")
  1171  (assert_trap (invoke "check_t0" (i32.const 21)) "uninitialized element")
  1172  (assert_trap (invoke "check_t0" (i32.const 22)) "uninitialized element")
  1173  (assert_trap (invoke "check_t0" (i32.const 23)) "uninitialized element")
  1174  (assert_trap (invoke "check_t0" (i32.const 24)) "uninitialized element")
  1175  (assert_trap (invoke "check_t0" (i32.const 25)) "uninitialized element")
  1176  (assert_trap (invoke "check_t0" (i32.const 26)) "uninitialized element")
  1177  (assert_trap (invoke "check_t0" (i32.const 27)) "uninitialized element")
  1178  (assert_trap (invoke "check_t0" (i32.const 28)) "uninitialized element")
  1179  (assert_trap (invoke "check_t0" (i32.const 29)) "uninitialized element")
  1180  (assert_trap (invoke "check_t1" (i32.const 0)) "uninitialized element")
  1181  (assert_trap (invoke "check_t1" (i32.const 1)) "uninitialized element")
  1182  (assert_trap (invoke "check_t1" (i32.const 2)) "uninitialized element")
  1183  (assert_return (invoke "check_t1" (i32.const 3)) (i32.const 1))
  1184  (assert_return (invoke "check_t1" (i32.const 4)) (i32.const 3))
  1185  (assert_return (invoke "check_t1" (i32.const 5)) (i32.const 1))
  1186  (assert_return (invoke "check_t1" (i32.const 6)) (i32.const 4))
  1187  (assert_trap (invoke "check_t1" (i32.const 7)) "uninitialized element")
  1188  (assert_trap (invoke "check_t1" (i32.const 8)) "uninitialized element")
  1189  (assert_trap (invoke "check_t1" (i32.const 9)) "uninitialized element")
  1190  (assert_trap (invoke "check_t1" (i32.const 10)) "uninitialized element")
  1191  (assert_return (invoke "check_t1" (i32.const 11)) (i32.const 6))
  1192  (assert_return (invoke "check_t1" (i32.const 12)) (i32.const 3))
  1193  (assert_return (invoke "check_t1" (i32.const 13)) (i32.const 2))
  1194  (assert_return (invoke "check_t1" (i32.const 14)) (i32.const 5))
  1195  (assert_return (invoke "check_t1" (i32.const 15)) (i32.const 7))
  1196  (assert_trap (invoke "check_t1" (i32.const 16)) "uninitialized element")
  1197  (assert_trap (invoke "check_t1" (i32.const 17)) "uninitialized element")
  1198  (assert_trap (invoke "check_t1" (i32.const 18)) "uninitialized element")
  1199  (assert_trap (invoke "check_t1" (i32.const 19)) "uninitialized element")
  1200  (assert_trap (invoke "check_t1" (i32.const 20)) "uninitialized element")
  1201  (assert_trap (invoke "check_t1" (i32.const 21)) "uninitialized element")
  1202  (assert_trap (invoke "check_t1" (i32.const 22)) "uninitialized element")
  1203  (assert_trap (invoke "check_t1" (i32.const 23)) "uninitialized element")
  1204  (assert_trap (invoke "check_t1" (i32.const 24)) "uninitialized element")
  1205  (assert_trap (invoke "check_t1" (i32.const 25)) "uninitialized element")
  1206  (assert_trap (invoke "check_t1" (i32.const 26)) "uninitialized element")
  1207  (assert_trap (invoke "check_t1" (i32.const 27)) "uninitialized element")
  1208  (assert_trap (invoke "check_t1" (i32.const 28)) "uninitialized element")
  1209  (assert_trap (invoke "check_t1" (i32.const 29)) "uninitialized element")
  1210  
  1211  (module
  1212    (type (func (result i32)))  ;; type #0
  1213    (import "a" "ef0" (func (result i32)))    ;; index 0
  1214    (import "a" "ef1" (func (result i32)))
  1215    (import "a" "ef2" (func (result i32)))
  1216    (import "a" "ef3" (func (result i32)))
  1217    (import "a" "ef4" (func (result i32)))    ;; index 4
  1218    (table $t0 30 30 funcref)
  1219    (table $t1 30 30 funcref)
  1220    (elem (table $t1) (i32.const 2) func 3 1 4 1)
  1221    (elem funcref
  1222      (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
  1223    (elem (table $t1) (i32.const 12) func 7 5 2 3 6)
  1224    (elem funcref
  1225      (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
  1226    (elem (table $t0) (i32.const 3) func 1 3 1 4)
  1227    (elem (table $t0) (i32.const 11) func 6 3 2 5 7)
  1228    (func (result i32) (i32.const 5))  ;; index 5
  1229    (func (result i32) (i32.const 6))
  1230    (func (result i32) (i32.const 7))
  1231    (func (result i32) (i32.const 8))
  1232    (func (result i32) (i32.const 9))  ;; index 9
  1233    (func (export "test")
  1234      (table.copy $t1 $t1 (i32.const 20) (i32.const 22) (i32.const 4)))
  1235    (func (export "check_t0") (param i32) (result i32)
  1236      (call_indirect $t1 (type 0) (local.get 0)))
  1237    (func (export "check_t1") (param i32) (result i32)
  1238      (call_indirect $t0 (type 0) (local.get 0)))
  1239  )
  1240  
  1241  (invoke "test")
  1242  (assert_trap (invoke "check_t0" (i32.const 0)) "uninitialized element")
  1243  (assert_trap (invoke "check_t0" (i32.const 1)) "uninitialized element")
  1244  (assert_return (invoke "check_t0" (i32.const 2)) (i32.const 3))
  1245  (assert_return (invoke "check_t0" (i32.const 3)) (i32.const 1))
  1246  (assert_return (invoke "check_t0" (i32.const 4)) (i32.const 4))
  1247  (assert_return (invoke "check_t0" (i32.const 5)) (i32.const 1))
  1248  (assert_trap (invoke "check_t0" (i32.const 6)) "uninitialized element")
  1249  (assert_trap (invoke "check_t0" (i32.const 7)) "uninitialized element")
  1250  (assert_trap (invoke "check_t0" (i32.const 8)) "uninitialized element")
  1251  (assert_trap (invoke "check_t0" (i32.const 9)) "uninitialized element")
  1252  (assert_trap (invoke "check_t0" (i32.const 10)) "uninitialized element")
  1253  (assert_trap (invoke "check_t0" (i32.const 11)) "uninitialized element")
  1254  (assert_return (invoke "check_t0" (i32.const 12)) (i32.const 7))
  1255  (assert_return (invoke "check_t0" (i32.const 13)) (i32.const 5))
  1256  (assert_return (invoke "check_t0" (i32.const 14)) (i32.const 2))
  1257  (assert_return (invoke "check_t0" (i32.const 15)) (i32.const 3))
  1258  (assert_return (invoke "check_t0" (i32.const 16)) (i32.const 6))
  1259  (assert_trap (invoke "check_t0" (i32.const 17)) "uninitialized element")
  1260  (assert_trap (invoke "check_t0" (i32.const 18)) "uninitialized element")
  1261  (assert_trap (invoke "check_t0" (i32.const 19)) "uninitialized element")
  1262  (assert_trap (invoke "check_t0" (i32.const 20)) "uninitialized element")
  1263  (assert_trap (invoke "check_t0" (i32.const 21)) "uninitialized element")
  1264  (assert_trap (invoke "check_t0" (i32.const 22)) "uninitialized element")
  1265  (assert_trap (invoke "check_t0" (i32.const 23)) "uninitialized element")
  1266  (assert_trap (invoke "check_t0" (i32.const 24)) "uninitialized element")
  1267  (assert_trap (invoke "check_t0" (i32.const 25)) "uninitialized element")
  1268  (assert_trap (invoke "check_t0" (i32.const 26)) "uninitialized element")
  1269  (assert_trap (invoke "check_t0" (i32.const 27)) "uninitialized element")
  1270  (assert_trap (invoke "check_t0" (i32.const 28)) "uninitialized element")
  1271  (assert_trap (invoke "check_t0" (i32.const 29)) "uninitialized element")
  1272  (assert_trap (invoke "check_t1" (i32.const 0)) "uninitialized element")
  1273  (assert_trap (invoke "check_t1" (i32.const 1)) "uninitialized element")
  1274  (assert_trap (invoke "check_t1" (i32.const 2)) "uninitialized element")
  1275  (assert_return (invoke "check_t1" (i32.const 3)) (i32.const 1))
  1276  (assert_return (invoke "check_t1" (i32.const 4)) (i32.const 3))
  1277  (assert_return (invoke "check_t1" (i32.const 5)) (i32.const 1))
  1278  (assert_return (invoke "check_t1" (i32.const 6)) (i32.const 4))
  1279  (assert_trap (invoke "check_t1" (i32.const 7)) "uninitialized element")
  1280  (assert_trap (invoke "check_t1" (i32.const 8)) "uninitialized element")
  1281  (assert_trap (invoke "check_t1" (i32.const 9)) "uninitialized element")
  1282  (assert_trap (invoke "check_t1" (i32.const 10)) "uninitialized element")
  1283  (assert_return (invoke "check_t1" (i32.const 11)) (i32.const 6))
  1284  (assert_return (invoke "check_t1" (i32.const 12)) (i32.const 3))
  1285  (assert_return (invoke "check_t1" (i32.const 13)) (i32.const 2))
  1286  (assert_return (invoke "check_t1" (i32.const 14)) (i32.const 5))
  1287  (assert_return (invoke "check_t1" (i32.const 15)) (i32.const 7))
  1288  (assert_trap (invoke "check_t1" (i32.const 16)) "uninitialized element")
  1289  (assert_trap (invoke "check_t1" (i32.const 17)) "uninitialized element")
  1290  (assert_trap (invoke "check_t1" (i32.const 18)) "uninitialized element")
  1291  (assert_trap (invoke "check_t1" (i32.const 19)) "uninitialized element")
  1292  (assert_trap (invoke "check_t1" (i32.const 20)) "uninitialized element")
  1293  (assert_trap (invoke "check_t1" (i32.const 21)) "uninitialized element")
  1294  (assert_trap (invoke "check_t1" (i32.const 22)) "uninitialized element")
  1295  (assert_trap (invoke "check_t1" (i32.const 23)) "uninitialized element")
  1296  (assert_trap (invoke "check_t1" (i32.const 24)) "uninitialized element")
  1297  (assert_trap (invoke "check_t1" (i32.const 25)) "uninitialized element")
  1298  (assert_trap (invoke "check_t1" (i32.const 26)) "uninitialized element")
  1299  (assert_trap (invoke "check_t1" (i32.const 27)) "uninitialized element")
  1300  (assert_trap (invoke "check_t1" (i32.const 28)) "uninitialized element")
  1301  (assert_trap (invoke "check_t1" (i32.const 29)) "uninitialized element")
  1302  
  1303  (module
  1304    (type (func (result i32)))  ;; type #0
  1305    (import "a" "ef0" (func (result i32)))    ;; index 0
  1306    (import "a" "ef1" (func (result i32)))
  1307    (import "a" "ef2" (func (result i32)))
  1308    (import "a" "ef3" (func (result i32)))
  1309    (import "a" "ef4" (func (result i32)))    ;; index 4
  1310    (table $t0 30 30 funcref)
  1311    (table $t1 30 30 funcref)
  1312    (elem (table $t1) (i32.const 2) func 3 1 4 1)
  1313    (elem funcref
  1314      (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
  1315    (elem (table $t1) (i32.const 12) func 7 5 2 3 6)
  1316    (elem funcref
  1317      (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
  1318    (elem (table $t0) (i32.const 3) func 1 3 1 4)
  1319    (elem (table $t0) (i32.const 11) func 6 3 2 5 7)
  1320    (func (result i32) (i32.const 5))  ;; index 5
  1321    (func (result i32) (i32.const 6))
  1322    (func (result i32) (i32.const 7))
  1323    (func (result i32) (i32.const 8))
  1324    (func (result i32) (i32.const 9))  ;; index 9
  1325    (func (export "test")
  1326      (table.copy $t1 $t1 (i32.const 25) (i32.const 1) (i32.const 3)))
  1327    (func (export "check_t0") (param i32) (result i32)
  1328      (call_indirect $t1 (type 0) (local.get 0)))
  1329    (func (export "check_t1") (param i32) (result i32)
  1330      (call_indirect $t0 (type 0) (local.get 0)))
  1331  )
  1332  
  1333  (invoke "test")
  1334  (assert_trap (invoke "check_t0" (i32.const 0)) "uninitialized element")
  1335  (assert_trap (invoke "check_t0" (i32.const 1)) "uninitialized element")
  1336  (assert_return (invoke "check_t0" (i32.const 2)) (i32.const 3))
  1337  (assert_return (invoke "check_t0" (i32.const 3)) (i32.const 1))
  1338  (assert_return (invoke "check_t0" (i32.const 4)) (i32.const 4))
  1339  (assert_return (invoke "check_t0" (i32.const 5)) (i32.const 1))
  1340  (assert_trap (invoke "check_t0" (i32.const 6)) "uninitialized element")
  1341  (assert_trap (invoke "check_t0" (i32.const 7)) "uninitialized element")
  1342  (assert_trap (invoke "check_t0" (i32.const 8)) "uninitialized element")
  1343  (assert_trap (invoke "check_t0" (i32.const 9)) "uninitialized element")
  1344  (assert_trap (invoke "check_t0" (i32.const 10)) "uninitialized element")
  1345  (assert_trap (invoke "check_t0" (i32.const 11)) "uninitialized element")
  1346  (assert_return (invoke "check_t0" (i32.const 12)) (i32.const 7))
  1347  (assert_return (invoke "check_t0" (i32.const 13)) (i32.const 5))
  1348  (assert_return (invoke "check_t0" (i32.const 14)) (i32.const 2))
  1349  (assert_return (invoke "check_t0" (i32.const 15)) (i32.const 3))
  1350  (assert_return (invoke "check_t0" (i32.const 16)) (i32.const 6))
  1351  (assert_trap (invoke "check_t0" (i32.const 17)) "uninitialized element")
  1352  (assert_trap (invoke "check_t0" (i32.const 18)) "uninitialized element")
  1353  (assert_trap (invoke "check_t0" (i32.const 19)) "uninitialized element")
  1354  (assert_trap (invoke "check_t0" (i32.const 20)) "uninitialized element")
  1355  (assert_trap (invoke "check_t0" (i32.const 21)) "uninitialized element")
  1356  (assert_trap (invoke "check_t0" (i32.const 22)) "uninitialized element")
  1357  (assert_trap (invoke "check_t0" (i32.const 23)) "uninitialized element")
  1358  (assert_trap (invoke "check_t0" (i32.const 24)) "uninitialized element")
  1359  (assert_trap (invoke "check_t0" (i32.const 25)) "uninitialized element")
  1360  (assert_return (invoke "check_t0" (i32.const 26)) (i32.const 3))
  1361  (assert_return (invoke "check_t0" (i32.const 27)) (i32.const 1))
  1362  (assert_trap (invoke "check_t0" (i32.const 28)) "uninitialized element")
  1363  (assert_trap (invoke "check_t0" (i32.const 29)) "uninitialized element")
  1364  (assert_trap (invoke "check_t1" (i32.const 0)) "uninitialized element")
  1365  (assert_trap (invoke "check_t1" (i32.const 1)) "uninitialized element")
  1366  (assert_trap (invoke "check_t1" (i32.const 2)) "uninitialized element")
  1367  (assert_return (invoke "check_t1" (i32.const 3)) (i32.const 1))
  1368  (assert_return (invoke "check_t1" (i32.const 4)) (i32.const 3))
  1369  (assert_return (invoke "check_t1" (i32.const 5)) (i32.const 1))
  1370  (assert_return (invoke "check_t1" (i32.const 6)) (i32.const 4))
  1371  (assert_trap (invoke "check_t1" (i32.const 7)) "uninitialized element")
  1372  (assert_trap (invoke "check_t1" (i32.const 8)) "uninitialized element")
  1373  (assert_trap (invoke "check_t1" (i32.const 9)) "uninitialized element")
  1374  (assert_trap (invoke "check_t1" (i32.const 10)) "uninitialized element")
  1375  (assert_return (invoke "check_t1" (i32.const 11)) (i32.const 6))
  1376  (assert_return (invoke "check_t1" (i32.const 12)) (i32.const 3))
  1377  (assert_return (invoke "check_t1" (i32.const 13)) (i32.const 2))
  1378  (assert_return (invoke "check_t1" (i32.const 14)) (i32.const 5))
  1379  (assert_return (invoke "check_t1" (i32.const 15)) (i32.const 7))
  1380  (assert_trap (invoke "check_t1" (i32.const 16)) "uninitialized element")
  1381  (assert_trap (invoke "check_t1" (i32.const 17)) "uninitialized element")
  1382  (assert_trap (invoke "check_t1" (i32.const 18)) "uninitialized element")
  1383  (assert_trap (invoke "check_t1" (i32.const 19)) "uninitialized element")
  1384  (assert_trap (invoke "check_t1" (i32.const 20)) "uninitialized element")
  1385  (assert_trap (invoke "check_t1" (i32.const 21)) "uninitialized element")
  1386  (assert_trap (invoke "check_t1" (i32.const 22)) "uninitialized element")
  1387  (assert_trap (invoke "check_t1" (i32.const 23)) "uninitialized element")
  1388  (assert_trap (invoke "check_t1" (i32.const 24)) "uninitialized element")
  1389  (assert_trap (invoke "check_t1" (i32.const 25)) "uninitialized element")
  1390  (assert_trap (invoke "check_t1" (i32.const 26)) "uninitialized element")
  1391  (assert_trap (invoke "check_t1" (i32.const 27)) "uninitialized element")
  1392  (assert_trap (invoke "check_t1" (i32.const 28)) "uninitialized element")
  1393  (assert_trap (invoke "check_t1" (i32.const 29)) "uninitialized element")
  1394  
  1395  (module
  1396    (type (func (result i32)))  ;; type #0
  1397    (import "a" "ef0" (func (result i32)))    ;; index 0
  1398    (import "a" "ef1" (func (result i32)))
  1399    (import "a" "ef2" (func (result i32)))
  1400    (import "a" "ef3" (func (result i32)))
  1401    (import "a" "ef4" (func (result i32)))    ;; index 4
  1402    (table $t0 30 30 funcref)
  1403    (table $t1 30 30 funcref)
  1404    (elem (table $t1) (i32.const 2) func 3 1 4 1)
  1405    (elem funcref
  1406      (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
  1407    (elem (table $t1) (i32.const 12) func 7 5 2 3 6)
  1408    (elem funcref
  1409      (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
  1410    (elem (table $t0) (i32.const 3) func 1 3 1 4)
  1411    (elem (table $t0) (i32.const 11) func 6 3 2 5 7)
  1412    (func (result i32) (i32.const 5))  ;; index 5
  1413    (func (result i32) (i32.const 6))
  1414    (func (result i32) (i32.const 7))
  1415    (func (result i32) (i32.const 8))
  1416    (func (result i32) (i32.const 9))  ;; index 9
  1417    (func (export "test")
  1418      (table.copy $t1 $t1 (i32.const 10) (i32.const 12) (i32.const 7)))
  1419    (func (export "check_t0") (param i32) (result i32)
  1420      (call_indirect $t1 (type 0) (local.get 0)))
  1421    (func (export "check_t1") (param i32) (result i32)
  1422      (call_indirect $t0 (type 0) (local.get 0)))
  1423  )
  1424  
  1425  (invoke "test")
  1426  (assert_trap (invoke "check_t0" (i32.const 0)) "uninitialized element")
  1427  (assert_trap (invoke "check_t0" (i32.const 1)) "uninitialized element")
  1428  (assert_return (invoke "check_t0" (i32.const 2)) (i32.const 3))
  1429  (assert_return (invoke "check_t0" (i32.const 3)) (i32.const 1))
  1430  (assert_return (invoke "check_t0" (i32.const 4)) (i32.const 4))
  1431  (assert_return (invoke "check_t0" (i32.const 5)) (i32.const 1))
  1432  (assert_trap (invoke "check_t0" (i32.const 6)) "uninitialized element")
  1433  (assert_trap (invoke "check_t0" (i32.const 7)) "uninitialized element")
  1434  (assert_trap (invoke "check_t0" (i32.const 8)) "uninitialized element")
  1435  (assert_trap (invoke "check_t0" (i32.const 9)) "uninitialized element")
  1436  (assert_return (invoke "check_t0" (i32.const 10)) (i32.const 7))
  1437  (assert_return (invoke "check_t0" (i32.const 11)) (i32.const 5))
  1438  (assert_return (invoke "check_t0" (i32.const 12)) (i32.const 2))
  1439  (assert_return (invoke "check_t0" (i32.const 13)) (i32.const 3))
  1440  (assert_return (invoke "check_t0" (i32.const 14)) (i32.const 6))
  1441  (assert_trap (invoke "check_t0" (i32.const 15)) "uninitialized element")
  1442  (assert_trap (invoke "check_t0" (i32.const 16)) "uninitialized element")
  1443  (assert_trap (invoke "check_t0" (i32.const 17)) "uninitialized element")
  1444  (assert_trap (invoke "check_t0" (i32.const 18)) "uninitialized element")
  1445  (assert_trap (invoke "check_t0" (i32.const 19)) "uninitialized element")
  1446  (assert_trap (invoke "check_t0" (i32.const 20)) "uninitialized element")
  1447  (assert_trap (invoke "check_t0" (i32.const 21)) "uninitialized element")
  1448  (assert_trap (invoke "check_t0" (i32.const 22)) "uninitialized element")
  1449  (assert_trap (invoke "check_t0" (i32.const 23)) "uninitialized element")
  1450  (assert_trap (invoke "check_t0" (i32.const 24)) "uninitialized element")
  1451  (assert_trap (invoke "check_t0" (i32.const 25)) "uninitialized element")
  1452  (assert_trap (invoke "check_t0" (i32.const 26)) "uninitialized element")
  1453  (assert_trap (invoke "check_t0" (i32.const 27)) "uninitialized element")
  1454  (assert_trap (invoke "check_t0" (i32.const 28)) "uninitialized element")
  1455  (assert_trap (invoke "check_t0" (i32.const 29)) "uninitialized element")
  1456  (assert_trap (invoke "check_t1" (i32.const 0)) "uninitialized element")
  1457  (assert_trap (invoke "check_t1" (i32.const 1)) "uninitialized element")
  1458  (assert_trap (invoke "check_t1" (i32.const 2)) "uninitialized element")
  1459  (assert_return (invoke "check_t1" (i32.const 3)) (i32.const 1))
  1460  (assert_return (invoke "check_t1" (i32.const 4)) (i32.const 3))
  1461  (assert_return (invoke "check_t1" (i32.const 5)) (i32.const 1))
  1462  (assert_return (invoke "check_t1" (i32.const 6)) (i32.const 4))
  1463  (assert_trap (invoke "check_t1" (i32.const 7)) "uninitialized element")
  1464  (assert_trap (invoke "check_t1" (i32.const 8)) "uninitialized element")
  1465  (assert_trap (invoke "check_t1" (i32.const 9)) "uninitialized element")
  1466  (assert_trap (invoke "check_t1" (i32.const 10)) "uninitialized element")
  1467  (assert_return (invoke "check_t1" (i32.const 11)) (i32.const 6))
  1468  (assert_return (invoke "check_t1" (i32.const 12)) (i32.const 3))
  1469  (assert_return (invoke "check_t1" (i32.const 13)) (i32.const 2))
  1470  (assert_return (invoke "check_t1" (i32.const 14)) (i32.const 5))
  1471  (assert_return (invoke "check_t1" (i32.const 15)) (i32.const 7))
  1472  (assert_trap (invoke "check_t1" (i32.const 16)) "uninitialized element")
  1473  (assert_trap (invoke "check_t1" (i32.const 17)) "uninitialized element")
  1474  (assert_trap (invoke "check_t1" (i32.const 18)) "uninitialized element")
  1475  (assert_trap (invoke "check_t1" (i32.const 19)) "uninitialized element")
  1476  (assert_trap (invoke "check_t1" (i32.const 20)) "uninitialized element")
  1477  (assert_trap (invoke "check_t1" (i32.const 21)) "uninitialized element")
  1478  (assert_trap (invoke "check_t1" (i32.const 22)) "uninitialized element")
  1479  (assert_trap (invoke "check_t1" (i32.const 23)) "uninitialized element")
  1480  (assert_trap (invoke "check_t1" (i32.const 24)) "uninitialized element")
  1481  (assert_trap (invoke "check_t1" (i32.const 25)) "uninitialized element")
  1482  (assert_trap (invoke "check_t1" (i32.const 26)) "uninitialized element")
  1483  (assert_trap (invoke "check_t1" (i32.const 27)) "uninitialized element")
  1484  (assert_trap (invoke "check_t1" (i32.const 28)) "uninitialized element")
  1485  (assert_trap (invoke "check_t1" (i32.const 29)) "uninitialized element")
  1486  
  1487  (module
  1488    (type (func (result i32)))  ;; type #0
  1489    (import "a" "ef0" (func (result i32)))    ;; index 0
  1490    (import "a" "ef1" (func (result i32)))
  1491    (import "a" "ef2" (func (result i32)))
  1492    (import "a" "ef3" (func (result i32)))
  1493    (import "a" "ef4" (func (result i32)))    ;; index 4
  1494    (table $t0 30 30 funcref)
  1495    (table $t1 30 30 funcref)
  1496    (elem (table $t1) (i32.const 2) func 3 1 4 1)
  1497    (elem funcref
  1498      (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
  1499    (elem (table $t1) (i32.const 12) func 7 5 2 3 6)
  1500    (elem funcref
  1501      (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
  1502    (elem (table $t0) (i32.const 3) func 1 3 1 4)
  1503    (elem (table $t0) (i32.const 11) func 6 3 2 5 7)
  1504    (func (result i32) (i32.const 5))  ;; index 5
  1505    (func (result i32) (i32.const 6))
  1506    (func (result i32) (i32.const 7))
  1507    (func (result i32) (i32.const 8))
  1508    (func (result i32) (i32.const 9))  ;; index 9
  1509    (func (export "test")
  1510      (table.copy $t1 $t1 (i32.const 12) (i32.const 10) (i32.const 7)))
  1511    (func (export "check_t0") (param i32) (result i32)
  1512      (call_indirect $t1 (type 0) (local.get 0)))
  1513    (func (export "check_t1") (param i32) (result i32)
  1514      (call_indirect $t0 (type 0) (local.get 0)))
  1515  )
  1516  
  1517  (invoke "test")
  1518  (assert_trap (invoke "check_t0" (i32.const 0)) "uninitialized element")
  1519  (assert_trap (invoke "check_t0" (i32.const 1)) "uninitialized element")
  1520  (assert_return (invoke "check_t0" (i32.const 2)) (i32.const 3))
  1521  (assert_return (invoke "check_t0" (i32.const 3)) (i32.const 1))
  1522  (assert_return (invoke "check_t0" (i32.const 4)) (i32.const 4))
  1523  (assert_return (invoke "check_t0" (i32.const 5)) (i32.const 1))
  1524  (assert_trap (invoke "check_t0" (i32.const 6)) "uninitialized element")
  1525  (assert_trap (invoke "check_t0" (i32.const 7)) "uninitialized element")
  1526  (assert_trap (invoke "check_t0" (i32.const 8)) "uninitialized element")
  1527  (assert_trap (invoke "check_t0" (i32.const 9)) "uninitialized element")
  1528  (assert_trap (invoke "check_t0" (i32.const 10)) "uninitialized element")
  1529  (assert_trap (invoke "check_t0" (i32.const 11)) "uninitialized element")
  1530  (assert_trap (invoke "check_t0" (i32.const 12)) "uninitialized element")
  1531  (assert_trap (invoke "check_t0" (i32.const 13)) "uninitialized element")
  1532  (assert_return (invoke "check_t0" (i32.const 14)) (i32.const 7))
  1533  (assert_return (invoke "check_t0" (i32.const 15)) (i32.const 5))
  1534  (assert_return (invoke "check_t0" (i32.const 16)) (i32.const 2))
  1535  (assert_return (invoke "check_t0" (i32.const 17)) (i32.const 3))
  1536  (assert_return (invoke "check_t0" (i32.const 18)) (i32.const 6))
  1537  (assert_trap (invoke "check_t0" (i32.const 19)) "uninitialized element")
  1538  (assert_trap (invoke "check_t0" (i32.const 20)) "uninitialized element")
  1539  (assert_trap (invoke "check_t0" (i32.const 21)) "uninitialized element")
  1540  (assert_trap (invoke "check_t0" (i32.const 22)) "uninitialized element")
  1541  (assert_trap (invoke "check_t0" (i32.const 23)) "uninitialized element")
  1542  (assert_trap (invoke "check_t0" (i32.const 24)) "uninitialized element")
  1543  (assert_trap (invoke "check_t0" (i32.const 25)) "uninitialized element")
  1544  (assert_trap (invoke "check_t0" (i32.const 26)) "uninitialized element")
  1545  (assert_trap (invoke "check_t0" (i32.const 27)) "uninitialized element")
  1546  (assert_trap (invoke "check_t0" (i32.const 28)) "uninitialized element")
  1547  (assert_trap (invoke "check_t0" (i32.const 29)) "uninitialized element")
  1548  (assert_trap (invoke "check_t1" (i32.const 0)) "uninitialized element")
  1549  (assert_trap (invoke "check_t1" (i32.const 1)) "uninitialized element")
  1550  (assert_trap (invoke "check_t1" (i32.const 2)) "uninitialized element")
  1551  (assert_return (invoke "check_t1" (i32.const 3)) (i32.const 1))
  1552  (assert_return (invoke "check_t1" (i32.const 4)) (i32.const 3))
  1553  (assert_return (invoke "check_t1" (i32.const 5)) (i32.const 1))
  1554  (assert_return (invoke "check_t1" (i32.const 6)) (i32.const 4))
  1555  (assert_trap (invoke "check_t1" (i32.const 7)) "uninitialized element")
  1556  (assert_trap (invoke "check_t1" (i32.const 8)) "uninitialized element")
  1557  (assert_trap (invoke "check_t1" (i32.const 9)) "uninitialized element")
  1558  (assert_trap (invoke "check_t1" (i32.const 10)) "uninitialized element")
  1559  (assert_return (invoke "check_t1" (i32.const 11)) (i32.const 6))
  1560  (assert_return (invoke "check_t1" (i32.const 12)) (i32.const 3))
  1561  (assert_return (invoke "check_t1" (i32.const 13)) (i32.const 2))
  1562  (assert_return (invoke "check_t1" (i32.const 14)) (i32.const 5))
  1563  (assert_return (invoke "check_t1" (i32.const 15)) (i32.const 7))
  1564  (assert_trap (invoke "check_t1" (i32.const 16)) "uninitialized element")
  1565  (assert_trap (invoke "check_t1" (i32.const 17)) "uninitialized element")
  1566  (assert_trap (invoke "check_t1" (i32.const 18)) "uninitialized element")
  1567  (assert_trap (invoke "check_t1" (i32.const 19)) "uninitialized element")
  1568  (assert_trap (invoke "check_t1" (i32.const 20)) "uninitialized element")
  1569  (assert_trap (invoke "check_t1" (i32.const 21)) "uninitialized element")
  1570  (assert_trap (invoke "check_t1" (i32.const 22)) "uninitialized element")
  1571  (assert_trap (invoke "check_t1" (i32.const 23)) "uninitialized element")
  1572  (assert_trap (invoke "check_t1" (i32.const 24)) "uninitialized element")
  1573  (assert_trap (invoke "check_t1" (i32.const 25)) "uninitialized element")
  1574  (assert_trap (invoke "check_t1" (i32.const 26)) "uninitialized element")
  1575  (assert_trap (invoke "check_t1" (i32.const 27)) "uninitialized element")
  1576  (assert_trap (invoke "check_t1" (i32.const 28)) "uninitialized element")
  1577  (assert_trap (invoke "check_t1" (i32.const 29)) "uninitialized element")
  1578  
  1579  (module
  1580    (type (func (result i32)))  ;; type #0
  1581    (import "a" "ef0" (func (result i32)))    ;; index 0
  1582    (import "a" "ef1" (func (result i32)))
  1583    (import "a" "ef2" (func (result i32)))
  1584    (import "a" "ef3" (func (result i32)))
  1585    (import "a" "ef4" (func (result i32)))    ;; index 4
  1586    (table $t0 30 30 funcref)
  1587    (table $t1 30 30 funcref)
  1588    (elem (table $t1) (i32.const 2) func 3 1 4 1)
  1589    (elem funcref
  1590      (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
  1591    (elem (table $t1) (i32.const 12) func 7 5 2 3 6)
  1592    (elem funcref
  1593      (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
  1594    (elem (table $t0) (i32.const 3) func 1 3 1 4)
  1595    (elem (table $t0) (i32.const 11) func 6 3 2 5 7)
  1596    (func (result i32) (i32.const 5))  ;; index 5
  1597    (func (result i32) (i32.const 6))
  1598    (func (result i32) (i32.const 7))
  1599    (func (result i32) (i32.const 8))
  1600    (func (result i32) (i32.const 9))  ;; index 9
  1601    (func (export "test")
  1602      (table.copy $t0 $t1 (i32.const 10) (i32.const 0) (i32.const 20)))
  1603    (func (export "check_t0") (param i32) (result i32)
  1604      (call_indirect $t1 (type 0) (local.get 0)))
  1605    (func (export "check_t1") (param i32) (result i32)
  1606      (call_indirect $t0 (type 0) (local.get 0)))
  1607  )
  1608  
  1609  (invoke "test")
  1610  (assert_trap (invoke "check_t0" (i32.const 0)) "uninitialized element")
  1611  (assert_trap (invoke "check_t0" (i32.const 1)) "uninitialized element")
  1612  (assert_return (invoke "check_t0" (i32.const 2)) (i32.const 3))
  1613  (assert_return (invoke "check_t0" (i32.const 3)) (i32.const 1))
  1614  (assert_return (invoke "check_t0" (i32.const 4)) (i32.const 4))
  1615  (assert_return (invoke "check_t0" (i32.const 5)) (i32.const 1))
  1616  (assert_trap (invoke "check_t0" (i32.const 6)) "uninitialized element")
  1617  (assert_trap (invoke "check_t0" (i32.const 7)) "uninitialized element")
  1618  (assert_trap (invoke "check_t0" (i32.const 8)) "uninitialized element")
  1619  (assert_trap (invoke "check_t0" (i32.const 9)) "uninitialized element")
  1620  (assert_trap (invoke "check_t0" (i32.const 10)) "uninitialized element")
  1621  (assert_trap (invoke "check_t0" (i32.const 11)) "uninitialized element")
  1622  (assert_return (invoke "check_t0" (i32.const 12)) (i32.const 7))
  1623  (assert_return (invoke "check_t0" (i32.const 13)) (i32.const 5))
  1624  (assert_return (invoke "check_t0" (i32.const 14)) (i32.const 2))
  1625  (assert_return (invoke "check_t0" (i32.const 15)) (i32.const 3))
  1626  (assert_return (invoke "check_t0" (i32.const 16)) (i32.const 6))
  1627  (assert_trap (invoke "check_t0" (i32.const 17)) "uninitialized element")
  1628  (assert_trap (invoke "check_t0" (i32.const 18)) "uninitialized element")
  1629  (assert_trap (invoke "check_t0" (i32.const 19)) "uninitialized element")
  1630  (assert_trap (invoke "check_t0" (i32.const 20)) "uninitialized element")
  1631  (assert_trap (invoke "check_t0" (i32.const 21)) "uninitialized element")
  1632  (assert_trap (invoke "check_t0" (i32.const 22)) "uninitialized element")
  1633  (assert_trap (invoke "check_t0" (i32.const 23)) "uninitialized element")
  1634  (assert_trap (invoke "check_t0" (i32.const 24)) "uninitialized element")
  1635  (assert_trap (invoke "check_t0" (i32.const 25)) "uninitialized element")
  1636  (assert_trap (invoke "check_t0" (i32.const 26)) "uninitialized element")
  1637  (assert_trap (invoke "check_t0" (i32.const 27)) "uninitialized element")
  1638  (assert_trap (invoke "check_t0" (i32.const 28)) "uninitialized element")
  1639  (assert_trap (invoke "check_t0" (i32.const 29)) "uninitialized element")
  1640  (assert_trap (invoke "check_t1" (i32.const 0)) "uninitialized element")
  1641  (assert_trap (invoke "check_t1" (i32.const 1)) "uninitialized element")
  1642  (assert_trap (invoke "check_t1" (i32.const 2)) "uninitialized element")
  1643  (assert_return (invoke "check_t1" (i32.const 3)) (i32.const 1))
  1644  (assert_return (invoke "check_t1" (i32.const 4)) (i32.const 3))
  1645  (assert_return (invoke "check_t1" (i32.const 5)) (i32.const 1))
  1646  (assert_return (invoke "check_t1" (i32.const 6)) (i32.const 4))
  1647  (assert_trap (invoke "check_t1" (i32.const 7)) "uninitialized element")
  1648  (assert_trap (invoke "check_t1" (i32.const 8)) "uninitialized element")
  1649  (assert_trap (invoke "check_t1" (i32.const 9)) "uninitialized element")
  1650  (assert_trap (invoke "check_t1" (i32.const 10)) "uninitialized element")
  1651  (assert_trap (invoke "check_t1" (i32.const 11)) "uninitialized element")
  1652  (assert_return (invoke "check_t1" (i32.const 12)) (i32.const 3))
  1653  (assert_return (invoke "check_t1" (i32.const 13)) (i32.const 1))
  1654  (assert_return (invoke "check_t1" (i32.const 14)) (i32.const 4))
  1655  (assert_return (invoke "check_t1" (i32.const 15)) (i32.const 1))
  1656  (assert_trap (invoke "check_t1" (i32.const 16)) "uninitialized element")
  1657  (assert_trap (invoke "check_t1" (i32.const 17)) "uninitialized element")
  1658  (assert_trap (invoke "check_t1" (i32.const 18)) "uninitialized element")
  1659  (assert_trap (invoke "check_t1" (i32.const 19)) "uninitialized element")
  1660  (assert_trap (invoke "check_t1" (i32.const 20)) "uninitialized element")
  1661  (assert_trap (invoke "check_t1" (i32.const 21)) "uninitialized element")
  1662  (assert_return (invoke "check_t1" (i32.const 22)) (i32.const 7))
  1663  (assert_return (invoke "check_t1" (i32.const 23)) (i32.const 5))
  1664  (assert_return (invoke "check_t1" (i32.const 24)) (i32.const 2))
  1665  (assert_return (invoke "check_t1" (i32.const 25)) (i32.const 3))
  1666  (assert_return (invoke "check_t1" (i32.const 26)) (i32.const 6))
  1667  (assert_trap (invoke "check_t1" (i32.const 27)) "uninitialized element")
  1668  (assert_trap (invoke "check_t1" (i32.const 28)) "uninitialized element")
  1669  (assert_trap (invoke "check_t1" (i32.const 29)) "uninitialized element")
  1670  
  1671  (module
  1672    (table $t0 30 30 funcref)
  1673    (table $t1 30 30 funcref)
  1674    (elem (table $t0) (i32.const 2) func 3 1 4 1)
  1675    (elem funcref
  1676      (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
  1677    (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
  1678    (elem funcref
  1679      (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
  1680    (func (result i32) (i32.const 0))
  1681    (func (result i32) (i32.const 1))
  1682    (func (result i32) (i32.const 2))
  1683    (func (result i32) (i32.const 3))
  1684    (func (result i32) (i32.const 4))
  1685    (func (result i32) (i32.const 5))
  1686    (func (result i32) (i32.const 6))
  1687    (func (result i32) (i32.const 7))
  1688    (func (result i32) (i32.const 8))
  1689    (func (result i32) (i32.const 9))
  1690    (func (export "test")
  1691      (table.copy $t0 $t0 (i32.const 28) (i32.const 1) (i32.const 3))
  1692      ))
  1693  
  1694  (assert_trap (invoke "test") "out of bounds table access")
  1695  
  1696  (module
  1697    (table $t0 30 30 funcref)
  1698    (table $t1 30 30 funcref)
  1699    (elem (table $t0) (i32.const 2) func 3 1 4 1)
  1700    (elem funcref
  1701      (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
  1702    (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
  1703    (elem funcref
  1704      (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
  1705    (func (result i32) (i32.const 0))
  1706    (func (result i32) (i32.const 1))
  1707    (func (result i32) (i32.const 2))
  1708    (func (result i32) (i32.const 3))
  1709    (func (result i32) (i32.const 4))
  1710    (func (result i32) (i32.const 5))
  1711    (func (result i32) (i32.const 6))
  1712    (func (result i32) (i32.const 7))
  1713    (func (result i32) (i32.const 8))
  1714    (func (result i32) (i32.const 9))
  1715    (func (export "test")
  1716      (table.copy $t0 $t0 (i32.const 0xFFFFFFFE) (i32.const 1) (i32.const 2))
  1717      ))
  1718  
  1719  (assert_trap (invoke "test") "out of bounds table access")
  1720  
  1721  (module
  1722    (table $t0 30 30 funcref)
  1723    (table $t1 30 30 funcref)
  1724    (elem (table $t0) (i32.const 2) func 3 1 4 1)
  1725    (elem funcref
  1726      (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
  1727    (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
  1728    (elem funcref
  1729      (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
  1730    (func (result i32) (i32.const 0))
  1731    (func (result i32) (i32.const 1))
  1732    (func (result i32) (i32.const 2))
  1733    (func (result i32) (i32.const 3))
  1734    (func (result i32) (i32.const 4))
  1735    (func (result i32) (i32.const 5))
  1736    (func (result i32) (i32.const 6))
  1737    (func (result i32) (i32.const 7))
  1738    (func (result i32) (i32.const 8))
  1739    (func (result i32) (i32.const 9))
  1740    (func (export "test")
  1741      (table.copy $t0 $t0 (i32.const 15) (i32.const 25) (i32.const 6))
  1742      ))
  1743  
  1744  (assert_trap (invoke "test") "out of bounds table access")
  1745  
  1746  (module
  1747    (table $t0 30 30 funcref)
  1748    (table $t1 30 30 funcref)
  1749    (elem (table $t0) (i32.const 2) func 3 1 4 1)
  1750    (elem funcref
  1751      (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
  1752    (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
  1753    (elem funcref
  1754      (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
  1755    (func (result i32) (i32.const 0))
  1756    (func (result i32) (i32.const 1))
  1757    (func (result i32) (i32.const 2))
  1758    (func (result i32) (i32.const 3))
  1759    (func (result i32) (i32.const 4))
  1760    (func (result i32) (i32.const 5))
  1761    (func (result i32) (i32.const 6))
  1762    (func (result i32) (i32.const 7))
  1763    (func (result i32) (i32.const 8))
  1764    (func (result i32) (i32.const 9))
  1765    (func (export "test")
  1766      (table.copy $t0 $t0 (i32.const 15) (i32.const 0xFFFFFFFE) (i32.const 2))
  1767      ))
  1768  
  1769  (assert_trap (invoke "test") "out of bounds table access")
  1770  
  1771  (module
  1772    (table $t0 30 30 funcref)
  1773    (table $t1 30 30 funcref)
  1774    (elem (table $t0) (i32.const 2) func 3 1 4 1)
  1775    (elem funcref
  1776      (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
  1777    (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
  1778    (elem funcref
  1779      (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
  1780    (func (result i32) (i32.const 0))
  1781    (func (result i32) (i32.const 1))
  1782    (func (result i32) (i32.const 2))
  1783    (func (result i32) (i32.const 3))
  1784    (func (result i32) (i32.const 4))
  1785    (func (result i32) (i32.const 5))
  1786    (func (result i32) (i32.const 6))
  1787    (func (result i32) (i32.const 7))
  1788    (func (result i32) (i32.const 8))
  1789    (func (result i32) (i32.const 9))
  1790    (func (export "test")
  1791      (table.copy $t0 $t0 (i32.const 15) (i32.const 25) (i32.const 0))
  1792      ))
  1793  
  1794  (invoke "test")
  1795  
  1796  (module
  1797    (table $t0 30 30 funcref)
  1798    (table $t1 30 30 funcref)
  1799    (elem (table $t0) (i32.const 2) func 3 1 4 1)
  1800    (elem funcref
  1801      (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
  1802    (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
  1803    (elem funcref
  1804      (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
  1805    (func (result i32) (i32.const 0))
  1806    (func (result i32) (i32.const 1))
  1807    (func (result i32) (i32.const 2))
  1808    (func (result i32) (i32.const 3))
  1809    (func (result i32) (i32.const 4))
  1810    (func (result i32) (i32.const 5))
  1811    (func (result i32) (i32.const 6))
  1812    (func (result i32) (i32.const 7))
  1813    (func (result i32) (i32.const 8))
  1814    (func (result i32) (i32.const 9))
  1815    (func (export "test")
  1816      (table.copy $t0 $t0 (i32.const 30) (i32.const 15) (i32.const 0))
  1817      ))
  1818  
  1819  (invoke "test")
  1820  
  1821  (module
  1822    (table $t0 30 30 funcref)
  1823    (table $t1 30 30 funcref)
  1824    (elem (table $t0) (i32.const 2) func 3 1 4 1)
  1825    (elem funcref
  1826      (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
  1827    (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
  1828    (elem funcref
  1829      (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
  1830    (func (result i32) (i32.const 0))
  1831    (func (result i32) (i32.const 1))
  1832    (func (result i32) (i32.const 2))
  1833    (func (result i32) (i32.const 3))
  1834    (func (result i32) (i32.const 4))
  1835    (func (result i32) (i32.const 5))
  1836    (func (result i32) (i32.const 6))
  1837    (func (result i32) (i32.const 7))
  1838    (func (result i32) (i32.const 8))
  1839    (func (result i32) (i32.const 9))
  1840    (func (export "test")
  1841      (table.copy $t0 $t0 (i32.const 31) (i32.const 15) (i32.const 0))
  1842      ))
  1843  
  1844  (assert_trap (invoke "test") "out of bounds table access")
  1845  
  1846  (module
  1847    (table $t0 30 30 funcref)
  1848    (table $t1 30 30 funcref)
  1849    (elem (table $t0) (i32.const 2) func 3 1 4 1)
  1850    (elem funcref
  1851      (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
  1852    (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
  1853    (elem funcref
  1854      (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
  1855    (func (result i32) (i32.const 0))
  1856    (func (result i32) (i32.const 1))
  1857    (func (result i32) (i32.const 2))
  1858    (func (result i32) (i32.const 3))
  1859    (func (result i32) (i32.const 4))
  1860    (func (result i32) (i32.const 5))
  1861    (func (result i32) (i32.const 6))
  1862    (func (result i32) (i32.const 7))
  1863    (func (result i32) (i32.const 8))
  1864    (func (result i32) (i32.const 9))
  1865    (func (export "test")
  1866      (table.copy $t0 $t0 (i32.const 15) (i32.const 30) (i32.const 0))
  1867      ))
  1868  
  1869  (invoke "test")
  1870  
  1871  (module
  1872    (table $t0 30 30 funcref)
  1873    (table $t1 30 30 funcref)
  1874    (elem (table $t0) (i32.const 2) func 3 1 4 1)
  1875    (elem funcref
  1876      (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
  1877    (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
  1878    (elem funcref
  1879      (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
  1880    (func (result i32) (i32.const 0))
  1881    (func (result i32) (i32.const 1))
  1882    (func (result i32) (i32.const 2))
  1883    (func (result i32) (i32.const 3))
  1884    (func (result i32) (i32.const 4))
  1885    (func (result i32) (i32.const 5))
  1886    (func (result i32) (i32.const 6))
  1887    (func (result i32) (i32.const 7))
  1888    (func (result i32) (i32.const 8))
  1889    (func (result i32) (i32.const 9))
  1890    (func (export "test")
  1891      (table.copy $t0 $t0 (i32.const 15) (i32.const 31) (i32.const 0))
  1892      ))
  1893  
  1894  (assert_trap (invoke "test") "out of bounds table access")
  1895  
  1896  (module
  1897    (table $t0 30 30 funcref)
  1898    (table $t1 30 30 funcref)
  1899    (elem (table $t0) (i32.const 2) func 3 1 4 1)
  1900    (elem funcref
  1901      (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
  1902    (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
  1903    (elem funcref
  1904      (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
  1905    (func (result i32) (i32.const 0))
  1906    (func (result i32) (i32.const 1))
  1907    (func (result i32) (i32.const 2))
  1908    (func (result i32) (i32.const 3))
  1909    (func (result i32) (i32.const 4))
  1910    (func (result i32) (i32.const 5))
  1911    (func (result i32) (i32.const 6))
  1912    (func (result i32) (i32.const 7))
  1913    (func (result i32) (i32.const 8))
  1914    (func (result i32) (i32.const 9))
  1915    (func (export "test")
  1916      (table.copy $t0 $t0 (i32.const 30) (i32.const 30) (i32.const 0))
  1917      ))
  1918  
  1919  (invoke "test")
  1920  
  1921  (module
  1922    (table $t0 30 30 funcref)
  1923    (table $t1 30 30 funcref)
  1924    (elem (table $t0) (i32.const 2) func 3 1 4 1)
  1925    (elem funcref
  1926      (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
  1927    (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
  1928    (elem funcref
  1929      (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
  1930    (func (result i32) (i32.const 0))
  1931    (func (result i32) (i32.const 1))
  1932    (func (result i32) (i32.const 2))
  1933    (func (result i32) (i32.const 3))
  1934    (func (result i32) (i32.const 4))
  1935    (func (result i32) (i32.const 5))
  1936    (func (result i32) (i32.const 6))
  1937    (func (result i32) (i32.const 7))
  1938    (func (result i32) (i32.const 8))
  1939    (func (result i32) (i32.const 9))
  1940    (func (export "test")
  1941      (table.copy $t0 $t0 (i32.const 31) (i32.const 31) (i32.const 0))
  1942      ))
  1943  
  1944  (assert_trap (invoke "test") "out of bounds table access")
  1945  
  1946  (module
  1947    (table $t0 30 30 funcref)
  1948    (table $t1 30 30 funcref)
  1949    (elem (table $t0) (i32.const 2) func 3 1 4 1)
  1950    (elem funcref
  1951      (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
  1952    (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
  1953    (elem funcref
  1954      (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
  1955    (func (result i32) (i32.const 0))
  1956    (func (result i32) (i32.const 1))
  1957    (func (result i32) (i32.const 2))
  1958    (func (result i32) (i32.const 3))
  1959    (func (result i32) (i32.const 4))
  1960    (func (result i32) (i32.const 5))
  1961    (func (result i32) (i32.const 6))
  1962    (func (result i32) (i32.const 7))
  1963    (func (result i32) (i32.const 8))
  1964    (func (result i32) (i32.const 9))
  1965    (func (export "test")
  1966      (table.copy $t1 $t0 (i32.const 28) (i32.const 1) (i32.const 3))
  1967      ))
  1968  
  1969  (assert_trap (invoke "test") "out of bounds table access")
  1970  
  1971  (module
  1972    (table $t0 30 30 funcref)
  1973    (table $t1 30 30 funcref)
  1974    (elem (table $t0) (i32.const 2) func 3 1 4 1)
  1975    (elem funcref
  1976      (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
  1977    (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
  1978    (elem funcref
  1979      (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
  1980    (func (result i32) (i32.const 0))
  1981    (func (result i32) (i32.const 1))
  1982    (func (result i32) (i32.const 2))
  1983    (func (result i32) (i32.const 3))
  1984    (func (result i32) (i32.const 4))
  1985    (func (result i32) (i32.const 5))
  1986    (func (result i32) (i32.const 6))
  1987    (func (result i32) (i32.const 7))
  1988    (func (result i32) (i32.const 8))
  1989    (func (result i32) (i32.const 9))
  1990    (func (export "test")
  1991      (table.copy $t1 $t0 (i32.const 0xFFFFFFFE) (i32.const 1) (i32.const 2))
  1992      ))
  1993  
  1994  (assert_trap (invoke "test") "out of bounds table access")
  1995  
  1996  (module
  1997    (table $t0 30 30 funcref)
  1998    (table $t1 30 30 funcref)
  1999    (elem (table $t0) (i32.const 2) func 3 1 4 1)
  2000    (elem funcref
  2001      (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
  2002    (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
  2003    (elem funcref
  2004      (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
  2005    (func (result i32) (i32.const 0))
  2006    (func (result i32) (i32.const 1))
  2007    (func (result i32) (i32.const 2))
  2008    (func (result i32) (i32.const 3))
  2009    (func (result i32) (i32.const 4))
  2010    (func (result i32) (i32.const 5))
  2011    (func (result i32) (i32.const 6))
  2012    (func (result i32) (i32.const 7))
  2013    (func (result i32) (i32.const 8))
  2014    (func (result i32) (i32.const 9))
  2015    (func (export "test")
  2016      (table.copy $t1 $t0 (i32.const 15) (i32.const 25) (i32.const 6))
  2017      ))
  2018  
  2019  (assert_trap (invoke "test") "out of bounds table access")
  2020  
  2021  (module
  2022    (table $t0 30 30 funcref)
  2023    (table $t1 30 30 funcref)
  2024    (elem (table $t0) (i32.const 2) func 3 1 4 1)
  2025    (elem funcref
  2026      (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
  2027    (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
  2028    (elem funcref
  2029      (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
  2030    (func (result i32) (i32.const 0))
  2031    (func (result i32) (i32.const 1))
  2032    (func (result i32) (i32.const 2))
  2033    (func (result i32) (i32.const 3))
  2034    (func (result i32) (i32.const 4))
  2035    (func (result i32) (i32.const 5))
  2036    (func (result i32) (i32.const 6))
  2037    (func (result i32) (i32.const 7))
  2038    (func (result i32) (i32.const 8))
  2039    (func (result i32) (i32.const 9))
  2040    (func (export "test")
  2041      (table.copy $t1 $t0 (i32.const 15) (i32.const 0xFFFFFFFE) (i32.const 2))
  2042      ))
  2043  
  2044  (assert_trap (invoke "test") "out of bounds table access")
  2045  
  2046  (module
  2047    (table $t0 30 30 funcref)
  2048    (table $t1 30 30 funcref)
  2049    (elem (table $t0) (i32.const 2) func 3 1 4 1)
  2050    (elem funcref
  2051      (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
  2052    (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
  2053    (elem funcref
  2054      (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
  2055    (func (result i32) (i32.const 0))
  2056    (func (result i32) (i32.const 1))
  2057    (func (result i32) (i32.const 2))
  2058    (func (result i32) (i32.const 3))
  2059    (func (result i32) (i32.const 4))
  2060    (func (result i32) (i32.const 5))
  2061    (func (result i32) (i32.const 6))
  2062    (func (result i32) (i32.const 7))
  2063    (func (result i32) (i32.const 8))
  2064    (func (result i32) (i32.const 9))
  2065    (func (export "test")
  2066      (table.copy $t1 $t0 (i32.const 15) (i32.const 25) (i32.const 0))
  2067      ))
  2068  
  2069  (invoke "test")
  2070  
  2071  (module
  2072    (table $t0 30 30 funcref)
  2073    (table $t1 30 30 funcref)
  2074    (elem (table $t0) (i32.const 2) func 3 1 4 1)
  2075    (elem funcref
  2076      (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
  2077    (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
  2078    (elem funcref
  2079      (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
  2080    (func (result i32) (i32.const 0))
  2081    (func (result i32) (i32.const 1))
  2082    (func (result i32) (i32.const 2))
  2083    (func (result i32) (i32.const 3))
  2084    (func (result i32) (i32.const 4))
  2085    (func (result i32) (i32.const 5))
  2086    (func (result i32) (i32.const 6))
  2087    (func (result i32) (i32.const 7))
  2088    (func (result i32) (i32.const 8))
  2089    (func (result i32) (i32.const 9))
  2090    (func (export "test")
  2091      (table.copy $t1 $t0 (i32.const 30) (i32.const 15) (i32.const 0))
  2092      ))
  2093  
  2094  (invoke "test")
  2095  
  2096  (module
  2097    (table $t0 30 30 funcref)
  2098    (table $t1 30 30 funcref)
  2099    (elem (table $t0) (i32.const 2) func 3 1 4 1)
  2100    (elem funcref
  2101      (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
  2102    (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
  2103    (elem funcref
  2104      (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
  2105    (func (result i32) (i32.const 0))
  2106    (func (result i32) (i32.const 1))
  2107    (func (result i32) (i32.const 2))
  2108    (func (result i32) (i32.const 3))
  2109    (func (result i32) (i32.const 4))
  2110    (func (result i32) (i32.const 5))
  2111    (func (result i32) (i32.const 6))
  2112    (func (result i32) (i32.const 7))
  2113    (func (result i32) (i32.const 8))
  2114    (func (result i32) (i32.const 9))
  2115    (func (export "test")
  2116      (table.copy $t1 $t0 (i32.const 31) (i32.const 15) (i32.const 0))
  2117      ))
  2118  
  2119  (assert_trap (invoke "test") "out of bounds table access")
  2120  
  2121  (module
  2122    (table $t0 30 30 funcref)
  2123    (table $t1 30 30 funcref)
  2124    (elem (table $t0) (i32.const 2) func 3 1 4 1)
  2125    (elem funcref
  2126      (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
  2127    (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
  2128    (elem funcref
  2129      (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
  2130    (func (result i32) (i32.const 0))
  2131    (func (result i32) (i32.const 1))
  2132    (func (result i32) (i32.const 2))
  2133    (func (result i32) (i32.const 3))
  2134    (func (result i32) (i32.const 4))
  2135    (func (result i32) (i32.const 5))
  2136    (func (result i32) (i32.const 6))
  2137    (func (result i32) (i32.const 7))
  2138    (func (result i32) (i32.const 8))
  2139    (func (result i32) (i32.const 9))
  2140    (func (export "test")
  2141      (table.copy $t1 $t0 (i32.const 15) (i32.const 30) (i32.const 0))
  2142      ))
  2143  
  2144  (invoke "test")
  2145  
  2146  (module
  2147    (table $t0 30 30 funcref)
  2148    (table $t1 30 30 funcref)
  2149    (elem (table $t0) (i32.const 2) func 3 1 4 1)
  2150    (elem funcref
  2151      (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
  2152    (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
  2153    (elem funcref
  2154      (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
  2155    (func (result i32) (i32.const 0))
  2156    (func (result i32) (i32.const 1))
  2157    (func (result i32) (i32.const 2))
  2158    (func (result i32) (i32.const 3))
  2159    (func (result i32) (i32.const 4))
  2160    (func (result i32) (i32.const 5))
  2161    (func (result i32) (i32.const 6))
  2162    (func (result i32) (i32.const 7))
  2163    (func (result i32) (i32.const 8))
  2164    (func (result i32) (i32.const 9))
  2165    (func (export "test")
  2166      (table.copy $t1 $t0 (i32.const 15) (i32.const 31) (i32.const 0))
  2167      ))
  2168  
  2169  (assert_trap (invoke "test") "out of bounds table access")
  2170  
  2171  (module
  2172    (table $t0 30 30 funcref)
  2173    (table $t1 30 30 funcref)
  2174    (elem (table $t0) (i32.const 2) func 3 1 4 1)
  2175    (elem funcref
  2176      (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
  2177    (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
  2178    (elem funcref
  2179      (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
  2180    (func (result i32) (i32.const 0))
  2181    (func (result i32) (i32.const 1))
  2182    (func (result i32) (i32.const 2))
  2183    (func (result i32) (i32.const 3))
  2184    (func (result i32) (i32.const 4))
  2185    (func (result i32) (i32.const 5))
  2186    (func (result i32) (i32.const 6))
  2187    (func (result i32) (i32.const 7))
  2188    (func (result i32) (i32.const 8))
  2189    (func (result i32) (i32.const 9))
  2190    (func (export "test")
  2191      (table.copy $t1 $t0 (i32.const 30) (i32.const 30) (i32.const 0))
  2192      ))
  2193  
  2194  (invoke "test")
  2195  
  2196  (module
  2197    (table $t0 30 30 funcref)
  2198    (table $t1 30 30 funcref)
  2199    (elem (table $t0) (i32.const 2) func 3 1 4 1)
  2200    (elem funcref
  2201      (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
  2202    (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
  2203    (elem funcref
  2204      (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
  2205    (func (result i32) (i32.const 0))
  2206    (func (result i32) (i32.const 1))
  2207    (func (result i32) (i32.const 2))
  2208    (func (result i32) (i32.const 3))
  2209    (func (result i32) (i32.const 4))
  2210    (func (result i32) (i32.const 5))
  2211    (func (result i32) (i32.const 6))
  2212    (func (result i32) (i32.const 7))
  2213    (func (result i32) (i32.const 8))
  2214    (func (result i32) (i32.const 9))
  2215    (func (export "test")
  2216      (table.copy $t1 $t0 (i32.const 31) (i32.const 31) (i32.const 0))
  2217      ))
  2218  
  2219  (assert_trap (invoke "test") "out of bounds table access")
  2220  
  2221  (module
  2222    (type (func (result i32)))
  2223    (table 32 64 funcref)
  2224    (elem (i32.const 0)
  2225           $f0 $f1 $f2 $f3 $f4 $f5 $f6 $f7)
  2226    (func $f0 (export "f0") (result i32) (i32.const 0))
  2227    (func $f1 (export "f1") (result i32) (i32.const 1))
  2228    (func $f2 (export "f2") (result i32) (i32.const 2))
  2229    (func $f3 (export "f3") (result i32) (i32.const 3))
  2230    (func $f4 (export "f4") (result i32) (i32.const 4))
  2231    (func $f5 (export "f5") (result i32) (i32.const 5))
  2232    (func $f6 (export "f6") (result i32) (i32.const 6))
  2233    (func $f7 (export "f7") (result i32) (i32.const 7))
  2234    (func $f8 (export "f8") (result i32) (i32.const 8))
  2235    (func $f9 (export "f9") (result i32) (i32.const 9))
  2236    (func $f10 (export "f10") (result i32) (i32.const 10))
  2237    (func $f11 (export "f11") (result i32) (i32.const 11))
  2238    (func $f12 (export "f12") (result i32) (i32.const 12))
  2239    (func $f13 (export "f13") (result i32) (i32.const 13))
  2240    (func $f14 (export "f14") (result i32) (i32.const 14))
  2241    (func $f15 (export "f15") (result i32) (i32.const 15))
  2242    (func (export "test") (param $n i32) (result i32)
  2243      (call_indirect (type 0) (local.get $n)))
  2244    (func (export "run") (param $targetOffs i32) (param $srcOffs i32) (param $len i32)
  2245      (table.copy (local.get $targetOffs) (local.get $srcOffs) (local.get $len))))
  2246  
  2247  (assert_trap (invoke "run" (i32.const 24) (i32.const 0) (i32.const 16))
  2248               "out of bounds table access")
  2249  (assert_return (invoke "test" (i32.const 0)) (i32.const 0))
  2250  (assert_return (invoke "test" (i32.const 1)) (i32.const 1))
  2251  (assert_return (invoke "test" (i32.const 2)) (i32.const 2))
  2252  (assert_return (invoke "test" (i32.const 3)) (i32.const 3))
  2253  (assert_return (invoke "test" (i32.const 4)) (i32.const 4))
  2254  (assert_return (invoke "test" (i32.const 5)) (i32.const 5))
  2255  (assert_return (invoke "test" (i32.const 6)) (i32.const 6))
  2256  (assert_return (invoke "test" (i32.const 7)) (i32.const 7))
  2257  (assert_trap (invoke "test" (i32.const 8)) "uninitialized element")
  2258  (assert_trap (invoke "test" (i32.const 9)) "uninitialized element")
  2259  (assert_trap (invoke "test" (i32.const 10)) "uninitialized element")
  2260  (assert_trap (invoke "test" (i32.const 11)) "uninitialized element")
  2261  (assert_trap (invoke "test" (i32.const 12)) "uninitialized element")
  2262  (assert_trap (invoke "test" (i32.const 13)) "uninitialized element")
  2263  (assert_trap (invoke "test" (i32.const 14)) "uninitialized element")
  2264  (assert_trap (invoke "test" (i32.const 15)) "uninitialized element")
  2265  (assert_trap (invoke "test" (i32.const 16)) "uninitialized element")
  2266  (assert_trap (invoke "test" (i32.const 17)) "uninitialized element")
  2267  (assert_trap (invoke "test" (i32.const 18)) "uninitialized element")
  2268  (assert_trap (invoke "test" (i32.const 19)) "uninitialized element")
  2269  (assert_trap (invoke "test" (i32.const 20)) "uninitialized element")
  2270  (assert_trap (invoke "test" (i32.const 21)) "uninitialized element")
  2271  (assert_trap (invoke "test" (i32.const 22)) "uninitialized element")
  2272  (assert_trap (invoke "test" (i32.const 23)) "uninitialized element")
  2273  (assert_trap (invoke "test" (i32.const 24)) "uninitialized element")
  2274  (assert_trap (invoke "test" (i32.const 25)) "uninitialized element")
  2275  (assert_trap (invoke "test" (i32.const 26)) "uninitialized element")
  2276  (assert_trap (invoke "test" (i32.const 27)) "uninitialized element")
  2277  (assert_trap (invoke "test" (i32.const 28)) "uninitialized element")
  2278  (assert_trap (invoke "test" (i32.const 29)) "uninitialized element")
  2279  (assert_trap (invoke "test" (i32.const 30)) "uninitialized element")
  2280  (assert_trap (invoke "test" (i32.const 31)) "uninitialized element")
  2281  
  2282  (module
  2283    (type (func (result i32)))
  2284    (table 32 64 funcref)
  2285    (elem (i32.const 0)
  2286           $f0 $f1 $f2 $f3 $f4 $f5 $f6 $f7 $f8)
  2287    (func $f0 (export "f0") (result i32) (i32.const 0))
  2288    (func $f1 (export "f1") (result i32) (i32.const 1))
  2289    (func $f2 (export "f2") (result i32) (i32.const 2))
  2290    (func $f3 (export "f3") (result i32) (i32.const 3))
  2291    (func $f4 (export "f4") (result i32) (i32.const 4))
  2292    (func $f5 (export "f5") (result i32) (i32.const 5))
  2293    (func $f6 (export "f6") (result i32) (i32.const 6))
  2294    (func $f7 (export "f7") (result i32) (i32.const 7))
  2295    (func $f8 (export "f8") (result i32) (i32.const 8))
  2296    (func $f9 (export "f9") (result i32) (i32.const 9))
  2297    (func $f10 (export "f10") (result i32) (i32.const 10))
  2298    (func $f11 (export "f11") (result i32) (i32.const 11))
  2299    (func $f12 (export "f12") (result i32) (i32.const 12))
  2300    (func $f13 (export "f13") (result i32) (i32.const 13))
  2301    (func $f14 (export "f14") (result i32) (i32.const 14))
  2302    (func $f15 (export "f15") (result i32) (i32.const 15))
  2303    (func (export "test") (param $n i32) (result i32)
  2304      (call_indirect (type 0) (local.get $n)))
  2305    (func (export "run") (param $targetOffs i32) (param $srcOffs i32) (param $len i32)
  2306      (table.copy (local.get $targetOffs) (local.get $srcOffs) (local.get $len))))
  2307  
  2308  (assert_trap (invoke "run" (i32.const 23) (i32.const 0) (i32.const 15))
  2309               "out of bounds table access")
  2310  (assert_return (invoke "test" (i32.const 0)) (i32.const 0))
  2311  (assert_return (invoke "test" (i32.const 1)) (i32.const 1))
  2312  (assert_return (invoke "test" (i32.const 2)) (i32.const 2))
  2313  (assert_return (invoke "test" (i32.const 3)) (i32.const 3))
  2314  (assert_return (invoke "test" (i32.const 4)) (i32.const 4))
  2315  (assert_return (invoke "test" (i32.const 5)) (i32.const 5))
  2316  (assert_return (invoke "test" (i32.const 6)) (i32.const 6))
  2317  (assert_return (invoke "test" (i32.const 7)) (i32.const 7))
  2318  (assert_return (invoke "test" (i32.const 8)) (i32.const 8))
  2319  (assert_trap (invoke "test" (i32.const 9)) "uninitialized element")
  2320  (assert_trap (invoke "test" (i32.const 10)) "uninitialized element")
  2321  (assert_trap (invoke "test" (i32.const 11)) "uninitialized element")
  2322  (assert_trap (invoke "test" (i32.const 12)) "uninitialized element")
  2323  (assert_trap (invoke "test" (i32.const 13)) "uninitialized element")
  2324  (assert_trap (invoke "test" (i32.const 14)) "uninitialized element")
  2325  (assert_trap (invoke "test" (i32.const 15)) "uninitialized element")
  2326  (assert_trap (invoke "test" (i32.const 16)) "uninitialized element")
  2327  (assert_trap (invoke "test" (i32.const 17)) "uninitialized element")
  2328  (assert_trap (invoke "test" (i32.const 18)) "uninitialized element")
  2329  (assert_trap (invoke "test" (i32.const 19)) "uninitialized element")
  2330  (assert_trap (invoke "test" (i32.const 20)) "uninitialized element")
  2331  (assert_trap (invoke "test" (i32.const 21)) "uninitialized element")
  2332  (assert_trap (invoke "test" (i32.const 22)) "uninitialized element")
  2333  (assert_trap (invoke "test" (i32.const 23)) "uninitialized element")
  2334  (assert_trap (invoke "test" (i32.const 24)) "uninitialized element")
  2335  (assert_trap (invoke "test" (i32.const 25)) "uninitialized element")
  2336  (assert_trap (invoke "test" (i32.const 26)) "uninitialized element")
  2337  (assert_trap (invoke "test" (i32.const 27)) "uninitialized element")
  2338  (assert_trap (invoke "test" (i32.const 28)) "uninitialized element")
  2339  (assert_trap (invoke "test" (i32.const 29)) "uninitialized element")
  2340  (assert_trap (invoke "test" (i32.const 30)) "uninitialized element")
  2341  (assert_trap (invoke "test" (i32.const 31)) "uninitialized element")
  2342  
  2343  (module
  2344    (type (func (result i32)))
  2345    (table 32 64 funcref)
  2346    (elem (i32.const 24)
  2347           $f0 $f1 $f2 $f3 $f4 $f5 $f6 $f7)
  2348    (func $f0 (export "f0") (result i32) (i32.const 0))
  2349    (func $f1 (export "f1") (result i32) (i32.const 1))
  2350    (func $f2 (export "f2") (result i32) (i32.const 2))
  2351    (func $f3 (export "f3") (result i32) (i32.const 3))
  2352    (func $f4 (export "f4") (result i32) (i32.const 4))
  2353    (func $f5 (export "f5") (result i32) (i32.const 5))
  2354    (func $f6 (export "f6") (result i32) (i32.const 6))
  2355    (func $f7 (export "f7") (result i32) (i32.const 7))
  2356    (func $f8 (export "f8") (result i32) (i32.const 8))
  2357    (func $f9 (export "f9") (result i32) (i32.const 9))
  2358    (func $f10 (export "f10") (result i32) (i32.const 10))
  2359    (func $f11 (export "f11") (result i32) (i32.const 11))
  2360    (func $f12 (export "f12") (result i32) (i32.const 12))
  2361    (func $f13 (export "f13") (result i32) (i32.const 13))
  2362    (func $f14 (export "f14") (result i32) (i32.const 14))
  2363    (func $f15 (export "f15") (result i32) (i32.const 15))
  2364    (func (export "test") (param $n i32) (result i32)
  2365      (call_indirect (type 0) (local.get $n)))
  2366    (func (export "run") (param $targetOffs i32) (param $srcOffs i32) (param $len i32)
  2367      (table.copy (local.get $targetOffs) (local.get $srcOffs) (local.get $len))))
  2368  
  2369  (assert_trap (invoke "run" (i32.const 0) (i32.const 24) (i32.const 16))
  2370               "out of bounds table access")
  2371  (assert_trap (invoke "test" (i32.const 0)) "uninitialized element")
  2372  (assert_trap (invoke "test" (i32.const 1)) "uninitialized element")
  2373  (assert_trap (invoke "test" (i32.const 2)) "uninitialized element")
  2374  (assert_trap (invoke "test" (i32.const 3)) "uninitialized element")
  2375  (assert_trap (invoke "test" (i32.const 4)) "uninitialized element")
  2376  (assert_trap (invoke "test" (i32.const 5)) "uninitialized element")
  2377  (assert_trap (invoke "test" (i32.const 6)) "uninitialized element")
  2378  (assert_trap (invoke "test" (i32.const 7)) "uninitialized element")
  2379  (assert_trap (invoke "test" (i32.const 8)) "uninitialized element")
  2380  (assert_trap (invoke "test" (i32.const 9)) "uninitialized element")
  2381  (assert_trap (invoke "test" (i32.const 10)) "uninitialized element")
  2382  (assert_trap (invoke "test" (i32.const 11)) "uninitialized element")
  2383  (assert_trap (invoke "test" (i32.const 12)) "uninitialized element")
  2384  (assert_trap (invoke "test" (i32.const 13)) "uninitialized element")
  2385  (assert_trap (invoke "test" (i32.const 14)) "uninitialized element")
  2386  (assert_trap (invoke "test" (i32.const 15)) "uninitialized element")
  2387  (assert_trap (invoke "test" (i32.const 16)) "uninitialized element")
  2388  (assert_trap (invoke "test" (i32.const 17)) "uninitialized element")
  2389  (assert_trap (invoke "test" (i32.const 18)) "uninitialized element")
  2390  (assert_trap (invoke "test" (i32.const 19)) "uninitialized element")
  2391  (assert_trap (invoke "test" (i32.const 20)) "uninitialized element")
  2392  (assert_trap (invoke "test" (i32.const 21)) "uninitialized element")
  2393  (assert_trap (invoke "test" (i32.const 22)) "uninitialized element")
  2394  (assert_trap (invoke "test" (i32.const 23)) "uninitialized element")
  2395  (assert_return (invoke "test" (i32.const 24)) (i32.const 0))
  2396  (assert_return (invoke "test" (i32.const 25)) (i32.const 1))
  2397  (assert_return (invoke "test" (i32.const 26)) (i32.const 2))
  2398  (assert_return (invoke "test" (i32.const 27)) (i32.const 3))
  2399  (assert_return (invoke "test" (i32.const 28)) (i32.const 4))
  2400  (assert_return (invoke "test" (i32.const 29)) (i32.const 5))
  2401  (assert_return (invoke "test" (i32.const 30)) (i32.const 6))
  2402  (assert_return (invoke "test" (i32.const 31)) (i32.const 7))
  2403  
  2404  (module
  2405    (type (func (result i32)))
  2406    (table 32 64 funcref)
  2407    (elem (i32.const 23)
  2408           $f0 $f1 $f2 $f3 $f4 $f5 $f6 $f7 $f8)
  2409    (func $f0 (export "f0") (result i32) (i32.const 0))
  2410    (func $f1 (export "f1") (result i32) (i32.const 1))
  2411    (func $f2 (export "f2") (result i32) (i32.const 2))
  2412    (func $f3 (export "f3") (result i32) (i32.const 3))
  2413    (func $f4 (export "f4") (result i32) (i32.const 4))
  2414    (func $f5 (export "f5") (result i32) (i32.const 5))
  2415    (func $f6 (export "f6") (result i32) (i32.const 6))
  2416    (func $f7 (export "f7") (result i32) (i32.const 7))
  2417    (func $f8 (export "f8") (result i32) (i32.const 8))
  2418    (func $f9 (export "f9") (result i32) (i32.const 9))
  2419    (func $f10 (export "f10") (result i32) (i32.const 10))
  2420    (func $f11 (export "f11") (result i32) (i32.const 11))
  2421    (func $f12 (export "f12") (result i32) (i32.const 12))
  2422    (func $f13 (export "f13") (result i32) (i32.const 13))
  2423    (func $f14 (export "f14") (result i32) (i32.const 14))
  2424    (func $f15 (export "f15") (result i32) (i32.const 15))
  2425    (func (export "test") (param $n i32) (result i32)
  2426      (call_indirect (type 0) (local.get $n)))
  2427    (func (export "run") (param $targetOffs i32) (param $srcOffs i32) (param $len i32)
  2428      (table.copy (local.get $targetOffs) (local.get $srcOffs) (local.get $len))))
  2429  
  2430  (assert_trap (invoke "run" (i32.const 0) (i32.const 23) (i32.const 15))
  2431               "out of bounds table access")
  2432  (assert_trap (invoke "test" (i32.const 0)) "uninitialized element")
  2433  (assert_trap (invoke "test" (i32.const 1)) "uninitialized element")
  2434  (assert_trap (invoke "test" (i32.const 2)) "uninitialized element")
  2435  (assert_trap (invoke "test" (i32.const 3)) "uninitialized element")
  2436  (assert_trap (invoke "test" (i32.const 4)) "uninitialized element")
  2437  (assert_trap (invoke "test" (i32.const 5)) "uninitialized element")
  2438  (assert_trap (invoke "test" (i32.const 6)) "uninitialized element")
  2439  (assert_trap (invoke "test" (i32.const 7)) "uninitialized element")
  2440  (assert_trap (invoke "test" (i32.const 8)) "uninitialized element")
  2441  (assert_trap (invoke "test" (i32.const 9)) "uninitialized element")
  2442  (assert_trap (invoke "test" (i32.const 10)) "uninitialized element")
  2443  (assert_trap (invoke "test" (i32.const 11)) "uninitialized element")
  2444  (assert_trap (invoke "test" (i32.const 12)) "uninitialized element")
  2445  (assert_trap (invoke "test" (i32.const 13)) "uninitialized element")
  2446  (assert_trap (invoke "test" (i32.const 14)) "uninitialized element")
  2447  (assert_trap (invoke "test" (i32.const 15)) "uninitialized element")
  2448  (assert_trap (invoke "test" (i32.const 16)) "uninitialized element")
  2449  (assert_trap (invoke "test" (i32.const 17)) "uninitialized element")
  2450  (assert_trap (invoke "test" (i32.const 18)) "uninitialized element")
  2451  (assert_trap (invoke "test" (i32.const 19)) "uninitialized element")
  2452  (assert_trap (invoke "test" (i32.const 20)) "uninitialized element")
  2453  (assert_trap (invoke "test" (i32.const 21)) "uninitialized element")
  2454  (assert_trap (invoke "test" (i32.const 22)) "uninitialized element")
  2455  (assert_return (invoke "test" (i32.const 23)) (i32.const 0))
  2456  (assert_return (invoke "test" (i32.const 24)) (i32.const 1))
  2457  (assert_return (invoke "test" (i32.const 25)) (i32.const 2))
  2458  (assert_return (invoke "test" (i32.const 26)) (i32.const 3))
  2459  (assert_return (invoke "test" (i32.const 27)) (i32.const 4))
  2460  (assert_return (invoke "test" (i32.const 28)) (i32.const 5))
  2461  (assert_return (invoke "test" (i32.const 29)) (i32.const 6))
  2462  (assert_return (invoke "test" (i32.const 30)) (i32.const 7))
  2463  (assert_return (invoke "test" (i32.const 31)) (i32.const 8))
  2464  
  2465  (module
  2466    (type (func (result i32)))
  2467    (table 32 64 funcref)
  2468    (elem (i32.const 11)
  2469           $f0 $f1 $f2 $f3 $f4 $f5 $f6 $f7)
  2470    (func $f0 (export "f0") (result i32) (i32.const 0))
  2471    (func $f1 (export "f1") (result i32) (i32.const 1))
  2472    (func $f2 (export "f2") (result i32) (i32.const 2))
  2473    (func $f3 (export "f3") (result i32) (i32.const 3))
  2474    (func $f4 (export "f4") (result i32) (i32.const 4))
  2475    (func $f5 (export "f5") (result i32) (i32.const 5))
  2476    (func $f6 (export "f6") (result i32) (i32.const 6))
  2477    (func $f7 (export "f7") (result i32) (i32.const 7))
  2478    (func $f8 (export "f8") (result i32) (i32.const 8))
  2479    (func $f9 (export "f9") (result i32) (i32.const 9))
  2480    (func $f10 (export "f10") (result i32) (i32.const 10))
  2481    (func $f11 (export "f11") (result i32) (i32.const 11))
  2482    (func $f12 (export "f12") (result i32) (i32.const 12))
  2483    (func $f13 (export "f13") (result i32) (i32.const 13))
  2484    (func $f14 (export "f14") (result i32) (i32.const 14))
  2485    (func $f15 (export "f15") (result i32) (i32.const 15))
  2486    (func (export "test") (param $n i32) (result i32)
  2487      (call_indirect (type 0) (local.get $n)))
  2488    (func (export "run") (param $targetOffs i32) (param $srcOffs i32) (param $len i32)
  2489      (table.copy (local.get $targetOffs) (local.get $srcOffs) (local.get $len))))
  2490  
  2491  (assert_trap (invoke "run" (i32.const 24) (i32.const 11) (i32.const 16))
  2492               "out of bounds table access")
  2493  (assert_trap (invoke "test" (i32.const 0)) "uninitialized element")
  2494  (assert_trap (invoke "test" (i32.const 1)) "uninitialized element")
  2495  (assert_trap (invoke "test" (i32.const 2)) "uninitialized element")
  2496  (assert_trap (invoke "test" (i32.const 3)) "uninitialized element")
  2497  (assert_trap (invoke "test" (i32.const 4)) "uninitialized element")
  2498  (assert_trap (invoke "test" (i32.const 5)) "uninitialized element")
  2499  (assert_trap (invoke "test" (i32.const 6)) "uninitialized element")
  2500  (assert_trap (invoke "test" (i32.const 7)) "uninitialized element")
  2501  (assert_trap (invoke "test" (i32.const 8)) "uninitialized element")
  2502  (assert_trap (invoke "test" (i32.const 9)) "uninitialized element")
  2503  (assert_trap (invoke "test" (i32.const 10)) "uninitialized element")
  2504  (assert_return (invoke "test" (i32.const 11)) (i32.const 0))
  2505  (assert_return (invoke "test" (i32.const 12)) (i32.const 1))
  2506  (assert_return (invoke "test" (i32.const 13)) (i32.const 2))
  2507  (assert_return (invoke "test" (i32.const 14)) (i32.const 3))
  2508  (assert_return (invoke "test" (i32.const 15)) (i32.const 4))
  2509  (assert_return (invoke "test" (i32.const 16)) (i32.const 5))
  2510  (assert_return (invoke "test" (i32.const 17)) (i32.const 6))
  2511  (assert_return (invoke "test" (i32.const 18)) (i32.const 7))
  2512  (assert_trap (invoke "test" (i32.const 19)) "uninitialized element")
  2513  (assert_trap (invoke "test" (i32.const 20)) "uninitialized element")
  2514  (assert_trap (invoke "test" (i32.const 21)) "uninitialized element")
  2515  (assert_trap (invoke "test" (i32.const 22)) "uninitialized element")
  2516  (assert_trap (invoke "test" (i32.const 23)) "uninitialized element")
  2517  (assert_trap (invoke "test" (i32.const 24)) "uninitialized element")
  2518  (assert_trap (invoke "test" (i32.const 25)) "uninitialized element")
  2519  (assert_trap (invoke "test" (i32.const 26)) "uninitialized element")
  2520  (assert_trap (invoke "test" (i32.const 27)) "uninitialized element")
  2521  (assert_trap (invoke "test" (i32.const 28)) "uninitialized element")
  2522  (assert_trap (invoke "test" (i32.const 29)) "uninitialized element")
  2523  (assert_trap (invoke "test" (i32.const 30)) "uninitialized element")
  2524  (assert_trap (invoke "test" (i32.const 31)) "uninitialized element")
  2525  
  2526  (module
  2527    (type (func (result i32)))
  2528    (table 32 64 funcref)
  2529    (elem (i32.const 24)
  2530           $f0 $f1 $f2 $f3 $f4 $f5 $f6 $f7)
  2531    (func $f0 (export "f0") (result i32) (i32.const 0))
  2532    (func $f1 (export "f1") (result i32) (i32.const 1))
  2533    (func $f2 (export "f2") (result i32) (i32.const 2))
  2534    (func $f3 (export "f3") (result i32) (i32.const 3))
  2535    (func $f4 (export "f4") (result i32) (i32.const 4))
  2536    (func $f5 (export "f5") (result i32) (i32.const 5))
  2537    (func $f6 (export "f6") (result i32) (i32.const 6))
  2538    (func $f7 (export "f7") (result i32) (i32.const 7))
  2539    (func $f8 (export "f8") (result i32) (i32.const 8))
  2540    (func $f9 (export "f9") (result i32) (i32.const 9))
  2541    (func $f10 (export "f10") (result i32) (i32.const 10))
  2542    (func $f11 (export "f11") (result i32) (i32.const 11))
  2543    (func $f12 (export "f12") (result i32) (i32.const 12))
  2544    (func $f13 (export "f13") (result i32) (i32.const 13))
  2545    (func $f14 (export "f14") (result i32) (i32.const 14))
  2546    (func $f15 (export "f15") (result i32) (i32.const 15))
  2547    (func (export "test") (param $n i32) (result i32)
  2548      (call_indirect (type 0) (local.get $n)))
  2549    (func (export "run") (param $targetOffs i32) (param $srcOffs i32) (param $len i32)
  2550      (table.copy (local.get $targetOffs) (local.get $srcOffs) (local.get $len))))
  2551  
  2552  (assert_trap (invoke "run" (i32.const 11) (i32.const 24) (i32.const 16))
  2553               "out of bounds table access")
  2554  (assert_trap (invoke "test" (i32.const 0)) "uninitialized element")
  2555  (assert_trap (invoke "test" (i32.const 1)) "uninitialized element")
  2556  (assert_trap (invoke "test" (i32.const 2)) "uninitialized element")
  2557  (assert_trap (invoke "test" (i32.const 3)) "uninitialized element")
  2558  (assert_trap (invoke "test" (i32.const 4)) "uninitialized element")
  2559  (assert_trap (invoke "test" (i32.const 5)) "uninitialized element")
  2560  (assert_trap (invoke "test" (i32.const 6)) "uninitialized element")
  2561  (assert_trap (invoke "test" (i32.const 7)) "uninitialized element")
  2562  (assert_trap (invoke "test" (i32.const 8)) "uninitialized element")
  2563  (assert_trap (invoke "test" (i32.const 9)) "uninitialized element")
  2564  (assert_trap (invoke "test" (i32.const 10)) "uninitialized element")
  2565  (assert_trap (invoke "test" (i32.const 11)) "uninitialized element")
  2566  (assert_trap (invoke "test" (i32.const 12)) "uninitialized element")
  2567  (assert_trap (invoke "test" (i32.const 13)) "uninitialized element")
  2568  (assert_trap (invoke "test" (i32.const 14)) "uninitialized element")
  2569  (assert_trap (invoke "test" (i32.const 15)) "uninitialized element")
  2570  (assert_trap (invoke "test" (i32.const 16)) "uninitialized element")
  2571  (assert_trap (invoke "test" (i32.const 17)) "uninitialized element")
  2572  (assert_trap (invoke "test" (i32.const 18)) "uninitialized element")
  2573  (assert_trap (invoke "test" (i32.const 19)) "uninitialized element")
  2574  (assert_trap (invoke "test" (i32.const 20)) "uninitialized element")
  2575  (assert_trap (invoke "test" (i32.const 21)) "uninitialized element")
  2576  (assert_trap (invoke "test" (i32.const 22)) "uninitialized element")
  2577  (assert_trap (invoke "test" (i32.const 23)) "uninitialized element")
  2578  (assert_return (invoke "test" (i32.const 24)) (i32.const 0))
  2579  (assert_return (invoke "test" (i32.const 25)) (i32.const 1))
  2580  (assert_return (invoke "test" (i32.const 26)) (i32.const 2))
  2581  (assert_return (invoke "test" (i32.const 27)) (i32.const 3))
  2582  (assert_return (invoke "test" (i32.const 28)) (i32.const 4))
  2583  (assert_return (invoke "test" (i32.const 29)) (i32.const 5))
  2584  (assert_return (invoke "test" (i32.const 30)) (i32.const 6))
  2585  (assert_return (invoke "test" (i32.const 31)) (i32.const 7))
  2586  
  2587  (module
  2588    (type (func (result i32)))
  2589    (table 32 64 funcref)
  2590    (elem (i32.const 21)
  2591           $f0 $f1 $f2 $f3 $f4 $f5 $f6 $f7)
  2592    (func $f0 (export "f0") (result i32) (i32.const 0))
  2593    (func $f1 (export "f1") (result i32) (i32.const 1))
  2594    (func $f2 (export "f2") (result i32) (i32.const 2))
  2595    (func $f3 (export "f3") (result i32) (i32.const 3))
  2596    (func $f4 (export "f4") (result i32) (i32.const 4))
  2597    (func $f5 (export "f5") (result i32) (i32.const 5))
  2598    (func $f6 (export "f6") (result i32) (i32.const 6))
  2599    (func $f7 (export "f7") (result i32) (i32.const 7))
  2600    (func $f8 (export "f8") (result i32) (i32.const 8))
  2601    (func $f9 (export "f9") (result i32) (i32.const 9))
  2602    (func $f10 (export "f10") (result i32) (i32.const 10))
  2603    (func $f11 (export "f11") (result i32) (i32.const 11))
  2604    (func $f12 (export "f12") (result i32) (i32.const 12))
  2605    (func $f13 (export "f13") (result i32) (i32.const 13))
  2606    (func $f14 (export "f14") (result i32) (i32.const 14))
  2607    (func $f15 (export "f15") (result i32) (i32.const 15))
  2608    (func (export "test") (param $n i32) (result i32)
  2609      (call_indirect (type 0) (local.get $n)))
  2610    (func (export "run") (param $targetOffs i32) (param $srcOffs i32) (param $len i32)
  2611      (table.copy (local.get $targetOffs) (local.get $srcOffs) (local.get $len))))
  2612  
  2613  (assert_trap (invoke "run" (i32.const 24) (i32.const 21) (i32.const 16))
  2614               "out of bounds table access")
  2615  (assert_trap (invoke "test" (i32.const 0)) "uninitialized element")
  2616  (assert_trap (invoke "test" (i32.const 1)) "uninitialized element")
  2617  (assert_trap (invoke "test" (i32.const 2)) "uninitialized element")
  2618  (assert_trap (invoke "test" (i32.const 3)) "uninitialized element")
  2619  (assert_trap (invoke "test" (i32.const 4)) "uninitialized element")
  2620  (assert_trap (invoke "test" (i32.const 5)) "uninitialized element")
  2621  (assert_trap (invoke "test" (i32.const 6)) "uninitialized element")
  2622  (assert_trap (invoke "test" (i32.const 7)) "uninitialized element")
  2623  (assert_trap (invoke "test" (i32.const 8)) "uninitialized element")
  2624  (assert_trap (invoke "test" (i32.const 9)) "uninitialized element")
  2625  (assert_trap (invoke "test" (i32.const 10)) "uninitialized element")
  2626  (assert_trap (invoke "test" (i32.const 11)) "uninitialized element")
  2627  (assert_trap (invoke "test" (i32.const 12)) "uninitialized element")
  2628  (assert_trap (invoke "test" (i32.const 13)) "uninitialized element")
  2629  (assert_trap (invoke "test" (i32.const 14)) "uninitialized element")
  2630  (assert_trap (invoke "test" (i32.const 15)) "uninitialized element")
  2631  (assert_trap (invoke "test" (i32.const 16)) "uninitialized element")
  2632  (assert_trap (invoke "test" (i32.const 17)) "uninitialized element")
  2633  (assert_trap (invoke "test" (i32.const 18)) "uninitialized element")
  2634  (assert_trap (invoke "test" (i32.const 19)) "uninitialized element")
  2635  (assert_trap (invoke "test" (i32.const 20)) "uninitialized element")
  2636  (assert_return (invoke "test" (i32.const 21)) (i32.const 0))
  2637  (assert_return (invoke "test" (i32.const 22)) (i32.const 1))
  2638  (assert_return (invoke "test" (i32.const 23)) (i32.const 2))
  2639  (assert_return (invoke "test" (i32.const 24)) (i32.const 3))
  2640  (assert_return (invoke "test" (i32.const 25)) (i32.const 4))
  2641  (assert_return (invoke "test" (i32.const 26)) (i32.const 5))
  2642  (assert_return (invoke "test" (i32.const 27)) (i32.const 6))
  2643  (assert_return (invoke "test" (i32.const 28)) (i32.const 7))
  2644  (assert_trap (invoke "test" (i32.const 29)) "uninitialized element")
  2645  (assert_trap (invoke "test" (i32.const 30)) "uninitialized element")
  2646  (assert_trap (invoke "test" (i32.const 31)) "uninitialized element")
  2647  
  2648  (module
  2649    (type (func (result i32)))
  2650    (table 32 64 funcref)
  2651    (elem (i32.const 24)
  2652           $f0 $f1 $f2 $f3 $f4 $f5 $f6 $f7)
  2653    (func $f0 (export "f0") (result i32) (i32.const 0))
  2654    (func $f1 (export "f1") (result i32) (i32.const 1))
  2655    (func $f2 (export "f2") (result i32) (i32.const 2))
  2656    (func $f3 (export "f3") (result i32) (i32.const 3))
  2657    (func $f4 (export "f4") (result i32) (i32.const 4))
  2658    (func $f5 (export "f5") (result i32) (i32.const 5))
  2659    (func $f6 (export "f6") (result i32) (i32.const 6))
  2660    (func $f7 (export "f7") (result i32) (i32.const 7))
  2661    (func $f8 (export "f8") (result i32) (i32.const 8))
  2662    (func $f9 (export "f9") (result i32) (i32.const 9))
  2663    (func $f10 (export "f10") (result i32) (i32.const 10))
  2664    (func $f11 (export "f11") (result i32) (i32.const 11))
  2665    (func $f12 (export "f12") (result i32) (i32.const 12))
  2666    (func $f13 (export "f13") (result i32) (i32.const 13))
  2667    (func $f14 (export "f14") (result i32) (i32.const 14))
  2668    (func $f15 (export "f15") (result i32) (i32.const 15))
  2669    (func (export "test") (param $n i32) (result i32)
  2670      (call_indirect (type 0) (local.get $n)))
  2671    (func (export "run") (param $targetOffs i32) (param $srcOffs i32) (param $len i32)
  2672      (table.copy (local.get $targetOffs) (local.get $srcOffs) (local.get $len))))
  2673  
  2674  (assert_trap (invoke "run" (i32.const 21) (i32.const 24) (i32.const 16))
  2675               "out of bounds table access")
  2676  (assert_trap (invoke "test" (i32.const 0)) "uninitialized element")
  2677  (assert_trap (invoke "test" (i32.const 1)) "uninitialized element")
  2678  (assert_trap (invoke "test" (i32.const 2)) "uninitialized element")
  2679  (assert_trap (invoke "test" (i32.const 3)) "uninitialized element")
  2680  (assert_trap (invoke "test" (i32.const 4)) "uninitialized element")
  2681  (assert_trap (invoke "test" (i32.const 5)) "uninitialized element")
  2682  (assert_trap (invoke "test" (i32.const 6)) "uninitialized element")
  2683  (assert_trap (invoke "test" (i32.const 7)) "uninitialized element")
  2684  (assert_trap (invoke "test" (i32.const 8)) "uninitialized element")
  2685  (assert_trap (invoke "test" (i32.const 9)) "uninitialized element")
  2686  (assert_trap (invoke "test" (i32.const 10)) "uninitialized element")
  2687  (assert_trap (invoke "test" (i32.const 11)) "uninitialized element")
  2688  (assert_trap (invoke "test" (i32.const 12)) "uninitialized element")
  2689  (assert_trap (invoke "test" (i32.const 13)) "uninitialized element")
  2690  (assert_trap (invoke "test" (i32.const 14)) "uninitialized element")
  2691  (assert_trap (invoke "test" (i32.const 15)) "uninitialized element")
  2692  (assert_trap (invoke "test" (i32.const 16)) "uninitialized element")
  2693  (assert_trap (invoke "test" (i32.const 17)) "uninitialized element")
  2694  (assert_trap (invoke "test" (i32.const 18)) "uninitialized element")
  2695  (assert_trap (invoke "test" (i32.const 19)) "uninitialized element")
  2696  (assert_trap (invoke "test" (i32.const 20)) "uninitialized element")
  2697  (assert_trap (invoke "test" (i32.const 21)) "uninitialized element")
  2698  (assert_trap (invoke "test" (i32.const 22)) "uninitialized element")
  2699  (assert_trap (invoke "test" (i32.const 23)) "uninitialized element")
  2700  (assert_return (invoke "test" (i32.const 24)) (i32.const 0))
  2701  (assert_return (invoke "test" (i32.const 25)) (i32.const 1))
  2702  (assert_return (invoke "test" (i32.const 26)) (i32.const 2))
  2703  (assert_return (invoke "test" (i32.const 27)) (i32.const 3))
  2704  (assert_return (invoke "test" (i32.const 28)) (i32.const 4))
  2705  (assert_return (invoke "test" (i32.const 29)) (i32.const 5))
  2706  (assert_return (invoke "test" (i32.const 30)) (i32.const 6))
  2707  (assert_return (invoke "test" (i32.const 31)) (i32.const 7))
  2708  
  2709  (module
  2710    (type (func (result i32)))
  2711    (table 32 64 funcref)
  2712    (elem (i32.const 21)
  2713           $f0 $f1 $f2 $f3 $f4 $f5 $f6 $f7 $f8 $f9 $f10)
  2714    (func $f0 (export "f0") (result i32) (i32.const 0))
  2715    (func $f1 (export "f1") (result i32) (i32.const 1))
  2716    (func $f2 (export "f2") (result i32) (i32.const 2))
  2717    (func $f3 (export "f3") (result i32) (i32.const 3))
  2718    (func $f4 (export "f4") (result i32) (i32.const 4))
  2719    (func $f5 (export "f5") (result i32) (i32.const 5))
  2720    (func $f6 (export "f6") (result i32) (i32.const 6))
  2721    (func $f7 (export "f7") (result i32) (i32.const 7))
  2722    (func $f8 (export "f8") (result i32) (i32.const 8))
  2723    (func $f9 (export "f9") (result i32) (i32.const 9))
  2724    (func $f10 (export "f10") (result i32) (i32.const 10))
  2725    (func $f11 (export "f11") (result i32) (i32.const 11))
  2726    (func $f12 (export "f12") (result i32) (i32.const 12))
  2727    (func $f13 (export "f13") (result i32) (i32.const 13))
  2728    (func $f14 (export "f14") (result i32) (i32.const 14))
  2729    (func $f15 (export "f15") (result i32) (i32.const 15))
  2730    (func (export "test") (param $n i32) (result i32)
  2731      (call_indirect (type 0) (local.get $n)))
  2732    (func (export "run") (param $targetOffs i32) (param $srcOffs i32) (param $len i32)
  2733      (table.copy (local.get $targetOffs) (local.get $srcOffs) (local.get $len))))
  2734  
  2735  (assert_trap (invoke "run" (i32.const 21) (i32.const 21) (i32.const 16))
  2736               "out of bounds table access")
  2737  (assert_trap (invoke "test" (i32.const 0)) "uninitialized element")
  2738  (assert_trap (invoke "test" (i32.const 1)) "uninitialized element")
  2739  (assert_trap (invoke "test" (i32.const 2)) "uninitialized element")
  2740  (assert_trap (invoke "test" (i32.const 3)) "uninitialized element")
  2741  (assert_trap (invoke "test" (i32.const 4)) "uninitialized element")
  2742  (assert_trap (invoke "test" (i32.const 5)) "uninitialized element")
  2743  (assert_trap (invoke "test" (i32.const 6)) "uninitialized element")
  2744  (assert_trap (invoke "test" (i32.const 7)) "uninitialized element")
  2745  (assert_trap (invoke "test" (i32.const 8)) "uninitialized element")
  2746  (assert_trap (invoke "test" (i32.const 9)) "uninitialized element")
  2747  (assert_trap (invoke "test" (i32.const 10)) "uninitialized element")
  2748  (assert_trap (invoke "test" (i32.const 11)) "uninitialized element")
  2749  (assert_trap (invoke "test" (i32.const 12)) "uninitialized element")
  2750  (assert_trap (invoke "test" (i32.const 13)) "uninitialized element")
  2751  (assert_trap (invoke "test" (i32.const 14)) "uninitialized element")
  2752  (assert_trap (invoke "test" (i32.const 15)) "uninitialized element")
  2753  (assert_trap (invoke "test" (i32.const 16)) "uninitialized element")
  2754  (assert_trap (invoke "test" (i32.const 17)) "uninitialized element")
  2755  (assert_trap (invoke "test" (i32.const 18)) "uninitialized element")
  2756  (assert_trap (invoke "test" (i32.const 19)) "uninitialized element")
  2757  (assert_trap (invoke "test" (i32.const 20)) "uninitialized element")
  2758  (assert_return (invoke "test" (i32.const 21)) (i32.const 0))
  2759  (assert_return (invoke "test" (i32.const 22)) (i32.const 1))
  2760  (assert_return (invoke "test" (i32.const 23)) (i32.const 2))
  2761  (assert_return (invoke "test" (i32.const 24)) (i32.const 3))
  2762  (assert_return (invoke "test" (i32.const 25)) (i32.const 4))
  2763  (assert_return (invoke "test" (i32.const 26)) (i32.const 5))
  2764  (assert_return (invoke "test" (i32.const 27)) (i32.const 6))
  2765  (assert_return (invoke "test" (i32.const 28)) (i32.const 7))
  2766  (assert_return (invoke "test" (i32.const 29)) (i32.const 8))
  2767  (assert_return (invoke "test" (i32.const 30)) (i32.const 9))
  2768  (assert_return (invoke "test" (i32.const 31)) (i32.const 10))
  2769  
  2770  (module
  2771    (type (func (result i32)))
  2772    (table 128 128 funcref)
  2773    (elem (i32.const 112)
  2774           $f0 $f1 $f2 $f3 $f4 $f5 $f6 $f7 $f8 $f9 $f10 $f11 $f12 $f13 $f14 $f15)
  2775    (func $f0 (export "f0") (result i32) (i32.const 0))
  2776    (func $f1 (export "f1") (result i32) (i32.const 1))
  2777    (func $f2 (export "f2") (result i32) (i32.const 2))
  2778    (func $f3 (export "f3") (result i32) (i32.const 3))
  2779    (func $f4 (export "f4") (result i32) (i32.const 4))
  2780    (func $f5 (export "f5") (result i32) (i32.const 5))
  2781    (func $f6 (export "f6") (result i32) (i32.const 6))
  2782    (func $f7 (export "f7") (result i32) (i32.const 7))
  2783    (func $f8 (export "f8") (result i32) (i32.const 8))
  2784    (func $f9 (export "f9") (result i32) (i32.const 9))
  2785    (func $f10 (export "f10") (result i32) (i32.const 10))
  2786    (func $f11 (export "f11") (result i32) (i32.const 11))
  2787    (func $f12 (export "f12") (result i32) (i32.const 12))
  2788    (func $f13 (export "f13") (result i32) (i32.const 13))
  2789    (func $f14 (export "f14") (result i32) (i32.const 14))
  2790    (func $f15 (export "f15") (result i32) (i32.const 15))
  2791    (func (export "test") (param $n i32) (result i32)
  2792      (call_indirect (type 0) (local.get $n)))
  2793    (func (export "run") (param $targetOffs i32) (param $srcOffs i32) (param $len i32)
  2794      (table.copy (local.get $targetOffs) (local.get $srcOffs) (local.get $len))))
  2795  
  2796  (assert_trap (invoke "run" (i32.const 0) (i32.const 112) (i32.const 4294967264))
  2797               "out of bounds table access")
  2798  (assert_trap (invoke "test" (i32.const 0)) "uninitialized element")
  2799  (assert_trap (invoke "test" (i32.const 1)) "uninitialized element")
  2800  (assert_trap (invoke "test" (i32.const 2)) "uninitialized element")
  2801  (assert_trap (invoke "test" (i32.const 3)) "uninitialized element")
  2802  (assert_trap (invoke "test" (i32.const 4)) "uninitialized element")
  2803  (assert_trap (invoke "test" (i32.const 5)) "uninitialized element")
  2804  (assert_trap (invoke "test" (i32.const 6)) "uninitialized element")
  2805  (assert_trap (invoke "test" (i32.const 7)) "uninitialized element")
  2806  (assert_trap (invoke "test" (i32.const 8)) "uninitialized element")
  2807  (assert_trap (invoke "test" (i32.const 9)) "uninitialized element")
  2808  (assert_trap (invoke "test" (i32.const 10)) "uninitialized element")
  2809  (assert_trap (invoke "test" (i32.const 11)) "uninitialized element")
  2810  (assert_trap (invoke "test" (i32.const 12)) "uninitialized element")
  2811  (assert_trap (invoke "test" (i32.const 13)) "uninitialized element")
  2812  (assert_trap (invoke "test" (i32.const 14)) "uninitialized element")
  2813  (assert_trap (invoke "test" (i32.const 15)) "uninitialized element")
  2814  (assert_trap (invoke "test" (i32.const 16)) "uninitialized element")
  2815  (assert_trap (invoke "test" (i32.const 17)) "uninitialized element")
  2816  (assert_trap (invoke "test" (i32.const 18)) "uninitialized element")
  2817  (assert_trap (invoke "test" (i32.const 19)) "uninitialized element")
  2818  (assert_trap (invoke "test" (i32.const 20)) "uninitialized element")
  2819  (assert_trap (invoke "test" (i32.const 21)) "uninitialized element")
  2820  (assert_trap (invoke "test" (i32.const 22)) "uninitialized element")
  2821  (assert_trap (invoke "test" (i32.const 23)) "uninitialized element")
  2822  (assert_trap (invoke "test" (i32.const 24)) "uninitialized element")
  2823  (assert_trap (invoke "test" (i32.const 25)) "uninitialized element")
  2824  (assert_trap (invoke "test" (i32.const 26)) "uninitialized element")
  2825  (assert_trap (invoke "test" (i32.const 27)) "uninitialized element")
  2826  (assert_trap (invoke "test" (i32.const 28)) "uninitialized element")
  2827  (assert_trap (invoke "test" (i32.const 29)) "uninitialized element")
  2828  (assert_trap (invoke "test" (i32.const 30)) "uninitialized element")
  2829  (assert_trap (invoke "test" (i32.const 31)) "uninitialized element")
  2830  (assert_trap (invoke "test" (i32.const 32)) "uninitialized element")
  2831  (assert_trap (invoke "test" (i32.const 33)) "uninitialized element")
  2832  (assert_trap (invoke "test" (i32.const 34)) "uninitialized element")
  2833  (assert_trap (invoke "test" (i32.const 35)) "uninitialized element")
  2834  (assert_trap (invoke "test" (i32.const 36)) "uninitialized element")
  2835  (assert_trap (invoke "test" (i32.const 37)) "uninitialized element")
  2836  (assert_trap (invoke "test" (i32.const 38)) "uninitialized element")
  2837  (assert_trap (invoke "test" (i32.const 39)) "uninitialized element")
  2838  (assert_trap (invoke "test" (i32.const 40)) "uninitialized element")
  2839  (assert_trap (invoke "test" (i32.const 41)) "uninitialized element")
  2840  (assert_trap (invoke "test" (i32.const 42)) "uninitialized element")
  2841  (assert_trap (invoke "test" (i32.const 43)) "uninitialized element")
  2842  (assert_trap (invoke "test" (i32.const 44)) "uninitialized element")
  2843  (assert_trap (invoke "test" (i32.const 45)) "uninitialized element")
  2844  (assert_trap (invoke "test" (i32.const 46)) "uninitialized element")
  2845  (assert_trap (invoke "test" (i32.const 47)) "uninitialized element")
  2846  (assert_trap (invoke "test" (i32.const 48)) "uninitialized element")
  2847  (assert_trap (invoke "test" (i32.const 49)) "uninitialized element")
  2848  (assert_trap (invoke "test" (i32.const 50)) "uninitialized element")
  2849  (assert_trap (invoke "test" (i32.const 51)) "uninitialized element")
  2850  (assert_trap (invoke "test" (i32.const 52)) "uninitialized element")
  2851  (assert_trap (invoke "test" (i32.const 53)) "uninitialized element")
  2852  (assert_trap (invoke "test" (i32.const 54)) "uninitialized element")
  2853  (assert_trap (invoke "test" (i32.const 55)) "uninitialized element")
  2854  (assert_trap (invoke "test" (i32.const 56)) "uninitialized element")
  2855  (assert_trap (invoke "test" (i32.const 57)) "uninitialized element")
  2856  (assert_trap (invoke "test" (i32.const 58)) "uninitialized element")
  2857  (assert_trap (invoke "test" (i32.const 59)) "uninitialized element")
  2858  (assert_trap (invoke "test" (i32.const 60)) "uninitialized element")
  2859  (assert_trap (invoke "test" (i32.const 61)) "uninitialized element")
  2860  (assert_trap (invoke "test" (i32.const 62)) "uninitialized element")
  2861  (assert_trap (invoke "test" (i32.const 63)) "uninitialized element")
  2862  (assert_trap (invoke "test" (i32.const 64)) "uninitialized element")
  2863  (assert_trap (invoke "test" (i32.const 65)) "uninitialized element")
  2864  (assert_trap (invoke "test" (i32.const 66)) "uninitialized element")
  2865  (assert_trap (invoke "test" (i32.const 67)) "uninitialized element")
  2866  (assert_trap (invoke "test" (i32.const 68)) "uninitialized element")
  2867  (assert_trap (invoke "test" (i32.const 69)) "uninitialized element")
  2868  (assert_trap (invoke "test" (i32.const 70)) "uninitialized element")
  2869  (assert_trap (invoke "test" (i32.const 71)) "uninitialized element")
  2870  (assert_trap (invoke "test" (i32.const 72)) "uninitialized element")
  2871  (assert_trap (invoke "test" (i32.const 73)) "uninitialized element")
  2872  (assert_trap (invoke "test" (i32.const 74)) "uninitialized element")
  2873  (assert_trap (invoke "test" (i32.const 75)) "uninitialized element")
  2874  (assert_trap (invoke "test" (i32.const 76)) "uninitialized element")
  2875  (assert_trap (invoke "test" (i32.const 77)) "uninitialized element")
  2876  (assert_trap (invoke "test" (i32.const 78)) "uninitialized element")
  2877  (assert_trap (invoke "test" (i32.const 79)) "uninitialized element")
  2878  (assert_trap (invoke "test" (i32.const 80)) "uninitialized element")
  2879  (assert_trap (invoke "test" (i32.const 81)) "uninitialized element")
  2880  (assert_trap (invoke "test" (i32.const 82)) "uninitialized element")
  2881  (assert_trap (invoke "test" (i32.const 83)) "uninitialized element")
  2882  (assert_trap (invoke "test" (i32.const 84)) "uninitialized element")
  2883  (assert_trap (invoke "test" (i32.const 85)) "uninitialized element")
  2884  (assert_trap (invoke "test" (i32.const 86)) "uninitialized element")
  2885  (assert_trap (invoke "test" (i32.const 87)) "uninitialized element")
  2886  (assert_trap (invoke "test" (i32.const 88)) "uninitialized element")
  2887  (assert_trap (invoke "test" (i32.const 89)) "uninitialized element")
  2888  (assert_trap (invoke "test" (i32.const 90)) "uninitialized element")
  2889  (assert_trap (invoke "test" (i32.const 91)) "uninitialized element")
  2890  (assert_trap (invoke "test" (i32.const 92)) "uninitialized element")
  2891  (assert_trap (invoke "test" (i32.const 93)) "uninitialized element")
  2892  (assert_trap (invoke "test" (i32.const 94)) "uninitialized element")
  2893  (assert_trap (invoke "test" (i32.const 95)) "uninitialized element")
  2894  (assert_trap (invoke "test" (i32.const 96)) "uninitialized element")
  2895  (assert_trap (invoke "test" (i32.const 97)) "uninitialized element")
  2896  (assert_trap (invoke "test" (i32.const 98)) "uninitialized element")
  2897  (assert_trap (invoke "test" (i32.const 99)) "uninitialized element")
  2898  (assert_trap (invoke "test" (i32.const 100)) "uninitialized element")
  2899  (assert_trap (invoke "test" (i32.const 101)) "uninitialized element")
  2900  (assert_trap (invoke "test" (i32.const 102)) "uninitialized element")
  2901  (assert_trap (invoke "test" (i32.const 103)) "uninitialized element")
  2902  (assert_trap (invoke "test" (i32.const 104)) "uninitialized element")
  2903  (assert_trap (invoke "test" (i32.const 105)) "uninitialized element")
  2904  (assert_trap (invoke "test" (i32.const 106)) "uninitialized element")
  2905  (assert_trap (invoke "test" (i32.const 107)) "uninitialized element")
  2906  (assert_trap (invoke "test" (i32.const 108)) "uninitialized element")
  2907  (assert_trap (invoke "test" (i32.const 109)) "uninitialized element")
  2908  (assert_trap (invoke "test" (i32.const 110)) "uninitialized element")
  2909  (assert_trap (invoke "test" (i32.const 111)) "uninitialized element")
  2910  (assert_return (invoke "test" (i32.const 112)) (i32.const 0))
  2911  (assert_return (invoke "test" (i32.const 113)) (i32.const 1))
  2912  (assert_return (invoke "test" (i32.const 114)) (i32.const 2))
  2913  (assert_return (invoke "test" (i32.const 115)) (i32.const 3))
  2914  (assert_return (invoke "test" (i32.const 116)) (i32.const 4))
  2915  (assert_return (invoke "test" (i32.const 117)) (i32.const 5))
  2916  (assert_return (invoke "test" (i32.const 118)) (i32.const 6))
  2917  (assert_return (invoke "test" (i32.const 119)) (i32.const 7))
  2918  (assert_return (invoke "test" (i32.const 120)) (i32.const 8))
  2919  (assert_return (invoke "test" (i32.const 121)) (i32.const 9))
  2920  (assert_return (invoke "test" (i32.const 122)) (i32.const 10))
  2921  (assert_return (invoke "test" (i32.const 123)) (i32.const 11))
  2922  (assert_return (invoke "test" (i32.const 124)) (i32.const 12))
  2923  (assert_return (invoke "test" (i32.const 125)) (i32.const 13))
  2924  (assert_return (invoke "test" (i32.const 126)) (i32.const 14))
  2925  (assert_return (invoke "test" (i32.const 127)) (i32.const 15))
  2926  
  2927  (module
  2928    (type (func (result i32)))
  2929    (table 128 128 funcref)
  2930    (elem (i32.const 0)
  2931           $f0 $f1 $f2 $f3 $f4 $f5 $f6 $f7 $f8 $f9 $f10 $f11 $f12 $f13 $f14 $f15)
  2932    (func $f0 (export "f0") (result i32) (i32.const 0))
  2933    (func $f1 (export "f1") (result i32) (i32.const 1))
  2934    (func $f2 (export "f2") (result i32) (i32.const 2))
  2935    (func $f3 (export "f3") (result i32) (i32.const 3))
  2936    (func $f4 (export "f4") (result i32) (i32.const 4))
  2937    (func $f5 (export "f5") (result i32) (i32.const 5))
  2938    (func $f6 (export "f6") (result i32) (i32.const 6))
  2939    (func $f7 (export "f7") (result i32) (i32.const 7))
  2940    (func $f8 (export "f8") (result i32) (i32.const 8))
  2941    (func $f9 (export "f9") (result i32) (i32.const 9))
  2942    (func $f10 (export "f10") (result i32) (i32.const 10))
  2943    (func $f11 (export "f11") (result i32) (i32.const 11))
  2944    (func $f12 (export "f12") (result i32) (i32.const 12))
  2945    (func $f13 (export "f13") (result i32) (i32.const 13))
  2946    (func $f14 (export "f14") (result i32) (i32.const 14))
  2947    (func $f15 (export "f15") (result i32) (i32.const 15))
  2948    (func (export "test") (param $n i32) (result i32)
  2949      (call_indirect (type 0) (local.get $n)))
  2950    (func (export "run") (param $targetOffs i32) (param $srcOffs i32) (param $len i32)
  2951      (table.copy (local.get $targetOffs) (local.get $srcOffs) (local.get $len))))
  2952  
  2953  (assert_trap (invoke "run" (i32.const 112) (i32.const 0) (i32.const 4294967264))
  2954               "out of bounds table access")
  2955  (assert_return (invoke "test" (i32.const 0)) (i32.const 0))
  2956  (assert_return (invoke "test" (i32.const 1)) (i32.const 1))
  2957  (assert_return (invoke "test" (i32.const 2)) (i32.const 2))
  2958  (assert_return (invoke "test" (i32.const 3)) (i32.const 3))
  2959  (assert_return (invoke "test" (i32.const 4)) (i32.const 4))
  2960  (assert_return (invoke "test" (i32.const 5)) (i32.const 5))
  2961  (assert_return (invoke "test" (i32.const 6)) (i32.const 6))
  2962  (assert_return (invoke "test" (i32.const 7)) (i32.const 7))
  2963  (assert_return (invoke "test" (i32.const 8)) (i32.const 8))
  2964  (assert_return (invoke "test" (i32.const 9)) (i32.const 9))
  2965  (assert_return (invoke "test" (i32.const 10)) (i32.const 10))
  2966  (assert_return (invoke "test" (i32.const 11)) (i32.const 11))
  2967  (assert_return (invoke "test" (i32.const 12)) (i32.const 12))
  2968  (assert_return (invoke "test" (i32.const 13)) (i32.const 13))
  2969  (assert_return (invoke "test" (i32.const 14)) (i32.const 14))
  2970  (assert_return (invoke "test" (i32.const 15)) (i32.const 15))
  2971  (assert_trap (invoke "test" (i32.const 16)) "uninitialized element")
  2972  (assert_trap (invoke "test" (i32.const 17)) "uninitialized element")
  2973  (assert_trap (invoke "test" (i32.const 18)) "uninitialized element")
  2974  (assert_trap (invoke "test" (i32.const 19)) "uninitialized element")
  2975  (assert_trap (invoke "test" (i32.const 20)) "uninitialized element")
  2976  (assert_trap (invoke "test" (i32.const 21)) "uninitialized element")
  2977  (assert_trap (invoke "test" (i32.const 22)) "uninitialized element")
  2978  (assert_trap (invoke "test" (i32.const 23)) "uninitialized element")
  2979  (assert_trap (invoke "test" (i32.const 24)) "uninitialized element")
  2980  (assert_trap (invoke "test" (i32.const 25)) "uninitialized element")
  2981  (assert_trap (invoke "test" (i32.const 26)) "uninitialized element")
  2982  (assert_trap (invoke "test" (i32.const 27)) "uninitialized element")
  2983  (assert_trap (invoke "test" (i32.const 28)) "uninitialized element")
  2984  (assert_trap (invoke "test" (i32.const 29)) "uninitialized element")
  2985  (assert_trap (invoke "test" (i32.const 30)) "uninitialized element")
  2986  (assert_trap (invoke "test" (i32.const 31)) "uninitialized element")
  2987  (assert_trap (invoke "test" (i32.const 32)) "uninitialized element")
  2988  (assert_trap (invoke "test" (i32.const 33)) "uninitialized element")
  2989  (assert_trap (invoke "test" (i32.const 34)) "uninitialized element")
  2990  (assert_trap (invoke "test" (i32.const 35)) "uninitialized element")
  2991  (assert_trap (invoke "test" (i32.const 36)) "uninitialized element")
  2992  (assert_trap (invoke "test" (i32.const 37)) "uninitialized element")
  2993  (assert_trap (invoke "test" (i32.const 38)) "uninitialized element")
  2994  (assert_trap (invoke "test" (i32.const 39)) "uninitialized element")
  2995  (assert_trap (invoke "test" (i32.const 40)) "uninitialized element")
  2996  (assert_trap (invoke "test" (i32.const 41)) "uninitialized element")
  2997  (assert_trap (invoke "test" (i32.const 42)) "uninitialized element")
  2998  (assert_trap (invoke "test" (i32.const 43)) "uninitialized element")
  2999  (assert_trap (invoke "test" (i32.const 44)) "uninitialized element")
  3000  (assert_trap (invoke "test" (i32.const 45)) "uninitialized element")
  3001  (assert_trap (invoke "test" (i32.const 46)) "uninitialized element")
  3002  (assert_trap (invoke "test" (i32.const 47)) "uninitialized element")
  3003  (assert_trap (invoke "test" (i32.const 48)) "uninitialized element")
  3004  (assert_trap (invoke "test" (i32.const 49)) "uninitialized element")
  3005  (assert_trap (invoke "test" (i32.const 50)) "uninitialized element")
  3006  (assert_trap (invoke "test" (i32.const 51)) "uninitialized element")
  3007  (assert_trap (invoke "test" (i32.const 52)) "uninitialized element")
  3008  (assert_trap (invoke "test" (i32.const 53)) "uninitialized element")
  3009  (assert_trap (invoke "test" (i32.const 54)) "uninitialized element")
  3010  (assert_trap (invoke "test" (i32.const 55)) "uninitialized element")
  3011  (assert_trap (invoke "test" (i32.const 56)) "uninitialized element")
  3012  (assert_trap (invoke "test" (i32.const 57)) "uninitialized element")
  3013  (assert_trap (invoke "test" (i32.const 58)) "uninitialized element")
  3014  (assert_trap (invoke "test" (i32.const 59)) "uninitialized element")
  3015  (assert_trap (invoke "test" (i32.const 60)) "uninitialized element")
  3016  (assert_trap (invoke "test" (i32.const 61)) "uninitialized element")
  3017  (assert_trap (invoke "test" (i32.const 62)) "uninitialized element")
  3018  (assert_trap (invoke "test" (i32.const 63)) "uninitialized element")
  3019  (assert_trap (invoke "test" (i32.const 64)) "uninitialized element")
  3020  (assert_trap (invoke "test" (i32.const 65)) "uninitialized element")
  3021  (assert_trap (invoke "test" (i32.const 66)) "uninitialized element")
  3022  (assert_trap (invoke "test" (i32.const 67)) "uninitialized element")
  3023  (assert_trap (invoke "test" (i32.const 68)) "uninitialized element")
  3024  (assert_trap (invoke "test" (i32.const 69)) "uninitialized element")
  3025  (assert_trap (invoke "test" (i32.const 70)) "uninitialized element")
  3026  (assert_trap (invoke "test" (i32.const 71)) "uninitialized element")
  3027  (assert_trap (invoke "test" (i32.const 72)) "uninitialized element")
  3028  (assert_trap (invoke "test" (i32.const 73)) "uninitialized element")
  3029  (assert_trap (invoke "test" (i32.const 74)) "uninitialized element")
  3030  (assert_trap (invoke "test" (i32.const 75)) "uninitialized element")
  3031  (assert_trap (invoke "test" (i32.const 76)) "uninitialized element")
  3032  (assert_trap (invoke "test" (i32.const 77)) "uninitialized element")
  3033  (assert_trap (invoke "test" (i32.const 78)) "uninitialized element")
  3034  (assert_trap (invoke "test" (i32.const 79)) "uninitialized element")
  3035  (assert_trap (invoke "test" (i32.const 80)) "uninitialized element")
  3036  (assert_trap (invoke "test" (i32.const 81)) "uninitialized element")
  3037  (assert_trap (invoke "test" (i32.const 82)) "uninitialized element")
  3038  (assert_trap (invoke "test" (i32.const 83)) "uninitialized element")
  3039  (assert_trap (invoke "test" (i32.const 84)) "uninitialized element")
  3040  (assert_trap (invoke "test" (i32.const 85)) "uninitialized element")
  3041  (assert_trap (invoke "test" (i32.const 86)) "uninitialized element")
  3042  (assert_trap (invoke "test" (i32.const 87)) "uninitialized element")
  3043  (assert_trap (invoke "test" (i32.const 88)) "uninitialized element")
  3044  (assert_trap (invoke "test" (i32.const 89)) "uninitialized element")
  3045  (assert_trap (invoke "test" (i32.const 90)) "uninitialized element")
  3046  (assert_trap (invoke "test" (i32.const 91)) "uninitialized element")
  3047  (assert_trap (invoke "test" (i32.const 92)) "uninitialized element")
  3048  (assert_trap (invoke "test" (i32.const 93)) "uninitialized element")
  3049  (assert_trap (invoke "test" (i32.const 94)) "uninitialized element")
  3050  (assert_trap (invoke "test" (i32.const 95)) "uninitialized element")
  3051  (assert_trap (invoke "test" (i32.const 96)) "uninitialized element")
  3052  (assert_trap (invoke "test" (i32.const 97)) "uninitialized element")
  3053  (assert_trap (invoke "test" (i32.const 98)) "uninitialized element")
  3054  (assert_trap (invoke "test" (i32.const 99)) "uninitialized element")
  3055  (assert_trap (invoke "test" (i32.const 100)) "uninitialized element")
  3056  (assert_trap (invoke "test" (i32.const 101)) "uninitialized element")
  3057  (assert_trap (invoke "test" (i32.const 102)) "uninitialized element")
  3058  (assert_trap (invoke "test" (i32.const 103)) "uninitialized element")
  3059  (assert_trap (invoke "test" (i32.const 104)) "uninitialized element")
  3060  (assert_trap (invoke "test" (i32.const 105)) "uninitialized element")
  3061  (assert_trap (invoke "test" (i32.const 106)) "uninitialized element")
  3062  (assert_trap (invoke "test" (i32.const 107)) "uninitialized element")
  3063  (assert_trap (invoke "test" (i32.const 108)) "uninitialized element")
  3064  (assert_trap (invoke "test" (i32.const 109)) "uninitialized element")
  3065  (assert_trap (invoke "test" (i32.const 110)) "uninitialized element")
  3066  (assert_trap (invoke "test" (i32.const 111)) "uninitialized element")
  3067  (assert_trap (invoke "test" (i32.const 112)) "uninitialized element")
  3068  (assert_trap (invoke "test" (i32.const 113)) "uninitialized element")
  3069  (assert_trap (invoke "test" (i32.const 114)) "uninitialized element")
  3070  (assert_trap (invoke "test" (i32.const 115)) "uninitialized element")
  3071  (assert_trap (invoke "test" (i32.const 116)) "uninitialized element")
  3072  (assert_trap (invoke "test" (i32.const 117)) "uninitialized element")
  3073  (assert_trap (invoke "test" (i32.const 118)) "uninitialized element")
  3074  (assert_trap (invoke "test" (i32.const 119)) "uninitialized element")
  3075  (assert_trap (invoke "test" (i32.const 120)) "uninitialized element")
  3076  (assert_trap (invoke "test" (i32.const 121)) "uninitialized element")
  3077  (assert_trap (invoke "test" (i32.const 122)) "uninitialized element")
  3078  (assert_trap (invoke "test" (i32.const 123)) "uninitialized element")
  3079  (assert_trap (invoke "test" (i32.const 124)) "uninitialized element")
  3080  (assert_trap (invoke "test" (i32.const 125)) "uninitialized element")
  3081  (assert_trap (invoke "test" (i32.const 126)) "uninitialized element")
  3082  (assert_trap (invoke "test" (i32.const 127)) "uninitialized element")