1;; Functions 2 3(module (func) (export "a" (func 0))) 4(module (func) (export "a" (func 0)) (export "b" (func 0))) 5(module (func) (func) (export "a" (func 0)) (export "b" (func 1))) 6 7(module (func (export "a"))) 8(module (func) (export "a" (func 0))) 9(module (func $a (export "a"))) 10(module (func $a) (export "a" (func $a))) 11(module (export "a" (func 0)) (func)) 12(module (export "a" (func $a)) (func $a)) 13 14(module $Func 15 (export "e" (func $f)) 16 (func $f (param $n i32) (result i32) 17 (return (i32.add (get_local $n) (i32.const 1))) 18 ) 19) 20(assert_return (invoke "e" (i32.const 42)) (i32.const 43)) 21(assert_return (invoke $Func "e" (i32.const 42)) (i32.const 43)) 22(module) 23(module $Other1) 24(assert_return (invoke $Func "e" (i32.const 42)) (i32.const 43)) 25 26(assert_invalid 27 (module (func) (export "a" (func 1))) 28 "unknown function" 29) 30(assert_invalid 31 (module (func) (export "a" (func 0)) (export "a" (func 0))) 32 "duplicate export name" 33) 34(assert_invalid 35 (module (func) (func) (export "a" (func 0)) (export "a" (func 1))) 36 "duplicate export name" 37) 38(assert_invalid 39 (module (func) (global i32 (i32.const 0)) (export "a" (func 0)) (export "a" (global 0))) 40 "duplicate export name" 41) 42(assert_invalid 43 (module (func) (table 0 anyfunc) (export "a" (func 0)) (export "a" (table 0))) 44 "duplicate export name" 45) 46(assert_invalid 47 (module (func) (memory 0) (export "a" (func 0)) (export "a" (memory 0))) 48 "duplicate export name" 49) 50 51 52;; Globals 53 54(module (global i32 (i32.const 0)) (export "a" (global 0))) 55(module (global i32 (i32.const 0)) (export "a" (global 0)) (export "b" (global 0))) 56(module (global i32 (i32.const 0)) (global i32 (i32.const 0)) (export "a" (global 0)) (export "b" (global 1))) 57 58(module (global (export "a") i32 (i32.const 0))) 59(module (global i32 (i32.const 0)) (export "a" (global 0))) 60(module (global $a (export "a") i32 (i32.const 0))) 61(module (global $a i32 (i32.const 0)) (export "a" (global $a))) 62(module (export "a" (global 0)) (global i32 (i32.const 0))) 63(module (export "a" (global $a)) (global $a i32 (i32.const 0))) 64 65(module $Global 66 (export "e" (global $g)) 67 (global $g i32 (i32.const 42)) 68) 69(assert_return (get "e") (i32.const 42)) 70(assert_return (get $Global "e") (i32.const 42)) 71(module) 72(module $Other2) 73(assert_return (get $Global "e") (i32.const 42)) 74 75(assert_invalid 76 (module (global i32 (i32.const 0)) (export "a" (global 1))) 77 "unknown global" 78) 79(assert_invalid 80 (module (global i32 (i32.const 0)) (export "a" (global 0)) (export "a" (global 0))) 81 "duplicate export name" 82) 83(assert_invalid 84 (module (global i32 (i32.const 0)) (global i32 (i32.const 0)) (export "a" (global 0)) (export "a" (global 1))) 85 "duplicate export name" 86) 87(assert_invalid 88 (module (global i32 (i32.const 0)) (func) (export "a" (global 0)) (export "a" (func 0))) 89 "duplicate export name" 90) 91(assert_invalid 92 (module (global i32 (i32.const 0)) (table 0 anyfunc) (export "a" (global 0)) (export "a" (table 0))) 93 "duplicate export name" 94) 95(assert_invalid 96 (module (global i32 (i32.const 0)) (memory 0) (export "a" (global 0)) (export "a" (memory 0))) 97 "duplicate export name" 98) 99 100 101;; Tables 102 103(module (table 0 anyfunc) (export "a" (table 0))) 104(module (table 0 anyfunc) (export "a" (table 0)) (export "b" (table 0))) 105;; No multiple tables yet. 106;; (module (table 0 anyfunc) (table 0 anyfunc) (export "a" (table 0)) (export "b" (table 1))) 107 108(module (table (export "a") 0 anyfunc)) 109(module (table (export "a") 0 1 anyfunc)) 110(module (table 0 anyfunc) (export "a" (table 0))) 111(module (table 0 1 anyfunc) (export "a" (table 0))) 112(module (table $a (export "a") 0 anyfunc)) 113(module (table $a (export "a") 0 1 anyfunc)) 114(module (table $a 0 anyfunc) (export "a" (table $a))) 115(module (table $a 0 1 anyfunc) (export "a" (table $a))) 116(module (export "a" (table 0)) (table 0 anyfunc)) 117(module (export "a" (table 0)) (table 0 1 anyfunc)) 118(module (export "a" (table $a)) (table $a 0 anyfunc)) 119(module (export "a" (table $a)) (table $a 0 1 anyfunc)) 120 121(; TODO: access table ;) 122 123(assert_invalid 124 (module (table 0 anyfunc) (export "a" (table 1))) 125 "unknown table" 126) 127(assert_invalid 128 (module (table 0 anyfunc) (export "a" (table 0)) (export "a" (table 0))) 129 "duplicate export name" 130) 131;; No multiple tables yet. 132;; (assert_invalid 133;; (module (table 0 anyfunc) (table 0 anyfunc) (export "a" (table 0)) (export "a" (table 1))) 134;; "duplicate export name" 135;; ) 136(assert_invalid 137 (module (table 0 anyfunc) (func) (export "a" (table 0)) (export "a" (func 0))) 138 "duplicate export name" 139) 140(assert_invalid 141 (module (table 0 anyfunc) (global i32 (i32.const 0)) (export "a" (table 0)) (export "a" (global 0))) 142 "duplicate export name" 143) 144(assert_invalid 145 (module (table 0 anyfunc) (memory 0) (export "a" (table 0)) (export "a" (memory 0))) 146 "duplicate export name" 147) 148 149 150;; Memories 151 152(module (memory 0) (export "a" (memory 0))) 153(module (memory 0) (export "a" (memory 0)) (export "b" (memory 0))) 154;; No multiple memories yet. 155;; (module (memory 0) (memory 0) (export "a" (memory 0)) (export "b" (memory 1))) 156 157(module (memory (export "a") 0)) 158(module (memory (export "a") 0 1)) 159(module (memory 0) (export "a" (memory 0))) 160(module (memory 0 1) (export "a" (memory 0))) 161(module (memory $a (export "a") 0)) 162(module (memory $a (export "a") 0 1)) 163(module (memory $a 0) (export "a" (memory $a))) 164(module (memory $a 0 1) (export "a" (memory $a))) 165(module (export "a" (memory 0)) (memory 0)) 166(module (export "a" (memory 0)) (memory 0 1)) 167(module (export "a" (memory $a)) (memory $a 0)) 168(module (export "a" (memory $a)) (memory $a 0 1)) 169 170(; TODO: access memory ;) 171 172(assert_invalid 173 (module (memory 0) (export "a" (memory 1))) 174 "unknown memory" 175) 176(assert_invalid 177 (module (memory 0) (export "a" (memory 0)) (export "a" (memory 0))) 178 "duplicate export name" 179) 180;; No multiple memories yet. 181;; (assert_invalid 182;; (module (memory 0) (memory 0) (export "a" (memory 0)) (export "a" (memory 1))) 183;; "duplicate export name" 184;; ) 185(assert_invalid 186 (module (memory 0) (func) (export "a" (memory 0)) (export "a" (func 0))) 187 "duplicate export name" 188) 189(assert_invalid 190 (module (memory 0) (global i32 (i32.const 0)) (export "a" (memory 0)) (export "a" (global 0))) 191 "duplicate export name" 192) 193(assert_invalid 194 (module (memory 0) (table 0 anyfunc) (export "a" (memory 0)) (export "a" (table 0))) 195 "duplicate export name" 196) 197