table_init.wast 93 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149
  1. ;;
  2. ;; Generated by ../meta/generate_table_init.js
  3. ;; DO NOT EDIT THIS FILE. CHANGE THE SOURCE AND REGENERATE.
  4. ;;
  5. (module
  6. (func (export "ef0") (result i32) (i32.const 0))
  7. (func (export "ef1") (result i32) (i32.const 1))
  8. (func (export "ef2") (result i32) (i32.const 2))
  9. (func (export "ef3") (result i32) (i32.const 3))
  10. (func (export "ef4") (result i32) (i32.const 4))
  11. )
  12. (register "a")
  13. (module
  14. (type (func (result i32))) ;; type #0
  15. ;; aot mode does not support module linking
  16. (func (result i32) (i32.const 0)) ;; index 0
  17. (func (result i32) (i32.const 1))
  18. (func (result i32) (i32.const 2))
  19. (func (result i32) (i32.const 3))
  20. (func (result i32) (i32.const 4)) ;; index 4
  21. (table $t0 30 30 funcref)
  22. (table $t1 30 30 funcref)
  23. (elem (table $t0) (i32.const 2) func 3 1 4 1)
  24. (elem funcref
  25. (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
  26. (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
  27. (elem funcref
  28. (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
  29. (func (result i32) (i32.const 5)) ;; index 5
  30. (func (result i32) (i32.const 6))
  31. (func (result i32) (i32.const 7))
  32. (func (result i32) (i32.const 8))
  33. (func (result i32) (i32.const 9)) ;; index 9
  34. (func (export "test")
  35. (table.init $t0 1 (i32.const 7) (i32.const 0) (i32.const 4)))
  36. (func (export "check") (param i32) (result i32)
  37. (call_indirect $t0 (type 0) (local.get 0)))
  38. )
  39. (invoke "test")
  40. (assert_trap (invoke "check" (i32.const 0)) "uninitialized element")
  41. (assert_trap (invoke "check" (i32.const 1)) "uninitialized element")
  42. (assert_return (invoke "check" (i32.const 2)) (i32.const 3))
  43. (assert_return (invoke "check" (i32.const 3)) (i32.const 1))
  44. (assert_return (invoke "check" (i32.const 4)) (i32.const 4))
  45. (assert_return (invoke "check" (i32.const 5)) (i32.const 1))
  46. (assert_trap (invoke "check" (i32.const 6)) "uninitialized element")
  47. (assert_return (invoke "check" (i32.const 7)) (i32.const 2))
  48. (assert_return (invoke "check" (i32.const 8)) (i32.const 7))
  49. (assert_return (invoke "check" (i32.const 9)) (i32.const 1))
  50. (assert_return (invoke "check" (i32.const 10)) (i32.const 8))
  51. (assert_trap (invoke "check" (i32.const 11)) "uninitialized element")
  52. (assert_return (invoke "check" (i32.const 12)) (i32.const 7))
  53. (assert_return (invoke "check" (i32.const 13)) (i32.const 5))
  54. (assert_return (invoke "check" (i32.const 14)) (i32.const 2))
  55. (assert_return (invoke "check" (i32.const 15)) (i32.const 3))
  56. (assert_return (invoke "check" (i32.const 16)) (i32.const 6))
  57. (assert_trap (invoke "check" (i32.const 17)) "uninitialized element")
  58. (assert_trap (invoke "check" (i32.const 18)) "uninitialized element")
  59. (assert_trap (invoke "check" (i32.const 19)) "uninitialized element")
  60. (assert_trap (invoke "check" (i32.const 20)) "uninitialized element")
  61. (assert_trap (invoke "check" (i32.const 21)) "uninitialized element")
  62. (assert_trap (invoke "check" (i32.const 22)) "uninitialized element")
  63. (assert_trap (invoke "check" (i32.const 23)) "uninitialized element")
  64. (assert_trap (invoke "check" (i32.const 24)) "uninitialized element")
  65. (assert_trap (invoke "check" (i32.const 25)) "uninitialized element")
  66. (assert_trap (invoke "check" (i32.const 26)) "uninitialized element")
  67. (assert_trap (invoke "check" (i32.const 27)) "uninitialized element")
  68. (assert_trap (invoke "check" (i32.const 28)) "uninitialized element")
  69. (assert_trap (invoke "check" (i32.const 29)) "uninitialized element")
  70. (module
  71. (type (func (result i32))) ;; type #0
  72. ;; aot mode does not support module linking
  73. (func (result i32) (i32.const 0)) ;; index 0
  74. (func (result i32) (i32.const 1))
  75. (func (result i32) (i32.const 2))
  76. (func (result i32) (i32.const 3))
  77. (func (result i32) (i32.const 4)) ;; index 4
  78. (table $t0 30 30 funcref)
  79. (table $t1 30 30 funcref)
  80. (elem (table $t0) (i32.const 2) func 3 1 4 1)
  81. (elem funcref
  82. (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
  83. (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
  84. (elem funcref
  85. (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
  86. (func (result i32) (i32.const 5)) ;; index 5
  87. (func (result i32) (i32.const 6))
  88. (func (result i32) (i32.const 7))
  89. (func (result i32) (i32.const 8))
  90. (func (result i32) (i32.const 9)) ;; index 9
  91. (func (export "test")
  92. (table.init $t0 3 (i32.const 15) (i32.const 1) (i32.const 3)))
  93. (func (export "check") (param i32) (result i32)
  94. (call_indirect $t0 (type 0) (local.get 0)))
  95. )
  96. (invoke "test")
  97. (assert_trap (invoke "check" (i32.const 0)) "uninitialized element")
  98. (assert_trap (invoke "check" (i32.const 1)) "uninitialized element")
  99. (assert_return (invoke "check" (i32.const 2)) (i32.const 3))
  100. (assert_return (invoke "check" (i32.const 3)) (i32.const 1))
  101. (assert_return (invoke "check" (i32.const 4)) (i32.const 4))
  102. (assert_return (invoke "check" (i32.const 5)) (i32.const 1))
  103. (assert_trap (invoke "check" (i32.const 6)) "uninitialized element")
  104. (assert_trap (invoke "check" (i32.const 7)) "uninitialized element")
  105. (assert_trap (invoke "check" (i32.const 8)) "uninitialized element")
  106. (assert_trap (invoke "check" (i32.const 9)) "uninitialized element")
  107. (assert_trap (invoke "check" (i32.const 10)) "uninitialized element")
  108. (assert_trap (invoke "check" (i32.const 11)) "uninitialized element")
  109. (assert_return (invoke "check" (i32.const 12)) (i32.const 7))
  110. (assert_return (invoke "check" (i32.const 13)) (i32.const 5))
  111. (assert_return (invoke "check" (i32.const 14)) (i32.const 2))
  112. (assert_return (invoke "check" (i32.const 15)) (i32.const 9))
  113. (assert_return (invoke "check" (i32.const 16)) (i32.const 2))
  114. (assert_return (invoke "check" (i32.const 17)) (i32.const 7))
  115. (assert_trap (invoke "check" (i32.const 18)) "uninitialized element")
  116. (assert_trap (invoke "check" (i32.const 19)) "uninitialized element")
  117. (assert_trap (invoke "check" (i32.const 20)) "uninitialized element")
  118. (assert_trap (invoke "check" (i32.const 21)) "uninitialized element")
  119. (assert_trap (invoke "check" (i32.const 22)) "uninitialized element")
  120. (assert_trap (invoke "check" (i32.const 23)) "uninitialized element")
  121. (assert_trap (invoke "check" (i32.const 24)) "uninitialized element")
  122. (assert_trap (invoke "check" (i32.const 25)) "uninitialized element")
  123. (assert_trap (invoke "check" (i32.const 26)) "uninitialized element")
  124. (assert_trap (invoke "check" (i32.const 27)) "uninitialized element")
  125. (assert_trap (invoke "check" (i32.const 28)) "uninitialized element")
  126. (assert_trap (invoke "check" (i32.const 29)) "uninitialized element")
  127. (module
  128. (type (func (result i32))) ;; type #0
  129. ;; aot mode does not support module linking
  130. (func (result i32) (i32.const 0)) ;; index 0
  131. (func (result i32) (i32.const 1))
  132. (func (result i32) (i32.const 2))
  133. (func (result i32) (i32.const 3))
  134. (func (result i32) (i32.const 4)) ;; index 4
  135. (table $t0 30 30 funcref)
  136. (table $t1 30 30 funcref)
  137. (elem (table $t0) (i32.const 2) func 3 1 4 1)
  138. (elem funcref
  139. (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
  140. (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
  141. (elem funcref
  142. (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
  143. (func (result i32) (i32.const 5)) ;; index 5
  144. (func (result i32) (i32.const 6))
  145. (func (result i32) (i32.const 7))
  146. (func (result i32) (i32.const 8))
  147. (func (result i32) (i32.const 9)) ;; index 9
  148. (func (export "test")
  149. (table.init $t0 1 (i32.const 7) (i32.const 0) (i32.const 4))
  150. (elem.drop 1)
  151. (table.init $t0 3 (i32.const 15) (i32.const 1) (i32.const 3))
  152. (elem.drop 3)
  153. (table.copy $t0 0 (i32.const 20) (i32.const 15) (i32.const 5))
  154. (table.copy $t0 0 (i32.const 21) (i32.const 29) (i32.const 1))
  155. (table.copy $t0 0 (i32.const 24) (i32.const 10) (i32.const 1))
  156. (table.copy $t0 0 (i32.const 13) (i32.const 11) (i32.const 4))
  157. (table.copy $t0 0 (i32.const 19) (i32.const 20) (i32.const 5)))
  158. (func (export "check") (param i32) (result i32)
  159. (call_indirect $t0 (type 0) (local.get 0)))
  160. )
  161. (invoke "test")
  162. (assert_trap (invoke "check" (i32.const 0)) "uninitialized element")
  163. (assert_trap (invoke "check" (i32.const 1)) "uninitialized element")
  164. (assert_return (invoke "check" (i32.const 2)) (i32.const 3))
  165. (assert_return (invoke "check" (i32.const 3)) (i32.const 1))
  166. (assert_return (invoke "check" (i32.const 4)) (i32.const 4))
  167. (assert_return (invoke "check" (i32.const 5)) (i32.const 1))
  168. (assert_trap (invoke "check" (i32.const 6)) "uninitialized element")
  169. (assert_return (invoke "check" (i32.const 7)) (i32.const 2))
  170. (assert_return (invoke "check" (i32.const 8)) (i32.const 7))
  171. (assert_return (invoke "check" (i32.const 9)) (i32.const 1))
  172. (assert_return (invoke "check" (i32.const 10)) (i32.const 8))
  173. (assert_trap (invoke "check" (i32.const 11)) "uninitialized element")
  174. (assert_return (invoke "check" (i32.const 12)) (i32.const 7))
  175. (assert_trap (invoke "check" (i32.const 13)) "uninitialized element")
  176. (assert_return (invoke "check" (i32.const 14)) (i32.const 7))
  177. (assert_return (invoke "check" (i32.const 15)) (i32.const 5))
  178. (assert_return (invoke "check" (i32.const 16)) (i32.const 2))
  179. (assert_return (invoke "check" (i32.const 17)) (i32.const 7))
  180. (assert_trap (invoke "check" (i32.const 18)) "uninitialized element")
  181. (assert_return (invoke "check" (i32.const 19)) (i32.const 9))
  182. (assert_trap (invoke "check" (i32.const 20)) "uninitialized element")
  183. (assert_return (invoke "check" (i32.const 21)) (i32.const 7))
  184. (assert_trap (invoke "check" (i32.const 22)) "uninitialized element")
  185. (assert_return (invoke "check" (i32.const 23)) (i32.const 8))
  186. (assert_return (invoke "check" (i32.const 24)) (i32.const 8))
  187. (assert_trap (invoke "check" (i32.const 25)) "uninitialized element")
  188. (assert_trap (invoke "check" (i32.const 26)) "uninitialized element")
  189. (assert_trap (invoke "check" (i32.const 27)) "uninitialized element")
  190. (assert_trap (invoke "check" (i32.const 28)) "uninitialized element")
  191. (assert_trap (invoke "check" (i32.const 29)) "uninitialized element")
  192. (module
  193. (type (func (result i32))) ;; type #0
  194. ;; aot mode does not support module linking
  195. (func (result i32) (i32.const 0)) ;; index 0
  196. (func (result i32) (i32.const 1))
  197. (func (result i32) (i32.const 2))
  198. (func (result i32) (i32.const 3))
  199. (func (result i32) (i32.const 4)) ;; index 4
  200. (table $t0 30 30 funcref)
  201. (table $t1 30 30 funcref)
  202. (elem (table $t1) (i32.const 2) func 3 1 4 1)
  203. (elem funcref
  204. (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
  205. (elem (table $t1) (i32.const 12) func 7 5 2 3 6)
  206. (elem funcref
  207. (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
  208. (func (result i32) (i32.const 5)) ;; index 5
  209. (func (result i32) (i32.const 6))
  210. (func (result i32) (i32.const 7))
  211. (func (result i32) (i32.const 8))
  212. (func (result i32) (i32.const 9)) ;; index 9
  213. (func (export "test")
  214. (table.init $t1 1 (i32.const 7) (i32.const 0) (i32.const 4)))
  215. (func (export "check") (param i32) (result i32)
  216. (call_indirect $t1 (type 0) (local.get 0)))
  217. )
  218. (invoke "test")
  219. (assert_trap (invoke "check" (i32.const 0)) "uninitialized element")
  220. (assert_trap (invoke "check" (i32.const 1)) "uninitialized element")
  221. (assert_return (invoke "check" (i32.const 2)) (i32.const 3))
  222. (assert_return (invoke "check" (i32.const 3)) (i32.const 1))
  223. (assert_return (invoke "check" (i32.const 4)) (i32.const 4))
  224. (assert_return (invoke "check" (i32.const 5)) (i32.const 1))
  225. (assert_trap (invoke "check" (i32.const 6)) "uninitialized element")
  226. (assert_return (invoke "check" (i32.const 7)) (i32.const 2))
  227. (assert_return (invoke "check" (i32.const 8)) (i32.const 7))
  228. (assert_return (invoke "check" (i32.const 9)) (i32.const 1))
  229. (assert_return (invoke "check" (i32.const 10)) (i32.const 8))
  230. (assert_trap (invoke "check" (i32.const 11)) "uninitialized element")
  231. (assert_return (invoke "check" (i32.const 12)) (i32.const 7))
  232. (assert_return (invoke "check" (i32.const 13)) (i32.const 5))
  233. (assert_return (invoke "check" (i32.const 14)) (i32.const 2))
  234. (assert_return (invoke "check" (i32.const 15)) (i32.const 3))
  235. (assert_return (invoke "check" (i32.const 16)) (i32.const 6))
  236. (assert_trap (invoke "check" (i32.const 17)) "uninitialized element")
  237. (assert_trap (invoke "check" (i32.const 18)) "uninitialized element")
  238. (assert_trap (invoke "check" (i32.const 19)) "uninitialized element")
  239. (assert_trap (invoke "check" (i32.const 20)) "uninitialized element")
  240. (assert_trap (invoke "check" (i32.const 21)) "uninitialized element")
  241. (assert_trap (invoke "check" (i32.const 22)) "uninitialized element")
  242. (assert_trap (invoke "check" (i32.const 23)) "uninitialized element")
  243. (assert_trap (invoke "check" (i32.const 24)) "uninitialized element")
  244. (assert_trap (invoke "check" (i32.const 25)) "uninitialized element")
  245. (assert_trap (invoke "check" (i32.const 26)) "uninitialized element")
  246. (assert_trap (invoke "check" (i32.const 27)) "uninitialized element")
  247. (assert_trap (invoke "check" (i32.const 28)) "uninitialized element")
  248. (assert_trap (invoke "check" (i32.const 29)) "uninitialized element")
  249. (module
  250. (type (func (result i32))) ;; type #0
  251. ;; aot mode does not support module linking
  252. (func (result i32) (i32.const 0)) ;; index 0
  253. (func (result i32) (i32.const 1))
  254. (func (result i32) (i32.const 2))
  255. (func (result i32) (i32.const 3))
  256. (func (result i32) (i32.const 4)) ;; index 4
  257. (table $t0 30 30 funcref)
  258. (table $t1 30 30 funcref)
  259. (elem (table $t1) (i32.const 2) func 3 1 4 1)
  260. (elem funcref
  261. (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
  262. (elem (table $t1) (i32.const 12) func 7 5 2 3 6)
  263. (elem funcref
  264. (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
  265. (func (result i32) (i32.const 5)) ;; index 5
  266. (func (result i32) (i32.const 6))
  267. (func (result i32) (i32.const 7))
  268. (func (result i32) (i32.const 8))
  269. (func (result i32) (i32.const 9)) ;; index 9
  270. (func (export "test")
  271. (table.init $t1 3 (i32.const 15) (i32.const 1) (i32.const 3)))
  272. (func (export "check") (param i32) (result i32)
  273. (call_indirect $t1 (type 0) (local.get 0)))
  274. )
  275. (invoke "test")
  276. (assert_trap (invoke "check" (i32.const 0)) "uninitialized element")
  277. (assert_trap (invoke "check" (i32.const 1)) "uninitialized element")
  278. (assert_return (invoke "check" (i32.const 2)) (i32.const 3))
  279. (assert_return (invoke "check" (i32.const 3)) (i32.const 1))
  280. (assert_return (invoke "check" (i32.const 4)) (i32.const 4))
  281. (assert_return (invoke "check" (i32.const 5)) (i32.const 1))
  282. (assert_trap (invoke "check" (i32.const 6)) "uninitialized element")
  283. (assert_trap (invoke "check" (i32.const 7)) "uninitialized element")
  284. (assert_trap (invoke "check" (i32.const 8)) "uninitialized element")
  285. (assert_trap (invoke "check" (i32.const 9)) "uninitialized element")
  286. (assert_trap (invoke "check" (i32.const 10)) "uninitialized element")
  287. (assert_trap (invoke "check" (i32.const 11)) "uninitialized element")
  288. (assert_return (invoke "check" (i32.const 12)) (i32.const 7))
  289. (assert_return (invoke "check" (i32.const 13)) (i32.const 5))
  290. (assert_return (invoke "check" (i32.const 14)) (i32.const 2))
  291. (assert_return (invoke "check" (i32.const 15)) (i32.const 9))
  292. (assert_return (invoke "check" (i32.const 16)) (i32.const 2))
  293. (assert_return (invoke "check" (i32.const 17)) (i32.const 7))
  294. (assert_trap (invoke "check" (i32.const 18)) "uninitialized element")
  295. (assert_trap (invoke "check" (i32.const 19)) "uninitialized element")
  296. (assert_trap (invoke "check" (i32.const 20)) "uninitialized element")
  297. (assert_trap (invoke "check" (i32.const 21)) "uninitialized element")
  298. (assert_trap (invoke "check" (i32.const 22)) "uninitialized element")
  299. (assert_trap (invoke "check" (i32.const 23)) "uninitialized element")
  300. (assert_trap (invoke "check" (i32.const 24)) "uninitialized element")
  301. (assert_trap (invoke "check" (i32.const 25)) "uninitialized element")
  302. (assert_trap (invoke "check" (i32.const 26)) "uninitialized element")
  303. (assert_trap (invoke "check" (i32.const 27)) "uninitialized element")
  304. (assert_trap (invoke "check" (i32.const 28)) "uninitialized element")
  305. (assert_trap (invoke "check" (i32.const 29)) "uninitialized element")
  306. (module
  307. (type (func (result i32))) ;; type #0
  308. ;; aot mode does not support module linking
  309. (func (result i32) (i32.const 0)) ;; index 0
  310. (func (result i32) (i32.const 1))
  311. (func (result i32) (i32.const 2))
  312. (func (result i32) (i32.const 3))
  313. (func (result i32) (i32.const 4)) ;; index 4
  314. (table $t0 30 30 funcref)
  315. (table $t1 30 30 funcref)
  316. (elem (table $t1) (i32.const 2) func 3 1 4 1)
  317. (elem funcref
  318. (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
  319. (elem (table $t1) (i32.const 12) func 7 5 2 3 6)
  320. (elem funcref
  321. (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
  322. (func (result i32) (i32.const 5)) ;; index 5
  323. (func (result i32) (i32.const 6))
  324. (func (result i32) (i32.const 7))
  325. (func (result i32) (i32.const 8))
  326. (func (result i32) (i32.const 9)) ;; index 9
  327. (func (export "test")
  328. (table.init $t1 1 (i32.const 7) (i32.const 0) (i32.const 4))
  329. (elem.drop 1)
  330. (table.init $t1 3 (i32.const 15) (i32.const 1) (i32.const 3))
  331. (elem.drop 3)
  332. (table.copy $t1 1 (i32.const 20) (i32.const 15) (i32.const 5))
  333. (table.copy $t1 1 (i32.const 21) (i32.const 29) (i32.const 1))
  334. (table.copy $t1 1 (i32.const 24) (i32.const 10) (i32.const 1))
  335. (table.copy $t1 1 (i32.const 13) (i32.const 11) (i32.const 4))
  336. (table.copy $t1 1 (i32.const 19) (i32.const 20) (i32.const 5)))
  337. (func (export "check") (param i32) (result i32)
  338. (call_indirect $t1 (type 0) (local.get 0)))
  339. )
  340. (invoke "test")
  341. (assert_trap (invoke "check" (i32.const 0)) "uninitialized element")
  342. (assert_trap (invoke "check" (i32.const 1)) "uninitialized element")
  343. (assert_return (invoke "check" (i32.const 2)) (i32.const 3))
  344. (assert_return (invoke "check" (i32.const 3)) (i32.const 1))
  345. (assert_return (invoke "check" (i32.const 4)) (i32.const 4))
  346. (assert_return (invoke "check" (i32.const 5)) (i32.const 1))
  347. (assert_trap (invoke "check" (i32.const 6)) "uninitialized element")
  348. (assert_return (invoke "check" (i32.const 7)) (i32.const 2))
  349. (assert_return (invoke "check" (i32.const 8)) (i32.const 7))
  350. (assert_return (invoke "check" (i32.const 9)) (i32.const 1))
  351. (assert_return (invoke "check" (i32.const 10)) (i32.const 8))
  352. (assert_trap (invoke "check" (i32.const 11)) "uninitialized element")
  353. (assert_return (invoke "check" (i32.const 12)) (i32.const 7))
  354. (assert_trap (invoke "check" (i32.const 13)) "uninitialized element")
  355. (assert_return (invoke "check" (i32.const 14)) (i32.const 7))
  356. (assert_return (invoke "check" (i32.const 15)) (i32.const 5))
  357. (assert_return (invoke "check" (i32.const 16)) (i32.const 2))
  358. (assert_return (invoke "check" (i32.const 17)) (i32.const 7))
  359. (assert_trap (invoke "check" (i32.const 18)) "uninitialized element")
  360. (assert_return (invoke "check" (i32.const 19)) (i32.const 9))
  361. (assert_trap (invoke "check" (i32.const 20)) "uninitialized element")
  362. (assert_return (invoke "check" (i32.const 21)) (i32.const 7))
  363. (assert_trap (invoke "check" (i32.const 22)) "uninitialized element")
  364. (assert_return (invoke "check" (i32.const 23)) (i32.const 8))
  365. (assert_return (invoke "check" (i32.const 24)) (i32.const 8))
  366. (assert_trap (invoke "check" (i32.const 25)) "uninitialized element")
  367. (assert_trap (invoke "check" (i32.const 26)) "uninitialized element")
  368. (assert_trap (invoke "check" (i32.const 27)) "uninitialized element")
  369. (assert_trap (invoke "check" (i32.const 28)) "uninitialized element")
  370. (assert_trap (invoke "check" (i32.const 29)) "uninitialized element")
  371. (assert_invalid
  372. (module
  373. (func (export "test")
  374. (elem.drop 0)))
  375. "unknown elem segment 0")
  376. (assert_invalid
  377. (module
  378. (func (export "test")
  379. (table.init 0 (i32.const 12) (i32.const 1) (i32.const 1))))
  380. "unknown table 0")
  381. (assert_invalid
  382. (module
  383. (elem funcref (ref.func 0))
  384. (func (result i32) (i32.const 0))
  385. (func (export "test")
  386. (elem.drop 4)))
  387. "unknown elem segment 4")
  388. (assert_invalid
  389. (module
  390. (elem funcref (ref.func 0))
  391. (func (result i32) (i32.const 0))
  392. (func (export "test")
  393. (table.init 4 (i32.const 12) (i32.const 1) (i32.const 1))))
  394. "unknown table 0")
  395. (module
  396. (table $t0 30 30 funcref)
  397. (table $t1 28 28 funcref)
  398. (elem (table $t0) (i32.const 2) func 3 1 4 1)
  399. (elem funcref
  400. (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
  401. (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
  402. (elem funcref
  403. (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
  404. (func (result i32) (i32.const 0))
  405. (func (result i32) (i32.const 1))
  406. (func (result i32) (i32.const 2))
  407. (func (result i32) (i32.const 3))
  408. (func (result i32) (i32.const 4))
  409. (func (result i32) (i32.const 5))
  410. (func (result i32) (i32.const 6))
  411. (func (result i32) (i32.const 7))
  412. (func (result i32) (i32.const 8))
  413. (func (result i32) (i32.const 9))
  414. (func (export "test")
  415. (elem.drop 2)
  416. ))
  417. (invoke "test")
  418. (module
  419. (table $t0 30 30 funcref)
  420. (table $t1 28 28 funcref)
  421. (elem (table $t0) (i32.const 2) func 3 1 4 1)
  422. (elem funcref
  423. (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
  424. (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
  425. (elem funcref
  426. (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
  427. (func (result i32) (i32.const 0))
  428. (func (result i32) (i32.const 1))
  429. (func (result i32) (i32.const 2))
  430. (func (result i32) (i32.const 3))
  431. (func (result i32) (i32.const 4))
  432. (func (result i32) (i32.const 5))
  433. (func (result i32) (i32.const 6))
  434. (func (result i32) (i32.const 7))
  435. (func (result i32) (i32.const 8))
  436. (func (result i32) (i32.const 9))
  437. (func (export "test")
  438. (table.init 2 (i32.const 12) (i32.const 1) (i32.const 1))
  439. ))
  440. (assert_trap (invoke "test") "out of bounds table access")
  441. (module
  442. (table $t0 30 30 funcref)
  443. (table $t1 28 28 funcref)
  444. (elem (table $t0) (i32.const 2) func 3 1 4 1)
  445. (elem funcref
  446. (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
  447. (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
  448. (elem funcref
  449. (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
  450. (func (result i32) (i32.const 0))
  451. (func (result i32) (i32.const 1))
  452. (func (result i32) (i32.const 2))
  453. (func (result i32) (i32.const 3))
  454. (func (result i32) (i32.const 4))
  455. (func (result i32) (i32.const 5))
  456. (func (result i32) (i32.const 6))
  457. (func (result i32) (i32.const 7))
  458. (func (result i32) (i32.const 8))
  459. (func (result i32) (i32.const 9))
  460. (func (export "test")
  461. (table.init 1 (i32.const 12) (i32.const 1) (i32.const 1))
  462. (table.init 1 (i32.const 21) (i32.const 1) (i32.const 1))))
  463. (invoke "test")
  464. (module
  465. (table $t0 30 30 funcref)
  466. (table $t1 28 28 funcref)
  467. (elem (table $t0) (i32.const 2) func 3 1 4 1)
  468. (elem funcref
  469. (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
  470. (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
  471. (elem funcref
  472. (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
  473. (func (result i32) (i32.const 0))
  474. (func (result i32) (i32.const 1))
  475. (func (result i32) (i32.const 2))
  476. (func (result i32) (i32.const 3))
  477. (func (result i32) (i32.const 4))
  478. (func (result i32) (i32.const 5))
  479. (func (result i32) (i32.const 6))
  480. (func (result i32) (i32.const 7))
  481. (func (result i32) (i32.const 8))
  482. (func (result i32) (i32.const 9))
  483. (func (export "test")
  484. (elem.drop 1)
  485. (elem.drop 1)))
  486. (invoke "test")
  487. (module
  488. (table $t0 30 30 funcref)
  489. (table $t1 28 28 funcref)
  490. (elem (table $t0) (i32.const 2) func 3 1 4 1)
  491. (elem funcref
  492. (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
  493. (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
  494. (elem funcref
  495. (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
  496. (func (result i32) (i32.const 0))
  497. (func (result i32) (i32.const 1))
  498. (func (result i32) (i32.const 2))
  499. (func (result i32) (i32.const 3))
  500. (func (result i32) (i32.const 4))
  501. (func (result i32) (i32.const 5))
  502. (func (result i32) (i32.const 6))
  503. (func (result i32) (i32.const 7))
  504. (func (result i32) (i32.const 8))
  505. (func (result i32) (i32.const 9))
  506. (func (export "test")
  507. (elem.drop 1)
  508. (table.init 1 (i32.const 12) (i32.const 1) (i32.const 1))))
  509. (assert_trap (invoke "test") "out of bounds table access")
  510. (module
  511. (table $t0 30 30 funcref)
  512. (table $t1 28 28 funcref)
  513. (elem (table $t0) (i32.const 2) func 3 1 4 1)
  514. (elem funcref
  515. (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
  516. (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
  517. (elem funcref
  518. (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
  519. (func (result i32) (i32.const 0))
  520. (func (result i32) (i32.const 1))
  521. (func (result i32) (i32.const 2))
  522. (func (result i32) (i32.const 3))
  523. (func (result i32) (i32.const 4))
  524. (func (result i32) (i32.const 5))
  525. (func (result i32) (i32.const 6))
  526. (func (result i32) (i32.const 7))
  527. (func (result i32) (i32.const 8))
  528. (func (result i32) (i32.const 9))
  529. (func (export "test")
  530. (table.init 1 (i32.const 12) (i32.const 0) (i32.const 5))
  531. ))
  532. (assert_trap (invoke "test") "out of bounds table access")
  533. (module
  534. (table $t0 30 30 funcref)
  535. (table $t1 28 28 funcref)
  536. (elem (table $t0) (i32.const 2) func 3 1 4 1)
  537. (elem funcref
  538. (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
  539. (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
  540. (elem funcref
  541. (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
  542. (func (result i32) (i32.const 0))
  543. (func (result i32) (i32.const 1))
  544. (func (result i32) (i32.const 2))
  545. (func (result i32) (i32.const 3))
  546. (func (result i32) (i32.const 4))
  547. (func (result i32) (i32.const 5))
  548. (func (result i32) (i32.const 6))
  549. (func (result i32) (i32.const 7))
  550. (func (result i32) (i32.const 8))
  551. (func (result i32) (i32.const 9))
  552. (func (export "test")
  553. (table.init 1 (i32.const 12) (i32.const 2) (i32.const 3))
  554. ))
  555. (assert_trap (invoke "test") "out of bounds table access")
  556. (module
  557. (table $t0 30 30 funcref)
  558. (table $t1 28 28 funcref)
  559. (elem (table $t0) (i32.const 2) func 3 1 4 1)
  560. (elem funcref
  561. (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
  562. (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
  563. (elem funcref
  564. (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
  565. (func (result i32) (i32.const 0))
  566. (func (result i32) (i32.const 1))
  567. (func (result i32) (i32.const 2))
  568. (func (result i32) (i32.const 3))
  569. (func (result i32) (i32.const 4))
  570. (func (result i32) (i32.const 5))
  571. (func (result i32) (i32.const 6))
  572. (func (result i32) (i32.const 7))
  573. (func (result i32) (i32.const 8))
  574. (func (result i32) (i32.const 9))
  575. (func (export "test")
  576. (table.init $t0 1 (i32.const 28) (i32.const 1) (i32.const 3))
  577. ))
  578. (assert_trap (invoke "test") "out of bounds table access")
  579. (module
  580. (table $t0 30 30 funcref)
  581. (table $t1 28 28 funcref)
  582. (elem (table $t0) (i32.const 2) func 3 1 4 1)
  583. (elem funcref
  584. (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
  585. (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
  586. (elem funcref
  587. (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
  588. (func (result i32) (i32.const 0))
  589. (func (result i32) (i32.const 1))
  590. (func (result i32) (i32.const 2))
  591. (func (result i32) (i32.const 3))
  592. (func (result i32) (i32.const 4))
  593. (func (result i32) (i32.const 5))
  594. (func (result i32) (i32.const 6))
  595. (func (result i32) (i32.const 7))
  596. (func (result i32) (i32.const 8))
  597. (func (result i32) (i32.const 9))
  598. (func (export "test")
  599. (table.init $t0 1 (i32.const 12) (i32.const 4) (i32.const 0))
  600. ))
  601. (invoke "test")
  602. (module
  603. (table $t0 30 30 funcref)
  604. (table $t1 28 28 funcref)
  605. (elem (table $t0) (i32.const 2) func 3 1 4 1)
  606. (elem funcref
  607. (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
  608. (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
  609. (elem funcref
  610. (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
  611. (func (result i32) (i32.const 0))
  612. (func (result i32) (i32.const 1))
  613. (func (result i32) (i32.const 2))
  614. (func (result i32) (i32.const 3))
  615. (func (result i32) (i32.const 4))
  616. (func (result i32) (i32.const 5))
  617. (func (result i32) (i32.const 6))
  618. (func (result i32) (i32.const 7))
  619. (func (result i32) (i32.const 8))
  620. (func (result i32) (i32.const 9))
  621. (func (export "test")
  622. (table.init $t0 1 (i32.const 12) (i32.const 5) (i32.const 0))
  623. ))
  624. (assert_trap (invoke "test") "out of bounds table access")
  625. (module
  626. (table $t0 30 30 funcref)
  627. (table $t1 28 28 funcref)
  628. (elem (table $t0) (i32.const 2) func 3 1 4 1)
  629. (elem funcref
  630. (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
  631. (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
  632. (elem funcref
  633. (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
  634. (func (result i32) (i32.const 0))
  635. (func (result i32) (i32.const 1))
  636. (func (result i32) (i32.const 2))
  637. (func (result i32) (i32.const 3))
  638. (func (result i32) (i32.const 4))
  639. (func (result i32) (i32.const 5))
  640. (func (result i32) (i32.const 6))
  641. (func (result i32) (i32.const 7))
  642. (func (result i32) (i32.const 8))
  643. (func (result i32) (i32.const 9))
  644. (func (export "test")
  645. (table.init $t0 1 (i32.const 30) (i32.const 2) (i32.const 0))
  646. ))
  647. (invoke "test")
  648. (module
  649. (table $t0 30 30 funcref)
  650. (table $t1 28 28 funcref)
  651. (elem (table $t0) (i32.const 2) func 3 1 4 1)
  652. (elem funcref
  653. (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
  654. (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
  655. (elem funcref
  656. (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
  657. (func (result i32) (i32.const 0))
  658. (func (result i32) (i32.const 1))
  659. (func (result i32) (i32.const 2))
  660. (func (result i32) (i32.const 3))
  661. (func (result i32) (i32.const 4))
  662. (func (result i32) (i32.const 5))
  663. (func (result i32) (i32.const 6))
  664. (func (result i32) (i32.const 7))
  665. (func (result i32) (i32.const 8))
  666. (func (result i32) (i32.const 9))
  667. (func (export "test")
  668. (table.init $t0 1 (i32.const 31) (i32.const 2) (i32.const 0))
  669. ))
  670. (assert_trap (invoke "test") "out of bounds table access")
  671. (module
  672. (table $t0 30 30 funcref)
  673. (table $t1 28 28 funcref)
  674. (elem (table $t0) (i32.const 2) func 3 1 4 1)
  675. (elem funcref
  676. (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
  677. (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
  678. (elem funcref
  679. (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
  680. (func (result i32) (i32.const 0))
  681. (func (result i32) (i32.const 1))
  682. (func (result i32) (i32.const 2))
  683. (func (result i32) (i32.const 3))
  684. (func (result i32) (i32.const 4))
  685. (func (result i32) (i32.const 5))
  686. (func (result i32) (i32.const 6))
  687. (func (result i32) (i32.const 7))
  688. (func (result i32) (i32.const 8))
  689. (func (result i32) (i32.const 9))
  690. (func (export "test")
  691. (table.init $t0 1 (i32.const 30) (i32.const 4) (i32.const 0))
  692. ))
  693. (invoke "test")
  694. (module
  695. (table $t0 30 30 funcref)
  696. (table $t1 28 28 funcref)
  697. (elem (table $t0) (i32.const 2) func 3 1 4 1)
  698. (elem funcref
  699. (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
  700. (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
  701. (elem funcref
  702. (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
  703. (func (result i32) (i32.const 0))
  704. (func (result i32) (i32.const 1))
  705. (func (result i32) (i32.const 2))
  706. (func (result i32) (i32.const 3))
  707. (func (result i32) (i32.const 4))
  708. (func (result i32) (i32.const 5))
  709. (func (result i32) (i32.const 6))
  710. (func (result i32) (i32.const 7))
  711. (func (result i32) (i32.const 8))
  712. (func (result i32) (i32.const 9))
  713. (func (export "test")
  714. (table.init $t0 1 (i32.const 31) (i32.const 5) (i32.const 0))
  715. ))
  716. (assert_trap (invoke "test") "out of bounds table access")
  717. (module
  718. (table $t0 30 30 funcref)
  719. (table $t1 28 28 funcref)
  720. (elem (table $t1) (i32.const 2) func 3 1 4 1)
  721. (elem funcref
  722. (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
  723. (elem (table $t1) (i32.const 12) func 7 5 2 3 6)
  724. (elem funcref
  725. (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
  726. (func (result i32) (i32.const 0))
  727. (func (result i32) (i32.const 1))
  728. (func (result i32) (i32.const 2))
  729. (func (result i32) (i32.const 3))
  730. (func (result i32) (i32.const 4))
  731. (func (result i32) (i32.const 5))
  732. (func (result i32) (i32.const 6))
  733. (func (result i32) (i32.const 7))
  734. (func (result i32) (i32.const 8))
  735. (func (result i32) (i32.const 9))
  736. (func (export "test")
  737. (table.init $t1 1 (i32.const 26) (i32.const 1) (i32.const 3))
  738. ))
  739. (assert_trap (invoke "test") "out of bounds table access")
  740. (module
  741. (table $t0 30 30 funcref)
  742. (table $t1 28 28 funcref)
  743. (elem (table $t1) (i32.const 2) func 3 1 4 1)
  744. (elem funcref
  745. (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
  746. (elem (table $t1) (i32.const 12) func 7 5 2 3 6)
  747. (elem funcref
  748. (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
  749. (func (result i32) (i32.const 0))
  750. (func (result i32) (i32.const 1))
  751. (func (result i32) (i32.const 2))
  752. (func (result i32) (i32.const 3))
  753. (func (result i32) (i32.const 4))
  754. (func (result i32) (i32.const 5))
  755. (func (result i32) (i32.const 6))
  756. (func (result i32) (i32.const 7))
  757. (func (result i32) (i32.const 8))
  758. (func (result i32) (i32.const 9))
  759. (func (export "test")
  760. (table.init $t1 1 (i32.const 12) (i32.const 4) (i32.const 0))
  761. ))
  762. (invoke "test")
  763. (module
  764. (table $t0 30 30 funcref)
  765. (table $t1 28 28 funcref)
  766. (elem (table $t1) (i32.const 2) func 3 1 4 1)
  767. (elem funcref
  768. (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
  769. (elem (table $t1) (i32.const 12) func 7 5 2 3 6)
  770. (elem funcref
  771. (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
  772. (func (result i32) (i32.const 0))
  773. (func (result i32) (i32.const 1))
  774. (func (result i32) (i32.const 2))
  775. (func (result i32) (i32.const 3))
  776. (func (result i32) (i32.const 4))
  777. (func (result i32) (i32.const 5))
  778. (func (result i32) (i32.const 6))
  779. (func (result i32) (i32.const 7))
  780. (func (result i32) (i32.const 8))
  781. (func (result i32) (i32.const 9))
  782. (func (export "test")
  783. (table.init $t1 1 (i32.const 12) (i32.const 5) (i32.const 0))
  784. ))
  785. (assert_trap (invoke "test") "out of bounds table access")
  786. (module
  787. (table $t0 30 30 funcref)
  788. (table $t1 28 28 funcref)
  789. (elem (table $t1) (i32.const 2) func 3 1 4 1)
  790. (elem funcref
  791. (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
  792. (elem (table $t1) (i32.const 12) func 7 5 2 3 6)
  793. (elem funcref
  794. (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
  795. (func (result i32) (i32.const 0))
  796. (func (result i32) (i32.const 1))
  797. (func (result i32) (i32.const 2))
  798. (func (result i32) (i32.const 3))
  799. (func (result i32) (i32.const 4))
  800. (func (result i32) (i32.const 5))
  801. (func (result i32) (i32.const 6))
  802. (func (result i32) (i32.const 7))
  803. (func (result i32) (i32.const 8))
  804. (func (result i32) (i32.const 9))
  805. (func (export "test")
  806. (table.init $t1 1 (i32.const 28) (i32.const 2) (i32.const 0))
  807. ))
  808. (invoke "test")
  809. (module
  810. (table $t0 30 30 funcref)
  811. (table $t1 28 28 funcref)
  812. (elem (table $t1) (i32.const 2) func 3 1 4 1)
  813. (elem funcref
  814. (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
  815. (elem (table $t1) (i32.const 12) func 7 5 2 3 6)
  816. (elem funcref
  817. (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
  818. (func (result i32) (i32.const 0))
  819. (func (result i32) (i32.const 1))
  820. (func (result i32) (i32.const 2))
  821. (func (result i32) (i32.const 3))
  822. (func (result i32) (i32.const 4))
  823. (func (result i32) (i32.const 5))
  824. (func (result i32) (i32.const 6))
  825. (func (result i32) (i32.const 7))
  826. (func (result i32) (i32.const 8))
  827. (func (result i32) (i32.const 9))
  828. (func (export "test")
  829. (table.init $t1 1 (i32.const 29) (i32.const 2) (i32.const 0))
  830. ))
  831. (assert_trap (invoke "test") "out of bounds table access")
  832. (module
  833. (table $t0 30 30 funcref)
  834. (table $t1 28 28 funcref)
  835. (elem (table $t1) (i32.const 2) func 3 1 4 1)
  836. (elem funcref
  837. (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
  838. (elem (table $t1) (i32.const 12) func 7 5 2 3 6)
  839. (elem funcref
  840. (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
  841. (func (result i32) (i32.const 0))
  842. (func (result i32) (i32.const 1))
  843. (func (result i32) (i32.const 2))
  844. (func (result i32) (i32.const 3))
  845. (func (result i32) (i32.const 4))
  846. (func (result i32) (i32.const 5))
  847. (func (result i32) (i32.const 6))
  848. (func (result i32) (i32.const 7))
  849. (func (result i32) (i32.const 8))
  850. (func (result i32) (i32.const 9))
  851. (func (export "test")
  852. (table.init $t1 1 (i32.const 28) (i32.const 4) (i32.const 0))
  853. ))
  854. (invoke "test")
  855. (module
  856. (table $t0 30 30 funcref)
  857. (table $t1 28 28 funcref)
  858. (elem (table $t1) (i32.const 2) func 3 1 4 1)
  859. (elem funcref
  860. (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
  861. (elem (table $t1) (i32.const 12) func 7 5 2 3 6)
  862. (elem funcref
  863. (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
  864. (func (result i32) (i32.const 0))
  865. (func (result i32) (i32.const 1))
  866. (func (result i32) (i32.const 2))
  867. (func (result i32) (i32.const 3))
  868. (func (result i32) (i32.const 4))
  869. (func (result i32) (i32.const 5))
  870. (func (result i32) (i32.const 6))
  871. (func (result i32) (i32.const 7))
  872. (func (result i32) (i32.const 8))
  873. (func (result i32) (i32.const 9))
  874. (func (export "test")
  875. (table.init $t1 1 (i32.const 29) (i32.const 5) (i32.const 0))
  876. ))
  877. (assert_trap (invoke "test") "out of bounds table access")
  878. (assert_invalid
  879. (module
  880. (table 10 funcref)
  881. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  882. (func $f0)
  883. (func (export "test")
  884. (table.init 0 (i32.const 1) (i32.const 1) (f32.const 1))))
  885. "type mismatch")
  886. (assert_invalid
  887. (module
  888. (table 10 funcref)
  889. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  890. (func $f0)
  891. (func (export "test")
  892. (table.init 0 (i32.const 1) (i32.const 1) (i64.const 1))))
  893. "type mismatch")
  894. (assert_invalid
  895. (module
  896. (table 10 funcref)
  897. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  898. (func $f0)
  899. (func (export "test")
  900. (table.init 0 (i32.const 1) (i32.const 1) (f64.const 1))))
  901. "type mismatch")
  902. (assert_invalid
  903. (module
  904. (table 10 funcref)
  905. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  906. (func $f0)
  907. (func (export "test")
  908. (table.init 0 (i32.const 1) (f32.const 1) (i32.const 1))))
  909. "type mismatch")
  910. (assert_invalid
  911. (module
  912. (table 10 funcref)
  913. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  914. (func $f0)
  915. (func (export "test")
  916. (table.init 0 (i32.const 1) (f32.const 1) (f32.const 1))))
  917. "type mismatch")
  918. (assert_invalid
  919. (module
  920. (table 10 funcref)
  921. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  922. (func $f0)
  923. (func (export "test")
  924. (table.init 0 (i32.const 1) (f32.const 1) (i64.const 1))))
  925. "type mismatch")
  926. (assert_invalid
  927. (module
  928. (table 10 funcref)
  929. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  930. (func $f0)
  931. (func (export "test")
  932. (table.init 0 (i32.const 1) (f32.const 1) (f64.const 1))))
  933. "type mismatch")
  934. (assert_invalid
  935. (module
  936. (table 10 funcref)
  937. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  938. (func $f0)
  939. (func (export "test")
  940. (table.init 0 (i32.const 1) (i64.const 1) (i32.const 1))))
  941. "type mismatch")
  942. (assert_invalid
  943. (module
  944. (table 10 funcref)
  945. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  946. (func $f0)
  947. (func (export "test")
  948. (table.init 0 (i32.const 1) (i64.const 1) (f32.const 1))))
  949. "type mismatch")
  950. (assert_invalid
  951. (module
  952. (table 10 funcref)
  953. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  954. (func $f0)
  955. (func (export "test")
  956. (table.init 0 (i32.const 1) (i64.const 1) (i64.const 1))))
  957. "type mismatch")
  958. (assert_invalid
  959. (module
  960. (table 10 funcref)
  961. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  962. (func $f0)
  963. (func (export "test")
  964. (table.init 0 (i32.const 1) (i64.const 1) (f64.const 1))))
  965. "type mismatch")
  966. (assert_invalid
  967. (module
  968. (table 10 funcref)
  969. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  970. (func $f0)
  971. (func (export "test")
  972. (table.init 0 (i32.const 1) (f64.const 1) (i32.const 1))))
  973. "type mismatch")
  974. (assert_invalid
  975. (module
  976. (table 10 funcref)
  977. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  978. (func $f0)
  979. (func (export "test")
  980. (table.init 0 (i32.const 1) (f64.const 1) (f32.const 1))))
  981. "type mismatch")
  982. (assert_invalid
  983. (module
  984. (table 10 funcref)
  985. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  986. (func $f0)
  987. (func (export "test")
  988. (table.init 0 (i32.const 1) (f64.const 1) (i64.const 1))))
  989. "type mismatch")
  990. (assert_invalid
  991. (module
  992. (table 10 funcref)
  993. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  994. (func $f0)
  995. (func (export "test")
  996. (table.init 0 (i32.const 1) (f64.const 1) (f64.const 1))))
  997. "type mismatch")
  998. (assert_invalid
  999. (module
  1000. (table 10 funcref)
  1001. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  1002. (func $f0)
  1003. (func (export "test")
  1004. (table.init 0 (f32.const 1) (i32.const 1) (i32.const 1))))
  1005. "type mismatch")
  1006. (assert_invalid
  1007. (module
  1008. (table 10 funcref)
  1009. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  1010. (func $f0)
  1011. (func (export "test")
  1012. (table.init 0 (f32.const 1) (i32.const 1) (f32.const 1))))
  1013. "type mismatch")
  1014. (assert_invalid
  1015. (module
  1016. (table 10 funcref)
  1017. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  1018. (func $f0)
  1019. (func (export "test")
  1020. (table.init 0 (f32.const 1) (i32.const 1) (i64.const 1))))
  1021. "type mismatch")
  1022. (assert_invalid
  1023. (module
  1024. (table 10 funcref)
  1025. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  1026. (func $f0)
  1027. (func (export "test")
  1028. (table.init 0 (f32.const 1) (i32.const 1) (f64.const 1))))
  1029. "type mismatch")
  1030. (assert_invalid
  1031. (module
  1032. (table 10 funcref)
  1033. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  1034. (func $f0)
  1035. (func (export "test")
  1036. (table.init 0 (f32.const 1) (f32.const 1) (i32.const 1))))
  1037. "type mismatch")
  1038. (assert_invalid
  1039. (module
  1040. (table 10 funcref)
  1041. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  1042. (func $f0)
  1043. (func (export "test")
  1044. (table.init 0 (f32.const 1) (f32.const 1) (f32.const 1))))
  1045. "type mismatch")
  1046. (assert_invalid
  1047. (module
  1048. (table 10 funcref)
  1049. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  1050. (func $f0)
  1051. (func (export "test")
  1052. (table.init 0 (f32.const 1) (f32.const 1) (i64.const 1))))
  1053. "type mismatch")
  1054. (assert_invalid
  1055. (module
  1056. (table 10 funcref)
  1057. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  1058. (func $f0)
  1059. (func (export "test")
  1060. (table.init 0 (f32.const 1) (f32.const 1) (f64.const 1))))
  1061. "type mismatch")
  1062. (assert_invalid
  1063. (module
  1064. (table 10 funcref)
  1065. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  1066. (func $f0)
  1067. (func (export "test")
  1068. (table.init 0 (f32.const 1) (i64.const 1) (i32.const 1))))
  1069. "type mismatch")
  1070. (assert_invalid
  1071. (module
  1072. (table 10 funcref)
  1073. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  1074. (func $f0)
  1075. (func (export "test")
  1076. (table.init 0 (f32.const 1) (i64.const 1) (f32.const 1))))
  1077. "type mismatch")
  1078. (assert_invalid
  1079. (module
  1080. (table 10 funcref)
  1081. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  1082. (func $f0)
  1083. (func (export "test")
  1084. (table.init 0 (f32.const 1) (i64.const 1) (i64.const 1))))
  1085. "type mismatch")
  1086. (assert_invalid
  1087. (module
  1088. (table 10 funcref)
  1089. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  1090. (func $f0)
  1091. (func (export "test")
  1092. (table.init 0 (f32.const 1) (i64.const 1) (f64.const 1))))
  1093. "type mismatch")
  1094. (assert_invalid
  1095. (module
  1096. (table 10 funcref)
  1097. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  1098. (func $f0)
  1099. (func (export "test")
  1100. (table.init 0 (f32.const 1) (f64.const 1) (i32.const 1))))
  1101. "type mismatch")
  1102. (assert_invalid
  1103. (module
  1104. (table 10 funcref)
  1105. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  1106. (func $f0)
  1107. (func (export "test")
  1108. (table.init 0 (f32.const 1) (f64.const 1) (f32.const 1))))
  1109. "type mismatch")
  1110. (assert_invalid
  1111. (module
  1112. (table 10 funcref)
  1113. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  1114. (func $f0)
  1115. (func (export "test")
  1116. (table.init 0 (f32.const 1) (f64.const 1) (i64.const 1))))
  1117. "type mismatch")
  1118. (assert_invalid
  1119. (module
  1120. (table 10 funcref)
  1121. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  1122. (func $f0)
  1123. (func (export "test")
  1124. (table.init 0 (f32.const 1) (f64.const 1) (f64.const 1))))
  1125. "type mismatch")
  1126. (assert_invalid
  1127. (module
  1128. (table 10 funcref)
  1129. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  1130. (func $f0)
  1131. (func (export "test")
  1132. (table.init 0 (i64.const 1) (i32.const 1) (i32.const 1))))
  1133. "type mismatch")
  1134. (assert_invalid
  1135. (module
  1136. (table 10 funcref)
  1137. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  1138. (func $f0)
  1139. (func (export "test")
  1140. (table.init 0 (i64.const 1) (i32.const 1) (f32.const 1))))
  1141. "type mismatch")
  1142. (assert_invalid
  1143. (module
  1144. (table 10 funcref)
  1145. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  1146. (func $f0)
  1147. (func (export "test")
  1148. (table.init 0 (i64.const 1) (i32.const 1) (i64.const 1))))
  1149. "type mismatch")
  1150. (assert_invalid
  1151. (module
  1152. (table 10 funcref)
  1153. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  1154. (func $f0)
  1155. (func (export "test")
  1156. (table.init 0 (i64.const 1) (i32.const 1) (f64.const 1))))
  1157. "type mismatch")
  1158. (assert_invalid
  1159. (module
  1160. (table 10 funcref)
  1161. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  1162. (func $f0)
  1163. (func (export "test")
  1164. (table.init 0 (i64.const 1) (f32.const 1) (i32.const 1))))
  1165. "type mismatch")
  1166. (assert_invalid
  1167. (module
  1168. (table 10 funcref)
  1169. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  1170. (func $f0)
  1171. (func (export "test")
  1172. (table.init 0 (i64.const 1) (f32.const 1) (f32.const 1))))
  1173. "type mismatch")
  1174. (assert_invalid
  1175. (module
  1176. (table 10 funcref)
  1177. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  1178. (func $f0)
  1179. (func (export "test")
  1180. (table.init 0 (i64.const 1) (f32.const 1) (i64.const 1))))
  1181. "type mismatch")
  1182. (assert_invalid
  1183. (module
  1184. (table 10 funcref)
  1185. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  1186. (func $f0)
  1187. (func (export "test")
  1188. (table.init 0 (i64.const 1) (f32.const 1) (f64.const 1))))
  1189. "type mismatch")
  1190. (assert_invalid
  1191. (module
  1192. (table 10 funcref)
  1193. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  1194. (func $f0)
  1195. (func (export "test")
  1196. (table.init 0 (i64.const 1) (i64.const 1) (i32.const 1))))
  1197. "type mismatch")
  1198. (assert_invalid
  1199. (module
  1200. (table 10 funcref)
  1201. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  1202. (func $f0)
  1203. (func (export "test")
  1204. (table.init 0 (i64.const 1) (i64.const 1) (f32.const 1))))
  1205. "type mismatch")
  1206. (assert_invalid
  1207. (module
  1208. (table 10 funcref)
  1209. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  1210. (func $f0)
  1211. (func (export "test")
  1212. (table.init 0 (i64.const 1) (i64.const 1) (i64.const 1))))
  1213. "type mismatch")
  1214. (assert_invalid
  1215. (module
  1216. (table 10 funcref)
  1217. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  1218. (func $f0)
  1219. (func (export "test")
  1220. (table.init 0 (i64.const 1) (i64.const 1) (f64.const 1))))
  1221. "type mismatch")
  1222. (assert_invalid
  1223. (module
  1224. (table 10 funcref)
  1225. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  1226. (func $f0)
  1227. (func (export "test")
  1228. (table.init 0 (i64.const 1) (f64.const 1) (i32.const 1))))
  1229. "type mismatch")
  1230. (assert_invalid
  1231. (module
  1232. (table 10 funcref)
  1233. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  1234. (func $f0)
  1235. (func (export "test")
  1236. (table.init 0 (i64.const 1) (f64.const 1) (f32.const 1))))
  1237. "type mismatch")
  1238. (assert_invalid
  1239. (module
  1240. (table 10 funcref)
  1241. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  1242. (func $f0)
  1243. (func (export "test")
  1244. (table.init 0 (i64.const 1) (f64.const 1) (i64.const 1))))
  1245. "type mismatch")
  1246. (assert_invalid
  1247. (module
  1248. (table 10 funcref)
  1249. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  1250. (func $f0)
  1251. (func (export "test")
  1252. (table.init 0 (i64.const 1) (f64.const 1) (f64.const 1))))
  1253. "type mismatch")
  1254. (assert_invalid
  1255. (module
  1256. (table 10 funcref)
  1257. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  1258. (func $f0)
  1259. (func (export "test")
  1260. (table.init 0 (f64.const 1) (i32.const 1) (i32.const 1))))
  1261. "type mismatch")
  1262. (assert_invalid
  1263. (module
  1264. (table 10 funcref)
  1265. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  1266. (func $f0)
  1267. (func (export "test")
  1268. (table.init 0 (f64.const 1) (i32.const 1) (f32.const 1))))
  1269. "type mismatch")
  1270. (assert_invalid
  1271. (module
  1272. (table 10 funcref)
  1273. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  1274. (func $f0)
  1275. (func (export "test")
  1276. (table.init 0 (f64.const 1) (i32.const 1) (i64.const 1))))
  1277. "type mismatch")
  1278. (assert_invalid
  1279. (module
  1280. (table 10 funcref)
  1281. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  1282. (func $f0)
  1283. (func (export "test")
  1284. (table.init 0 (f64.const 1) (i32.const 1) (f64.const 1))))
  1285. "type mismatch")
  1286. (assert_invalid
  1287. (module
  1288. (table 10 funcref)
  1289. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  1290. (func $f0)
  1291. (func (export "test")
  1292. (table.init 0 (f64.const 1) (f32.const 1) (i32.const 1))))
  1293. "type mismatch")
  1294. (assert_invalid
  1295. (module
  1296. (table 10 funcref)
  1297. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  1298. (func $f0)
  1299. (func (export "test")
  1300. (table.init 0 (f64.const 1) (f32.const 1) (f32.const 1))))
  1301. "type mismatch")
  1302. (assert_invalid
  1303. (module
  1304. (table 10 funcref)
  1305. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  1306. (func $f0)
  1307. (func (export "test")
  1308. (table.init 0 (f64.const 1) (f32.const 1) (i64.const 1))))
  1309. "type mismatch")
  1310. (assert_invalid
  1311. (module
  1312. (table 10 funcref)
  1313. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  1314. (func $f0)
  1315. (func (export "test")
  1316. (table.init 0 (f64.const 1) (f32.const 1) (f64.const 1))))
  1317. "type mismatch")
  1318. (assert_invalid
  1319. (module
  1320. (table 10 funcref)
  1321. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  1322. (func $f0)
  1323. (func (export "test")
  1324. (table.init 0 (f64.const 1) (i64.const 1) (i32.const 1))))
  1325. "type mismatch")
  1326. (assert_invalid
  1327. (module
  1328. (table 10 funcref)
  1329. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  1330. (func $f0)
  1331. (func (export "test")
  1332. (table.init 0 (f64.const 1) (i64.const 1) (f32.const 1))))
  1333. "type mismatch")
  1334. (assert_invalid
  1335. (module
  1336. (table 10 funcref)
  1337. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  1338. (func $f0)
  1339. (func (export "test")
  1340. (table.init 0 (f64.const 1) (i64.const 1) (i64.const 1))))
  1341. "type mismatch")
  1342. (assert_invalid
  1343. (module
  1344. (table 10 funcref)
  1345. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  1346. (func $f0)
  1347. (func (export "test")
  1348. (table.init 0 (f64.const 1) (i64.const 1) (f64.const 1))))
  1349. "type mismatch")
  1350. (assert_invalid
  1351. (module
  1352. (table 10 funcref)
  1353. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  1354. (func $f0)
  1355. (func (export "test")
  1356. (table.init 0 (f64.const 1) (f64.const 1) (i32.const 1))))
  1357. "type mismatch")
  1358. (assert_invalid
  1359. (module
  1360. (table 10 funcref)
  1361. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  1362. (func $f0)
  1363. (func (export "test")
  1364. (table.init 0 (f64.const 1) (f64.const 1) (f32.const 1))))
  1365. "type mismatch")
  1366. (assert_invalid
  1367. (module
  1368. (table 10 funcref)
  1369. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  1370. (func $f0)
  1371. (func (export "test")
  1372. (table.init 0 (f64.const 1) (f64.const 1) (i64.const 1))))
  1373. "type mismatch")
  1374. (assert_invalid
  1375. (module
  1376. (table 10 funcref)
  1377. (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
  1378. (func $f0)
  1379. (func (export "test")
  1380. (table.init 0 (f64.const 1) (f64.const 1) (f64.const 1))))
  1381. "type mismatch")
  1382. (module
  1383. (type (func (result i32)))
  1384. (table 32 64 funcref)
  1385. (elem funcref
  1386. (ref.func $f0) (ref.func $f1) (ref.func $f2) (ref.func $f3)
  1387. (ref.func $f4) (ref.func $f5) (ref.func $f6) (ref.func $f7)
  1388. (ref.func $f8) (ref.func $f9) (ref.func $f10) (ref.func $f11)
  1389. (ref.func $f12) (ref.func $f13) (ref.func $f14) (ref.func $f15))
  1390. (func $f0 (export "f0") (result i32) (i32.const 0))
  1391. (func $f1 (export "f1") (result i32) (i32.const 1))
  1392. (func $f2 (export "f2") (result i32) (i32.const 2))
  1393. (func $f3 (export "f3") (result i32) (i32.const 3))
  1394. (func $f4 (export "f4") (result i32) (i32.const 4))
  1395. (func $f5 (export "f5") (result i32) (i32.const 5))
  1396. (func $f6 (export "f6") (result i32) (i32.const 6))
  1397. (func $f7 (export "f7") (result i32) (i32.const 7))
  1398. (func $f8 (export "f8") (result i32) (i32.const 8))
  1399. (func $f9 (export "f9") (result i32) (i32.const 9))
  1400. (func $f10 (export "f10") (result i32) (i32.const 10))
  1401. (func $f11 (export "f11") (result i32) (i32.const 11))
  1402. (func $f12 (export "f12") (result i32) (i32.const 12))
  1403. (func $f13 (export "f13") (result i32) (i32.const 13))
  1404. (func $f14 (export "f14") (result i32) (i32.const 14))
  1405. (func $f15 (export "f15") (result i32) (i32.const 15))
  1406. (func (export "test") (param $n i32) (result i32)
  1407. (call_indirect (type 0) (local.get $n)))
  1408. (func (export "run") (param $offs i32) (param $len i32)
  1409. (table.init 0 (local.get $offs) (i32.const 0) (local.get $len))))
  1410. (assert_trap (invoke "run" (i32.const 24) (i32.const 16)) "out of bounds table access")
  1411. (assert_trap (invoke "test" (i32.const 0)) "uninitialized element")
  1412. (assert_trap (invoke "test" (i32.const 1)) "uninitialized element")
  1413. (assert_trap (invoke "test" (i32.const 2)) "uninitialized element")
  1414. (assert_trap (invoke "test" (i32.const 3)) "uninitialized element")
  1415. (assert_trap (invoke "test" (i32.const 4)) "uninitialized element")
  1416. (assert_trap (invoke "test" (i32.const 5)) "uninitialized element")
  1417. (assert_trap (invoke "test" (i32.const 6)) "uninitialized element")
  1418. (assert_trap (invoke "test" (i32.const 7)) "uninitialized element")
  1419. (assert_trap (invoke "test" (i32.const 8)) "uninitialized element")
  1420. (assert_trap (invoke "test" (i32.const 9)) "uninitialized element")
  1421. (assert_trap (invoke "test" (i32.const 10)) "uninitialized element")
  1422. (assert_trap (invoke "test" (i32.const 11)) "uninitialized element")
  1423. (assert_trap (invoke "test" (i32.const 12)) "uninitialized element")
  1424. (assert_trap (invoke "test" (i32.const 13)) "uninitialized element")
  1425. (assert_trap (invoke "test" (i32.const 14)) "uninitialized element")
  1426. (assert_trap (invoke "test" (i32.const 15)) "uninitialized element")
  1427. (assert_trap (invoke "test" (i32.const 16)) "uninitialized element")
  1428. (assert_trap (invoke "test" (i32.const 17)) "uninitialized element")
  1429. (assert_trap (invoke "test" (i32.const 18)) "uninitialized element")
  1430. (assert_trap (invoke "test" (i32.const 19)) "uninitialized element")
  1431. (assert_trap (invoke "test" (i32.const 20)) "uninitialized element")
  1432. (assert_trap (invoke "test" (i32.const 21)) "uninitialized element")
  1433. (assert_trap (invoke "test" (i32.const 22)) "uninitialized element")
  1434. (assert_trap (invoke "test" (i32.const 23)) "uninitialized element")
  1435. (assert_trap (invoke "test" (i32.const 24)) "uninitialized element")
  1436. (assert_trap (invoke "test" (i32.const 25)) "uninitialized element")
  1437. (assert_trap (invoke "test" (i32.const 26)) "uninitialized element")
  1438. (assert_trap (invoke "test" (i32.const 27)) "uninitialized element")
  1439. (assert_trap (invoke "test" (i32.const 28)) "uninitialized element")
  1440. (assert_trap (invoke "test" (i32.const 29)) "uninitialized element")
  1441. (assert_trap (invoke "test" (i32.const 30)) "uninitialized element")
  1442. (assert_trap (invoke "test" (i32.const 31)) "uninitialized element")
  1443. (module
  1444. (type (func (result i32)))
  1445. (table 32 64 funcref)
  1446. (elem funcref
  1447. (ref.func $f0) (ref.func $f1) (ref.func $f2) (ref.func $f3)
  1448. (ref.func $f4) (ref.func $f5) (ref.func $f6) (ref.func $f7)
  1449. (ref.func $f8) (ref.func $f9) (ref.func $f10) (ref.func $f11)
  1450. (ref.func $f12) (ref.func $f13) (ref.func $f14) (ref.func $f15))
  1451. (func $f0 (export "f0") (result i32) (i32.const 0))
  1452. (func $f1 (export "f1") (result i32) (i32.const 1))
  1453. (func $f2 (export "f2") (result i32) (i32.const 2))
  1454. (func $f3 (export "f3") (result i32) (i32.const 3))
  1455. (func $f4 (export "f4") (result i32) (i32.const 4))
  1456. (func $f5 (export "f5") (result i32) (i32.const 5))
  1457. (func $f6 (export "f6") (result i32) (i32.const 6))
  1458. (func $f7 (export "f7") (result i32) (i32.const 7))
  1459. (func $f8 (export "f8") (result i32) (i32.const 8))
  1460. (func $f9 (export "f9") (result i32) (i32.const 9))
  1461. (func $f10 (export "f10") (result i32) (i32.const 10))
  1462. (func $f11 (export "f11") (result i32) (i32.const 11))
  1463. (func $f12 (export "f12") (result i32) (i32.const 12))
  1464. (func $f13 (export "f13") (result i32) (i32.const 13))
  1465. (func $f14 (export "f14") (result i32) (i32.const 14))
  1466. (func $f15 (export "f15") (result i32) (i32.const 15))
  1467. (func (export "test") (param $n i32) (result i32)
  1468. (call_indirect (type 0) (local.get $n)))
  1469. (func (export "run") (param $offs i32) (param $len i32)
  1470. (table.init 0 (local.get $offs) (i32.const 0) (local.get $len))))
  1471. (assert_trap (invoke "run" (i32.const 25) (i32.const 16)) "out of bounds table access")
  1472. (assert_trap (invoke "test" (i32.const 0)) "uninitialized element")
  1473. (assert_trap (invoke "test" (i32.const 1)) "uninitialized element")
  1474. (assert_trap (invoke "test" (i32.const 2)) "uninitialized element")
  1475. (assert_trap (invoke "test" (i32.const 3)) "uninitialized element")
  1476. (assert_trap (invoke "test" (i32.const 4)) "uninitialized element")
  1477. (assert_trap (invoke "test" (i32.const 5)) "uninitialized element")
  1478. (assert_trap (invoke "test" (i32.const 6)) "uninitialized element")
  1479. (assert_trap (invoke "test" (i32.const 7)) "uninitialized element")
  1480. (assert_trap (invoke "test" (i32.const 8)) "uninitialized element")
  1481. (assert_trap (invoke "test" (i32.const 9)) "uninitialized element")
  1482. (assert_trap (invoke "test" (i32.const 10)) "uninitialized element")
  1483. (assert_trap (invoke "test" (i32.const 11)) "uninitialized element")
  1484. (assert_trap (invoke "test" (i32.const 12)) "uninitialized element")
  1485. (assert_trap (invoke "test" (i32.const 13)) "uninitialized element")
  1486. (assert_trap (invoke "test" (i32.const 14)) "uninitialized element")
  1487. (assert_trap (invoke "test" (i32.const 15)) "uninitialized element")
  1488. (assert_trap (invoke "test" (i32.const 16)) "uninitialized element")
  1489. (assert_trap (invoke "test" (i32.const 17)) "uninitialized element")
  1490. (assert_trap (invoke "test" (i32.const 18)) "uninitialized element")
  1491. (assert_trap (invoke "test" (i32.const 19)) "uninitialized element")
  1492. (assert_trap (invoke "test" (i32.const 20)) "uninitialized element")
  1493. (assert_trap (invoke "test" (i32.const 21)) "uninitialized element")
  1494. (assert_trap (invoke "test" (i32.const 22)) "uninitialized element")
  1495. (assert_trap (invoke "test" (i32.const 23)) "uninitialized element")
  1496. (assert_trap (invoke "test" (i32.const 24)) "uninitialized element")
  1497. (assert_trap (invoke "test" (i32.const 25)) "uninitialized element")
  1498. (assert_trap (invoke "test" (i32.const 26)) "uninitialized element")
  1499. (assert_trap (invoke "test" (i32.const 27)) "uninitialized element")
  1500. (assert_trap (invoke "test" (i32.const 28)) "uninitialized element")
  1501. (assert_trap (invoke "test" (i32.const 29)) "uninitialized element")
  1502. (assert_trap (invoke "test" (i32.const 30)) "uninitialized element")
  1503. (assert_trap (invoke "test" (i32.const 31)) "uninitialized element")
  1504. (module
  1505. (type (func (result i32)))
  1506. (table 160 320 funcref)
  1507. (elem funcref
  1508. (ref.func $f0) (ref.func $f1) (ref.func $f2) (ref.func $f3)
  1509. (ref.func $f4) (ref.func $f5) (ref.func $f6) (ref.func $f7)
  1510. (ref.func $f8) (ref.func $f9) (ref.func $f10) (ref.func $f11)
  1511. (ref.func $f12) (ref.func $f13) (ref.func $f14) (ref.func $f15))
  1512. (func $f0 (export "f0") (result i32) (i32.const 0))
  1513. (func $f1 (export "f1") (result i32) (i32.const 1))
  1514. (func $f2 (export "f2") (result i32) (i32.const 2))
  1515. (func $f3 (export "f3") (result i32) (i32.const 3))
  1516. (func $f4 (export "f4") (result i32) (i32.const 4))
  1517. (func $f5 (export "f5") (result i32) (i32.const 5))
  1518. (func $f6 (export "f6") (result i32) (i32.const 6))
  1519. (func $f7 (export "f7") (result i32) (i32.const 7))
  1520. (func $f8 (export "f8") (result i32) (i32.const 8))
  1521. (func $f9 (export "f9") (result i32) (i32.const 9))
  1522. (func $f10 (export "f10") (result i32) (i32.const 10))
  1523. (func $f11 (export "f11") (result i32) (i32.const 11))
  1524. (func $f12 (export "f12") (result i32) (i32.const 12))
  1525. (func $f13 (export "f13") (result i32) (i32.const 13))
  1526. (func $f14 (export "f14") (result i32) (i32.const 14))
  1527. (func $f15 (export "f15") (result i32) (i32.const 15))
  1528. (func (export "test") (param $n i32) (result i32)
  1529. (call_indirect (type 0) (local.get $n)))
  1530. (func (export "run") (param $offs i32) (param $len i32)
  1531. (table.init 0 (local.get $offs) (i32.const 0) (local.get $len))))
  1532. (assert_trap (invoke "run" (i32.const 96) (i32.const 32)) "out of bounds table access")
  1533. (assert_trap (invoke "test" (i32.const 0)) "uninitialized element")
  1534. (assert_trap (invoke "test" (i32.const 1)) "uninitialized element")
  1535. (assert_trap (invoke "test" (i32.const 2)) "uninitialized element")
  1536. (assert_trap (invoke "test" (i32.const 3)) "uninitialized element")
  1537. (assert_trap (invoke "test" (i32.const 4)) "uninitialized element")
  1538. (assert_trap (invoke "test" (i32.const 5)) "uninitialized element")
  1539. (assert_trap (invoke "test" (i32.const 6)) "uninitialized element")
  1540. (assert_trap (invoke "test" (i32.const 7)) "uninitialized element")
  1541. (assert_trap (invoke "test" (i32.const 8)) "uninitialized element")
  1542. (assert_trap (invoke "test" (i32.const 9)) "uninitialized element")
  1543. (assert_trap (invoke "test" (i32.const 10)) "uninitialized element")
  1544. (assert_trap (invoke "test" (i32.const 11)) "uninitialized element")
  1545. (assert_trap (invoke "test" (i32.const 12)) "uninitialized element")
  1546. (assert_trap (invoke "test" (i32.const 13)) "uninitialized element")
  1547. (assert_trap (invoke "test" (i32.const 14)) "uninitialized element")
  1548. (assert_trap (invoke "test" (i32.const 15)) "uninitialized element")
  1549. (assert_trap (invoke "test" (i32.const 16)) "uninitialized element")
  1550. (assert_trap (invoke "test" (i32.const 17)) "uninitialized element")
  1551. (assert_trap (invoke "test" (i32.const 18)) "uninitialized element")
  1552. (assert_trap (invoke "test" (i32.const 19)) "uninitialized element")
  1553. (assert_trap (invoke "test" (i32.const 20)) "uninitialized element")
  1554. (assert_trap (invoke "test" (i32.const 21)) "uninitialized element")
  1555. (assert_trap (invoke "test" (i32.const 22)) "uninitialized element")
  1556. (assert_trap (invoke "test" (i32.const 23)) "uninitialized element")
  1557. (assert_trap (invoke "test" (i32.const 24)) "uninitialized element")
  1558. (assert_trap (invoke "test" (i32.const 25)) "uninitialized element")
  1559. (assert_trap (invoke "test" (i32.const 26)) "uninitialized element")
  1560. (assert_trap (invoke "test" (i32.const 27)) "uninitialized element")
  1561. (assert_trap (invoke "test" (i32.const 28)) "uninitialized element")
  1562. (assert_trap (invoke "test" (i32.const 29)) "uninitialized element")
  1563. (assert_trap (invoke "test" (i32.const 30)) "uninitialized element")
  1564. (assert_trap (invoke "test" (i32.const 31)) "uninitialized element")
  1565. (assert_trap (invoke "test" (i32.const 32)) "uninitialized element")
  1566. (assert_trap (invoke "test" (i32.const 33)) "uninitialized element")
  1567. (assert_trap (invoke "test" (i32.const 34)) "uninitialized element")
  1568. (assert_trap (invoke "test" (i32.const 35)) "uninitialized element")
  1569. (assert_trap (invoke "test" (i32.const 36)) "uninitialized element")
  1570. (assert_trap (invoke "test" (i32.const 37)) "uninitialized element")
  1571. (assert_trap (invoke "test" (i32.const 38)) "uninitialized element")
  1572. (assert_trap (invoke "test" (i32.const 39)) "uninitialized element")
  1573. (assert_trap (invoke "test" (i32.const 40)) "uninitialized element")
  1574. (assert_trap (invoke "test" (i32.const 41)) "uninitialized element")
  1575. (assert_trap (invoke "test" (i32.const 42)) "uninitialized element")
  1576. (assert_trap (invoke "test" (i32.const 43)) "uninitialized element")
  1577. (assert_trap (invoke "test" (i32.const 44)) "uninitialized element")
  1578. (assert_trap (invoke "test" (i32.const 45)) "uninitialized element")
  1579. (assert_trap (invoke "test" (i32.const 46)) "uninitialized element")
  1580. (assert_trap (invoke "test" (i32.const 47)) "uninitialized element")
  1581. (assert_trap (invoke "test" (i32.const 48)) "uninitialized element")
  1582. (assert_trap (invoke "test" (i32.const 49)) "uninitialized element")
  1583. (assert_trap (invoke "test" (i32.const 50)) "uninitialized element")
  1584. (assert_trap (invoke "test" (i32.const 51)) "uninitialized element")
  1585. (assert_trap (invoke "test" (i32.const 52)) "uninitialized element")
  1586. (assert_trap (invoke "test" (i32.const 53)) "uninitialized element")
  1587. (assert_trap (invoke "test" (i32.const 54)) "uninitialized element")
  1588. (assert_trap (invoke "test" (i32.const 55)) "uninitialized element")
  1589. (assert_trap (invoke "test" (i32.const 56)) "uninitialized element")
  1590. (assert_trap (invoke "test" (i32.const 57)) "uninitialized element")
  1591. (assert_trap (invoke "test" (i32.const 58)) "uninitialized element")
  1592. (assert_trap (invoke "test" (i32.const 59)) "uninitialized element")
  1593. (assert_trap (invoke "test" (i32.const 60)) "uninitialized element")
  1594. (assert_trap (invoke "test" (i32.const 61)) "uninitialized element")
  1595. (assert_trap (invoke "test" (i32.const 62)) "uninitialized element")
  1596. (assert_trap (invoke "test" (i32.const 63)) "uninitialized element")
  1597. (assert_trap (invoke "test" (i32.const 64)) "uninitialized element")
  1598. (assert_trap (invoke "test" (i32.const 65)) "uninitialized element")
  1599. (assert_trap (invoke "test" (i32.const 66)) "uninitialized element")
  1600. (assert_trap (invoke "test" (i32.const 67)) "uninitialized element")
  1601. (assert_trap (invoke "test" (i32.const 68)) "uninitialized element")
  1602. (assert_trap (invoke "test" (i32.const 69)) "uninitialized element")
  1603. (assert_trap (invoke "test" (i32.const 70)) "uninitialized element")
  1604. (assert_trap (invoke "test" (i32.const 71)) "uninitialized element")
  1605. (assert_trap (invoke "test" (i32.const 72)) "uninitialized element")
  1606. (assert_trap (invoke "test" (i32.const 73)) "uninitialized element")
  1607. (assert_trap (invoke "test" (i32.const 74)) "uninitialized element")
  1608. (assert_trap (invoke "test" (i32.const 75)) "uninitialized element")
  1609. (assert_trap (invoke "test" (i32.const 76)) "uninitialized element")
  1610. (assert_trap (invoke "test" (i32.const 77)) "uninitialized element")
  1611. (assert_trap (invoke "test" (i32.const 78)) "uninitialized element")
  1612. (assert_trap (invoke "test" (i32.const 79)) "uninitialized element")
  1613. (assert_trap (invoke "test" (i32.const 80)) "uninitialized element")
  1614. (assert_trap (invoke "test" (i32.const 81)) "uninitialized element")
  1615. (assert_trap (invoke "test" (i32.const 82)) "uninitialized element")
  1616. (assert_trap (invoke "test" (i32.const 83)) "uninitialized element")
  1617. (assert_trap (invoke "test" (i32.const 84)) "uninitialized element")
  1618. (assert_trap (invoke "test" (i32.const 85)) "uninitialized element")
  1619. (assert_trap (invoke "test" (i32.const 86)) "uninitialized element")
  1620. (assert_trap (invoke "test" (i32.const 87)) "uninitialized element")
  1621. (assert_trap (invoke "test" (i32.const 88)) "uninitialized element")
  1622. (assert_trap (invoke "test" (i32.const 89)) "uninitialized element")
  1623. (assert_trap (invoke "test" (i32.const 90)) "uninitialized element")
  1624. (assert_trap (invoke "test" (i32.const 91)) "uninitialized element")
  1625. (assert_trap (invoke "test" (i32.const 92)) "uninitialized element")
  1626. (assert_trap (invoke "test" (i32.const 93)) "uninitialized element")
  1627. (assert_trap (invoke "test" (i32.const 94)) "uninitialized element")
  1628. (assert_trap (invoke "test" (i32.const 95)) "uninitialized element")
  1629. (assert_trap (invoke "test" (i32.const 96)) "uninitialized element")
  1630. (assert_trap (invoke "test" (i32.const 97)) "uninitialized element")
  1631. (assert_trap (invoke "test" (i32.const 98)) "uninitialized element")
  1632. (assert_trap (invoke "test" (i32.const 99)) "uninitialized element")
  1633. (assert_trap (invoke "test" (i32.const 100)) "uninitialized element")
  1634. (assert_trap (invoke "test" (i32.const 101)) "uninitialized element")
  1635. (assert_trap (invoke "test" (i32.const 102)) "uninitialized element")
  1636. (assert_trap (invoke "test" (i32.const 103)) "uninitialized element")
  1637. (assert_trap (invoke "test" (i32.const 104)) "uninitialized element")
  1638. (assert_trap (invoke "test" (i32.const 105)) "uninitialized element")
  1639. (assert_trap (invoke "test" (i32.const 106)) "uninitialized element")
  1640. (assert_trap (invoke "test" (i32.const 107)) "uninitialized element")
  1641. (assert_trap (invoke "test" (i32.const 108)) "uninitialized element")
  1642. (assert_trap (invoke "test" (i32.const 109)) "uninitialized element")
  1643. (assert_trap (invoke "test" (i32.const 110)) "uninitialized element")
  1644. (assert_trap (invoke "test" (i32.const 111)) "uninitialized element")
  1645. (assert_trap (invoke "test" (i32.const 112)) "uninitialized element")
  1646. (assert_trap (invoke "test" (i32.const 113)) "uninitialized element")
  1647. (assert_trap (invoke "test" (i32.const 114)) "uninitialized element")
  1648. (assert_trap (invoke "test" (i32.const 115)) "uninitialized element")
  1649. (assert_trap (invoke "test" (i32.const 116)) "uninitialized element")
  1650. (assert_trap (invoke "test" (i32.const 117)) "uninitialized element")
  1651. (assert_trap (invoke "test" (i32.const 118)) "uninitialized element")
  1652. (assert_trap (invoke "test" (i32.const 119)) "uninitialized element")
  1653. (assert_trap (invoke "test" (i32.const 120)) "uninitialized element")
  1654. (assert_trap (invoke "test" (i32.const 121)) "uninitialized element")
  1655. (assert_trap (invoke "test" (i32.const 122)) "uninitialized element")
  1656. (assert_trap (invoke "test" (i32.const 123)) "uninitialized element")
  1657. (assert_trap (invoke "test" (i32.const 124)) "uninitialized element")
  1658. (assert_trap (invoke "test" (i32.const 125)) "uninitialized element")
  1659. (assert_trap (invoke "test" (i32.const 126)) "uninitialized element")
  1660. (assert_trap (invoke "test" (i32.const 127)) "uninitialized element")
  1661. (assert_trap (invoke "test" (i32.const 128)) "uninitialized element")
  1662. (assert_trap (invoke "test" (i32.const 129)) "uninitialized element")
  1663. (assert_trap (invoke "test" (i32.const 130)) "uninitialized element")
  1664. (assert_trap (invoke "test" (i32.const 131)) "uninitialized element")
  1665. (assert_trap (invoke "test" (i32.const 132)) "uninitialized element")
  1666. (assert_trap (invoke "test" (i32.const 133)) "uninitialized element")
  1667. (assert_trap (invoke "test" (i32.const 134)) "uninitialized element")
  1668. (assert_trap (invoke "test" (i32.const 135)) "uninitialized element")
  1669. (assert_trap (invoke "test" (i32.const 136)) "uninitialized element")
  1670. (assert_trap (invoke "test" (i32.const 137)) "uninitialized element")
  1671. (assert_trap (invoke "test" (i32.const 138)) "uninitialized element")
  1672. (assert_trap (invoke "test" (i32.const 139)) "uninitialized element")
  1673. (assert_trap (invoke "test" (i32.const 140)) "uninitialized element")
  1674. (assert_trap (invoke "test" (i32.const 141)) "uninitialized element")
  1675. (assert_trap (invoke "test" (i32.const 142)) "uninitialized element")
  1676. (assert_trap (invoke "test" (i32.const 143)) "uninitialized element")
  1677. (assert_trap (invoke "test" (i32.const 144)) "uninitialized element")
  1678. (assert_trap (invoke "test" (i32.const 145)) "uninitialized element")
  1679. (assert_trap (invoke "test" (i32.const 146)) "uninitialized element")
  1680. (assert_trap (invoke "test" (i32.const 147)) "uninitialized element")
  1681. (assert_trap (invoke "test" (i32.const 148)) "uninitialized element")
  1682. (assert_trap (invoke "test" (i32.const 149)) "uninitialized element")
  1683. (assert_trap (invoke "test" (i32.const 150)) "uninitialized element")
  1684. (assert_trap (invoke "test" (i32.const 151)) "uninitialized element")
  1685. (assert_trap (invoke "test" (i32.const 152)) "uninitialized element")
  1686. (assert_trap (invoke "test" (i32.const 153)) "uninitialized element")
  1687. (assert_trap (invoke "test" (i32.const 154)) "uninitialized element")
  1688. (assert_trap (invoke "test" (i32.const 155)) "uninitialized element")
  1689. (assert_trap (invoke "test" (i32.const 156)) "uninitialized element")
  1690. (assert_trap (invoke "test" (i32.const 157)) "uninitialized element")
  1691. (assert_trap (invoke "test" (i32.const 158)) "uninitialized element")
  1692. (assert_trap (invoke "test" (i32.const 159)) "uninitialized element")
  1693. (module
  1694. (type (func (result i32)))
  1695. (table 160 320 funcref)
  1696. (elem funcref
  1697. (ref.func $f0) (ref.func $f1) (ref.func $f2) (ref.func $f3)
  1698. (ref.func $f4) (ref.func $f5) (ref.func $f6) (ref.func $f7)
  1699. (ref.func $f8) (ref.func $f9) (ref.func $f10) (ref.func $f11)
  1700. (ref.func $f12) (ref.func $f13) (ref.func $f14) (ref.func $f15))
  1701. (func $f0 (export "f0") (result i32) (i32.const 0))
  1702. (func $f1 (export "f1") (result i32) (i32.const 1))
  1703. (func $f2 (export "f2") (result i32) (i32.const 2))
  1704. (func $f3 (export "f3") (result i32) (i32.const 3))
  1705. (func $f4 (export "f4") (result i32) (i32.const 4))
  1706. (func $f5 (export "f5") (result i32) (i32.const 5))
  1707. (func $f6 (export "f6") (result i32) (i32.const 6))
  1708. (func $f7 (export "f7") (result i32) (i32.const 7))
  1709. (func $f8 (export "f8") (result i32) (i32.const 8))
  1710. (func $f9 (export "f9") (result i32) (i32.const 9))
  1711. (func $f10 (export "f10") (result i32) (i32.const 10))
  1712. (func $f11 (export "f11") (result i32) (i32.const 11))
  1713. (func $f12 (export "f12") (result i32) (i32.const 12))
  1714. (func $f13 (export "f13") (result i32) (i32.const 13))
  1715. (func $f14 (export "f14") (result i32) (i32.const 14))
  1716. (func $f15 (export "f15") (result i32) (i32.const 15))
  1717. (func (export "test") (param $n i32) (result i32)
  1718. (call_indirect (type 0) (local.get $n)))
  1719. (func (export "run") (param $offs i32) (param $len i32)
  1720. (table.init 0 (local.get $offs) (i32.const 0) (local.get $len))))
  1721. (assert_trap (invoke "run" (i32.const 97) (i32.const 31)) "out of bounds table access")
  1722. (assert_trap (invoke "test" (i32.const 0)) "uninitialized element")
  1723. (assert_trap (invoke "test" (i32.const 1)) "uninitialized element")
  1724. (assert_trap (invoke "test" (i32.const 2)) "uninitialized element")
  1725. (assert_trap (invoke "test" (i32.const 3)) "uninitialized element")
  1726. (assert_trap (invoke "test" (i32.const 4)) "uninitialized element")
  1727. (assert_trap (invoke "test" (i32.const 5)) "uninitialized element")
  1728. (assert_trap (invoke "test" (i32.const 6)) "uninitialized element")
  1729. (assert_trap (invoke "test" (i32.const 7)) "uninitialized element")
  1730. (assert_trap (invoke "test" (i32.const 8)) "uninitialized element")
  1731. (assert_trap (invoke "test" (i32.const 9)) "uninitialized element")
  1732. (assert_trap (invoke "test" (i32.const 10)) "uninitialized element")
  1733. (assert_trap (invoke "test" (i32.const 11)) "uninitialized element")
  1734. (assert_trap (invoke "test" (i32.const 12)) "uninitialized element")
  1735. (assert_trap (invoke "test" (i32.const 13)) "uninitialized element")
  1736. (assert_trap (invoke "test" (i32.const 14)) "uninitialized element")
  1737. (assert_trap (invoke "test" (i32.const 15)) "uninitialized element")
  1738. (assert_trap (invoke "test" (i32.const 16)) "uninitialized element")
  1739. (assert_trap (invoke "test" (i32.const 17)) "uninitialized element")
  1740. (assert_trap (invoke "test" (i32.const 18)) "uninitialized element")
  1741. (assert_trap (invoke "test" (i32.const 19)) "uninitialized element")
  1742. (assert_trap (invoke "test" (i32.const 20)) "uninitialized element")
  1743. (assert_trap (invoke "test" (i32.const 21)) "uninitialized element")
  1744. (assert_trap (invoke "test" (i32.const 22)) "uninitialized element")
  1745. (assert_trap (invoke "test" (i32.const 23)) "uninitialized element")
  1746. (assert_trap (invoke "test" (i32.const 24)) "uninitialized element")
  1747. (assert_trap (invoke "test" (i32.const 25)) "uninitialized element")
  1748. (assert_trap (invoke "test" (i32.const 26)) "uninitialized element")
  1749. (assert_trap (invoke "test" (i32.const 27)) "uninitialized element")
  1750. (assert_trap (invoke "test" (i32.const 28)) "uninitialized element")
  1751. (assert_trap (invoke "test" (i32.const 29)) "uninitialized element")
  1752. (assert_trap (invoke "test" (i32.const 30)) "uninitialized element")
  1753. (assert_trap (invoke "test" (i32.const 31)) "uninitialized element")
  1754. (assert_trap (invoke "test" (i32.const 32)) "uninitialized element")
  1755. (assert_trap (invoke "test" (i32.const 33)) "uninitialized element")
  1756. (assert_trap (invoke "test" (i32.const 34)) "uninitialized element")
  1757. (assert_trap (invoke "test" (i32.const 35)) "uninitialized element")
  1758. (assert_trap (invoke "test" (i32.const 36)) "uninitialized element")
  1759. (assert_trap (invoke "test" (i32.const 37)) "uninitialized element")
  1760. (assert_trap (invoke "test" (i32.const 38)) "uninitialized element")
  1761. (assert_trap (invoke "test" (i32.const 39)) "uninitialized element")
  1762. (assert_trap (invoke "test" (i32.const 40)) "uninitialized element")
  1763. (assert_trap (invoke "test" (i32.const 41)) "uninitialized element")
  1764. (assert_trap (invoke "test" (i32.const 42)) "uninitialized element")
  1765. (assert_trap (invoke "test" (i32.const 43)) "uninitialized element")
  1766. (assert_trap (invoke "test" (i32.const 44)) "uninitialized element")
  1767. (assert_trap (invoke "test" (i32.const 45)) "uninitialized element")
  1768. (assert_trap (invoke "test" (i32.const 46)) "uninitialized element")
  1769. (assert_trap (invoke "test" (i32.const 47)) "uninitialized element")
  1770. (assert_trap (invoke "test" (i32.const 48)) "uninitialized element")
  1771. (assert_trap (invoke "test" (i32.const 49)) "uninitialized element")
  1772. (assert_trap (invoke "test" (i32.const 50)) "uninitialized element")
  1773. (assert_trap (invoke "test" (i32.const 51)) "uninitialized element")
  1774. (assert_trap (invoke "test" (i32.const 52)) "uninitialized element")
  1775. (assert_trap (invoke "test" (i32.const 53)) "uninitialized element")
  1776. (assert_trap (invoke "test" (i32.const 54)) "uninitialized element")
  1777. (assert_trap (invoke "test" (i32.const 55)) "uninitialized element")
  1778. (assert_trap (invoke "test" (i32.const 56)) "uninitialized element")
  1779. (assert_trap (invoke "test" (i32.const 57)) "uninitialized element")
  1780. (assert_trap (invoke "test" (i32.const 58)) "uninitialized element")
  1781. (assert_trap (invoke "test" (i32.const 59)) "uninitialized element")
  1782. (assert_trap (invoke "test" (i32.const 60)) "uninitialized element")
  1783. (assert_trap (invoke "test" (i32.const 61)) "uninitialized element")
  1784. (assert_trap (invoke "test" (i32.const 62)) "uninitialized element")
  1785. (assert_trap (invoke "test" (i32.const 63)) "uninitialized element")
  1786. (assert_trap (invoke "test" (i32.const 64)) "uninitialized element")
  1787. (assert_trap (invoke "test" (i32.const 65)) "uninitialized element")
  1788. (assert_trap (invoke "test" (i32.const 66)) "uninitialized element")
  1789. (assert_trap (invoke "test" (i32.const 67)) "uninitialized element")
  1790. (assert_trap (invoke "test" (i32.const 68)) "uninitialized element")
  1791. (assert_trap (invoke "test" (i32.const 69)) "uninitialized element")
  1792. (assert_trap (invoke "test" (i32.const 70)) "uninitialized element")
  1793. (assert_trap (invoke "test" (i32.const 71)) "uninitialized element")
  1794. (assert_trap (invoke "test" (i32.const 72)) "uninitialized element")
  1795. (assert_trap (invoke "test" (i32.const 73)) "uninitialized element")
  1796. (assert_trap (invoke "test" (i32.const 74)) "uninitialized element")
  1797. (assert_trap (invoke "test" (i32.const 75)) "uninitialized element")
  1798. (assert_trap (invoke "test" (i32.const 76)) "uninitialized element")
  1799. (assert_trap (invoke "test" (i32.const 77)) "uninitialized element")
  1800. (assert_trap (invoke "test" (i32.const 78)) "uninitialized element")
  1801. (assert_trap (invoke "test" (i32.const 79)) "uninitialized element")
  1802. (assert_trap (invoke "test" (i32.const 80)) "uninitialized element")
  1803. (assert_trap (invoke "test" (i32.const 81)) "uninitialized element")
  1804. (assert_trap (invoke "test" (i32.const 82)) "uninitialized element")
  1805. (assert_trap (invoke "test" (i32.const 83)) "uninitialized element")
  1806. (assert_trap (invoke "test" (i32.const 84)) "uninitialized element")
  1807. (assert_trap (invoke "test" (i32.const 85)) "uninitialized element")
  1808. (assert_trap (invoke "test" (i32.const 86)) "uninitialized element")
  1809. (assert_trap (invoke "test" (i32.const 87)) "uninitialized element")
  1810. (assert_trap (invoke "test" (i32.const 88)) "uninitialized element")
  1811. (assert_trap (invoke "test" (i32.const 89)) "uninitialized element")
  1812. (assert_trap (invoke "test" (i32.const 90)) "uninitialized element")
  1813. (assert_trap (invoke "test" (i32.const 91)) "uninitialized element")
  1814. (assert_trap (invoke "test" (i32.const 92)) "uninitialized element")
  1815. (assert_trap (invoke "test" (i32.const 93)) "uninitialized element")
  1816. (assert_trap (invoke "test" (i32.const 94)) "uninitialized element")
  1817. (assert_trap (invoke "test" (i32.const 95)) "uninitialized element")
  1818. (assert_trap (invoke "test" (i32.const 96)) "uninitialized element")
  1819. (assert_trap (invoke "test" (i32.const 97)) "uninitialized element")
  1820. (assert_trap (invoke "test" (i32.const 98)) "uninitialized element")
  1821. (assert_trap (invoke "test" (i32.const 99)) "uninitialized element")
  1822. (assert_trap (invoke "test" (i32.const 100)) "uninitialized element")
  1823. (assert_trap (invoke "test" (i32.const 101)) "uninitialized element")
  1824. (assert_trap (invoke "test" (i32.const 102)) "uninitialized element")
  1825. (assert_trap (invoke "test" (i32.const 103)) "uninitialized element")
  1826. (assert_trap (invoke "test" (i32.const 104)) "uninitialized element")
  1827. (assert_trap (invoke "test" (i32.const 105)) "uninitialized element")
  1828. (assert_trap (invoke "test" (i32.const 106)) "uninitialized element")
  1829. (assert_trap (invoke "test" (i32.const 107)) "uninitialized element")
  1830. (assert_trap (invoke "test" (i32.const 108)) "uninitialized element")
  1831. (assert_trap (invoke "test" (i32.const 109)) "uninitialized element")
  1832. (assert_trap (invoke "test" (i32.const 110)) "uninitialized element")
  1833. (assert_trap (invoke "test" (i32.const 111)) "uninitialized element")
  1834. (assert_trap (invoke "test" (i32.const 112)) "uninitialized element")
  1835. (assert_trap (invoke "test" (i32.const 113)) "uninitialized element")
  1836. (assert_trap (invoke "test" (i32.const 114)) "uninitialized element")
  1837. (assert_trap (invoke "test" (i32.const 115)) "uninitialized element")
  1838. (assert_trap (invoke "test" (i32.const 116)) "uninitialized element")
  1839. (assert_trap (invoke "test" (i32.const 117)) "uninitialized element")
  1840. (assert_trap (invoke "test" (i32.const 118)) "uninitialized element")
  1841. (assert_trap (invoke "test" (i32.const 119)) "uninitialized element")
  1842. (assert_trap (invoke "test" (i32.const 120)) "uninitialized element")
  1843. (assert_trap (invoke "test" (i32.const 121)) "uninitialized element")
  1844. (assert_trap (invoke "test" (i32.const 122)) "uninitialized element")
  1845. (assert_trap (invoke "test" (i32.const 123)) "uninitialized element")
  1846. (assert_trap (invoke "test" (i32.const 124)) "uninitialized element")
  1847. (assert_trap (invoke "test" (i32.const 125)) "uninitialized element")
  1848. (assert_trap (invoke "test" (i32.const 126)) "uninitialized element")
  1849. (assert_trap (invoke "test" (i32.const 127)) "uninitialized element")
  1850. (assert_trap (invoke "test" (i32.const 128)) "uninitialized element")
  1851. (assert_trap (invoke "test" (i32.const 129)) "uninitialized element")
  1852. (assert_trap (invoke "test" (i32.const 130)) "uninitialized element")
  1853. (assert_trap (invoke "test" (i32.const 131)) "uninitialized element")
  1854. (assert_trap (invoke "test" (i32.const 132)) "uninitialized element")
  1855. (assert_trap (invoke "test" (i32.const 133)) "uninitialized element")
  1856. (assert_trap (invoke "test" (i32.const 134)) "uninitialized element")
  1857. (assert_trap (invoke "test" (i32.const 135)) "uninitialized element")
  1858. (assert_trap (invoke "test" (i32.const 136)) "uninitialized element")
  1859. (assert_trap (invoke "test" (i32.const 137)) "uninitialized element")
  1860. (assert_trap (invoke "test" (i32.const 138)) "uninitialized element")
  1861. (assert_trap (invoke "test" (i32.const 139)) "uninitialized element")
  1862. (assert_trap (invoke "test" (i32.const 140)) "uninitialized element")
  1863. (assert_trap (invoke "test" (i32.const 141)) "uninitialized element")
  1864. (assert_trap (invoke "test" (i32.const 142)) "uninitialized element")
  1865. (assert_trap (invoke "test" (i32.const 143)) "uninitialized element")
  1866. (assert_trap (invoke "test" (i32.const 144)) "uninitialized element")
  1867. (assert_trap (invoke "test" (i32.const 145)) "uninitialized element")
  1868. (assert_trap (invoke "test" (i32.const 146)) "uninitialized element")
  1869. (assert_trap (invoke "test" (i32.const 147)) "uninitialized element")
  1870. (assert_trap (invoke "test" (i32.const 148)) "uninitialized element")
  1871. (assert_trap (invoke "test" (i32.const 149)) "uninitialized element")
  1872. (assert_trap (invoke "test" (i32.const 150)) "uninitialized element")
  1873. (assert_trap (invoke "test" (i32.const 151)) "uninitialized element")
  1874. (assert_trap (invoke "test" (i32.const 152)) "uninitialized element")
  1875. (assert_trap (invoke "test" (i32.const 153)) "uninitialized element")
  1876. (assert_trap (invoke "test" (i32.const 154)) "uninitialized element")
  1877. (assert_trap (invoke "test" (i32.const 155)) "uninitialized element")
  1878. (assert_trap (invoke "test" (i32.const 156)) "uninitialized element")
  1879. (assert_trap (invoke "test" (i32.const 157)) "uninitialized element")
  1880. (assert_trap (invoke "test" (i32.const 158)) "uninitialized element")
  1881. (assert_trap (invoke "test" (i32.const 159)) "uninitialized element")
  1882. (module
  1883. (type (func (result i32)))
  1884. (table 64 64 funcref)
  1885. (elem funcref
  1886. (ref.func $f0) (ref.func $f1) (ref.func $f2) (ref.func $f3)
  1887. (ref.func $f4) (ref.func $f5) (ref.func $f6) (ref.func $f7)
  1888. (ref.func $f8) (ref.func $f9) (ref.func $f10) (ref.func $f11)
  1889. (ref.func $f12) (ref.func $f13) (ref.func $f14) (ref.func $f15))
  1890. (func $f0 (export "f0") (result i32) (i32.const 0))
  1891. (func $f1 (export "f1") (result i32) (i32.const 1))
  1892. (func $f2 (export "f2") (result i32) (i32.const 2))
  1893. (func $f3 (export "f3") (result i32) (i32.const 3))
  1894. (func $f4 (export "f4") (result i32) (i32.const 4))
  1895. (func $f5 (export "f5") (result i32) (i32.const 5))
  1896. (func $f6 (export "f6") (result i32) (i32.const 6))
  1897. (func $f7 (export "f7") (result i32) (i32.const 7))
  1898. (func $f8 (export "f8") (result i32) (i32.const 8))
  1899. (func $f9 (export "f9") (result i32) (i32.const 9))
  1900. (func $f10 (export "f10") (result i32) (i32.const 10))
  1901. (func $f11 (export "f11") (result i32) (i32.const 11))
  1902. (func $f12 (export "f12") (result i32) (i32.const 12))
  1903. (func $f13 (export "f13") (result i32) (i32.const 13))
  1904. (func $f14 (export "f14") (result i32) (i32.const 14))
  1905. (func $f15 (export "f15") (result i32) (i32.const 15))
  1906. (func (export "test") (param $n i32) (result i32)
  1907. (call_indirect (type 0) (local.get $n)))
  1908. (func (export "run") (param $offs i32) (param $len i32)
  1909. (table.init 0 (local.get $offs) (i32.const 0) (local.get $len))))
  1910. (assert_trap (invoke "run" (i32.const 48) (i32.const 4294967280)) "out of bounds table access")
  1911. (assert_trap (invoke "test" (i32.const 0)) "uninitialized element")
  1912. (assert_trap (invoke "test" (i32.const 1)) "uninitialized element")
  1913. (assert_trap (invoke "test" (i32.const 2)) "uninitialized element")
  1914. (assert_trap (invoke "test" (i32.const 3)) "uninitialized element")
  1915. (assert_trap (invoke "test" (i32.const 4)) "uninitialized element")
  1916. (assert_trap (invoke "test" (i32.const 5)) "uninitialized element")
  1917. (assert_trap (invoke "test" (i32.const 6)) "uninitialized element")
  1918. (assert_trap (invoke "test" (i32.const 7)) "uninitialized element")
  1919. (assert_trap (invoke "test" (i32.const 8)) "uninitialized element")
  1920. (assert_trap (invoke "test" (i32.const 9)) "uninitialized element")
  1921. (assert_trap (invoke "test" (i32.const 10)) "uninitialized element")
  1922. (assert_trap (invoke "test" (i32.const 11)) "uninitialized element")
  1923. (assert_trap (invoke "test" (i32.const 12)) "uninitialized element")
  1924. (assert_trap (invoke "test" (i32.const 13)) "uninitialized element")
  1925. (assert_trap (invoke "test" (i32.const 14)) "uninitialized element")
  1926. (assert_trap (invoke "test" (i32.const 15)) "uninitialized element")
  1927. (assert_trap (invoke "test" (i32.const 16)) "uninitialized element")
  1928. (assert_trap (invoke "test" (i32.const 17)) "uninitialized element")
  1929. (assert_trap (invoke "test" (i32.const 18)) "uninitialized element")
  1930. (assert_trap (invoke "test" (i32.const 19)) "uninitialized element")
  1931. (assert_trap (invoke "test" (i32.const 20)) "uninitialized element")
  1932. (assert_trap (invoke "test" (i32.const 21)) "uninitialized element")
  1933. (assert_trap (invoke "test" (i32.const 22)) "uninitialized element")
  1934. (assert_trap (invoke "test" (i32.const 23)) "uninitialized element")
  1935. (assert_trap (invoke "test" (i32.const 24)) "uninitialized element")
  1936. (assert_trap (invoke "test" (i32.const 25)) "uninitialized element")
  1937. (assert_trap (invoke "test" (i32.const 26)) "uninitialized element")
  1938. (assert_trap (invoke "test" (i32.const 27)) "uninitialized element")
  1939. (assert_trap (invoke "test" (i32.const 28)) "uninitialized element")
  1940. (assert_trap (invoke "test" (i32.const 29)) "uninitialized element")
  1941. (assert_trap (invoke "test" (i32.const 30)) "uninitialized element")
  1942. (assert_trap (invoke "test" (i32.const 31)) "uninitialized element")
  1943. (assert_trap (invoke "test" (i32.const 32)) "uninitialized element")
  1944. (assert_trap (invoke "test" (i32.const 33)) "uninitialized element")
  1945. (assert_trap (invoke "test" (i32.const 34)) "uninitialized element")
  1946. (assert_trap (invoke "test" (i32.const 35)) "uninitialized element")
  1947. (assert_trap (invoke "test" (i32.const 36)) "uninitialized element")
  1948. (assert_trap (invoke "test" (i32.const 37)) "uninitialized element")
  1949. (assert_trap (invoke "test" (i32.const 38)) "uninitialized element")
  1950. (assert_trap (invoke "test" (i32.const 39)) "uninitialized element")
  1951. (assert_trap (invoke "test" (i32.const 40)) "uninitialized element")
  1952. (assert_trap (invoke "test" (i32.const 41)) "uninitialized element")
  1953. (assert_trap (invoke "test" (i32.const 42)) "uninitialized element")
  1954. (assert_trap (invoke "test" (i32.const 43)) "uninitialized element")
  1955. (assert_trap (invoke "test" (i32.const 44)) "uninitialized element")
  1956. (assert_trap (invoke "test" (i32.const 45)) "uninitialized element")
  1957. (assert_trap (invoke "test" (i32.const 46)) "uninitialized element")
  1958. (assert_trap (invoke "test" (i32.const 47)) "uninitialized element")
  1959. (assert_trap (invoke "test" (i32.const 48)) "uninitialized element")
  1960. (assert_trap (invoke "test" (i32.const 49)) "uninitialized element")
  1961. (assert_trap (invoke "test" (i32.const 50)) "uninitialized element")
  1962. (assert_trap (invoke "test" (i32.const 51)) "uninitialized element")
  1963. (assert_trap (invoke "test" (i32.const 52)) "uninitialized element")
  1964. (assert_trap (invoke "test" (i32.const 53)) "uninitialized element")
  1965. (assert_trap (invoke "test" (i32.const 54)) "uninitialized element")
  1966. (assert_trap (invoke "test" (i32.const 55)) "uninitialized element")
  1967. (assert_trap (invoke "test" (i32.const 56)) "uninitialized element")
  1968. (assert_trap (invoke "test" (i32.const 57)) "uninitialized element")
  1969. (assert_trap (invoke "test" (i32.const 58)) "uninitialized element")
  1970. (assert_trap (invoke "test" (i32.const 59)) "uninitialized element")
  1971. (assert_trap (invoke "test" (i32.const 60)) "uninitialized element")
  1972. (assert_trap (invoke "test" (i32.const 61)) "uninitialized element")
  1973. (assert_trap (invoke "test" (i32.const 62)) "uninitialized element")
  1974. (assert_trap (invoke "test" (i32.const 63)) "uninitialized element")
  1975. (module
  1976. (type (func (result i32)))
  1977. (table 16 16 funcref)
  1978. (elem funcref
  1979. (ref.func $f0) (ref.func $f1) (ref.func $f2) (ref.func $f3)
  1980. (ref.func $f4) (ref.func $f5) (ref.func $f6) (ref.func $f7)
  1981. (ref.func $f8) (ref.func $f9) (ref.func $f10) (ref.func $f11)
  1982. (ref.func $f12) (ref.func $f13) (ref.func $f14) (ref.func $f15))
  1983. (func $f0 (export "f0") (result i32) (i32.const 0))
  1984. (func $f1 (export "f1") (result i32) (i32.const 1))
  1985. (func $f2 (export "f2") (result i32) (i32.const 2))
  1986. (func $f3 (export "f3") (result i32) (i32.const 3))
  1987. (func $f4 (export "f4") (result i32) (i32.const 4))
  1988. (func $f5 (export "f5") (result i32) (i32.const 5))
  1989. (func $f6 (export "f6") (result i32) (i32.const 6))
  1990. (func $f7 (export "f7") (result i32) (i32.const 7))
  1991. (func $f8 (export "f8") (result i32) (i32.const 8))
  1992. (func $f9 (export "f9") (result i32) (i32.const 9))
  1993. (func $f10 (export "f10") (result i32) (i32.const 10))
  1994. (func $f11 (export "f11") (result i32) (i32.const 11))
  1995. (func $f12 (export "f12") (result i32) (i32.const 12))
  1996. (func $f13 (export "f13") (result i32) (i32.const 13))
  1997. (func $f14 (export "f14") (result i32) (i32.const 14))
  1998. (func $f15 (export "f15") (result i32) (i32.const 15))
  1999. (func (export "test") (param $n i32) (result i32)
  2000. (call_indirect (type 0) (local.get $n)))
  2001. (func (export "run") (param $offs i32) (param $len i32)
  2002. (table.init 0 (local.get $offs) (i32.const 8) (local.get $len))))
  2003. (assert_trap (invoke "run" (i32.const 0) (i32.const 4294967292)) "out of bounds table access")
  2004. (assert_trap (invoke "test" (i32.const 0)) "uninitialized element")
  2005. (assert_trap (invoke "test" (i32.const 1)) "uninitialized element")
  2006. (assert_trap (invoke "test" (i32.const 2)) "uninitialized element")
  2007. (assert_trap (invoke "test" (i32.const 3)) "uninitialized element")
  2008. (assert_trap (invoke "test" (i32.const 4)) "uninitialized element")
  2009. (assert_trap (invoke "test" (i32.const 5)) "uninitialized element")
  2010. (assert_trap (invoke "test" (i32.const 6)) "uninitialized element")
  2011. (assert_trap (invoke "test" (i32.const 7)) "uninitialized element")
  2012. (assert_trap (invoke "test" (i32.const 8)) "uninitialized element")
  2013. (assert_trap (invoke "test" (i32.const 9)) "uninitialized element")
  2014. (assert_trap (invoke "test" (i32.const 10)) "uninitialized element")
  2015. (assert_trap (invoke "test" (i32.const 11)) "uninitialized element")
  2016. (assert_trap (invoke "test" (i32.const 12)) "uninitialized element")
  2017. (assert_trap (invoke "test" (i32.const 13)) "uninitialized element")
  2018. (assert_trap (invoke "test" (i32.const 14)) "uninitialized element")
  2019. (assert_trap (invoke "test" (i32.const 15)) "uninitialized element")
  2020. (module
  2021. (table 1 funcref)
  2022. ;; 65 elem segments. 64 is the smallest positive number that is encoded
  2023. ;; differently as a signed LEB.
  2024. (elem funcref) (elem funcref) (elem funcref) (elem funcref)
  2025. (elem funcref) (elem funcref) (elem funcref) (elem funcref)
  2026. (elem funcref) (elem funcref) (elem funcref) (elem funcref)
  2027. (elem funcref) (elem funcref) (elem funcref) (elem funcref)
  2028. (elem funcref) (elem funcref) (elem funcref) (elem funcref)
  2029. (elem funcref) (elem funcref) (elem funcref) (elem funcref)
  2030. (elem funcref) (elem funcref) (elem funcref) (elem funcref)
  2031. (elem funcref) (elem funcref) (elem funcref) (elem funcref)
  2032. (elem funcref) (elem funcref) (elem funcref) (elem funcref)
  2033. (elem funcref) (elem funcref) (elem funcref) (elem funcref)
  2034. (elem funcref) (elem funcref) (elem funcref) (elem funcref)
  2035. (elem funcref) (elem funcref) (elem funcref) (elem funcref)
  2036. (elem funcref) (elem funcref) (elem funcref) (elem funcref)
  2037. (elem funcref) (elem funcref) (elem funcref) (elem funcref)
  2038. (elem funcref) (elem funcref) (elem funcref) (elem funcref)
  2039. (elem funcref) (elem funcref) (elem funcref) (elem funcref)
  2040. (elem funcref)
  2041. (func (table.init 64 (i32.const 0) (i32.const 0) (i32.const 0))))