|
9 | 9 | ;; CHECK: (type $1 (func (param externref externref) (result i32))) |
10 | 10 |
|
11 | 11 | ;; CHECK: (rec |
12 | | - ;; CHECK-NEXT: (type $2 (func (param externref) (result externref))) |
| 12 | + ;; CHECK-NEXT: (type $2 (func (param externref i32 externref))) |
13 | 13 |
|
14 | | - ;; CHECK: (type $3 (func (param externref) (result i32))) |
| 14 | + ;; CHECK: (type $3 (func (result externref))) |
15 | 15 |
|
16 | | - ;; CHECK: (type $4 (func (param externref externref) (result i32))) |
| 16 | + ;; CHECK: (type $4 (func (param externref) (result externref))) |
17 | 17 |
|
18 | | - ;; CHECK: (type $5 (func (param externref (ref $array16)) (result i32))) |
| 18 | + ;; CHECK: (type $5 (func (param externref) (result i32))) |
19 | 19 |
|
20 | | - ;; CHECK: (type $6 (func (result externref))) |
| 20 | + ;; CHECK: (type $6 (func (param externref externref) (result i32))) |
21 | 21 |
|
22 | | - ;; CHECK: (type $7 (func (param (ref $array16)))) |
| 22 | + ;; CHECK: (type $7 (func (param externref (ref $array16)) (result i32))) |
23 | 23 |
|
24 | | - ;; CHECK: (type $8 (func (param externref externref externref externref))) |
| 24 | + ;; CHECK: (type $8 (func (param (ref $array16)))) |
25 | 25 |
|
26 | | - ;; CHECK: (type $9 (func)) |
| 26 | + ;; CHECK: (type $9 (func (param externref externref externref externref))) |
27 | 27 |
|
28 | | - ;; CHECK: (type $10 (func (param (ref null $array16) i32 i32) (result (ref extern)))) |
| 28 | + ;; CHECK: (type $10 (func)) |
29 | 29 |
|
30 | | - ;; CHECK: (type $11 (func (param i32) (result (ref extern)))) |
| 30 | + ;; CHECK: (type $11 (func (param (ref null $array16) i32 i32) (result (ref extern)))) |
31 | 31 |
|
32 | | - ;; CHECK: (type $12 (func (param externref (ref null $array16) i32) (result i32))) |
| 32 | + ;; CHECK: (type $12 (func (param i32) (result (ref extern)))) |
33 | 33 |
|
34 | | - ;; CHECK: (type $13 (func (param externref) (result i32))) |
| 34 | + ;; CHECK: (type $13 (func (param externref (ref null $array16) i32) (result i32))) |
35 | 35 |
|
36 | | - ;; CHECK: (type $14 (func (param externref i32) (result i32))) |
| 36 | + ;; CHECK: (type $14 (func (param externref) (result i32))) |
37 | 37 |
|
38 | | - ;; CHECK: (type $15 (func (param externref i32 i32) (result (ref extern)))) |
| 38 | + ;; CHECK: (type $15 (func (param externref i32) (result i32))) |
39 | 39 |
|
40 | | - ;; CHECK: (import "colliding" "name" (func $fromCodePoint (type $9))) |
| 40 | + ;; CHECK: (type $16 (func (param externref i32 i32) (result (ref extern)))) |
| 41 | + |
| 42 | + ;; CHECK: (import "string.const" "0" (global $string.const_exported (ref extern))) |
| 43 | + |
| 44 | + ;; CHECK: (import "colliding" "name" (func $fromCodePoint (type $10))) |
41 | 45 | (import "colliding" "name" (func $fromCodePoint)) |
42 | 46 |
|
43 | | - ;; CHECK: (import "wasm:js-string" "fromCharCodeArray" (func $fromCharCodeArray (type $10) (param (ref null $array16) i32 i32) (result (ref extern)))) |
| 47 | + ;; CHECK: (import "wasm:js-string" "fromCharCodeArray" (func $fromCharCodeArray (type $11) (param (ref null $array16) i32 i32) (result (ref extern)))) |
44 | 48 |
|
45 | | - ;; CHECK: (import "wasm:js-string" "fromCodePoint" (func $fromCodePoint_11 (type $11) (param i32) (result (ref extern)))) |
| 49 | + ;; CHECK: (import "wasm:js-string" "fromCodePoint" (func $fromCodePoint_13 (type $12) (param i32) (result (ref extern)))) |
46 | 50 |
|
47 | | - ;; CHECK: (import "wasm:js-string" "intoCharCodeArray" (func $intoCharCodeArray (type $12) (param externref (ref null $array16) i32) (result i32))) |
| 51 | + ;; CHECK: (import "wasm:js-string" "intoCharCodeArray" (func $intoCharCodeArray (type $13) (param externref (ref null $array16) i32) (result i32))) |
48 | 52 |
|
49 | 53 | ;; CHECK: (import "wasm:js-string" "equals" (func $equals (type $1) (param externref externref) (result i32))) |
50 | 54 |
|
51 | 55 | ;; CHECK: (import "wasm:js-string" "compare" (func $compare (type $1) (param externref externref) (result i32))) |
52 | 56 |
|
53 | | - ;; CHECK: (import "wasm:js-string" "length" (func $length (type $13) (param externref) (result i32))) |
| 57 | + ;; CHECK: (import "wasm:js-string" "length" (func $length (type $14) (param externref) (result i32))) |
| 58 | + |
| 59 | + ;; CHECK: (import "wasm:js-string" "codePointAt" (func $codePointAt (type $15) (param externref i32) (result i32))) |
54 | 60 |
|
55 | | - ;; CHECK: (import "wasm:js-string" "codePointAt" (func $codePointAt (type $14) (param externref i32) (result i32))) |
| 61 | + ;; CHECK: (import "wasm:js-string" "substring" (func $substring (type $16) (param externref i32 i32) (result (ref extern)))) |
56 | 62 |
|
57 | | - ;; CHECK: (import "wasm:js-string" "substring" (func $substring (type $15) (param externref i32 i32) (result (ref extern)))) |
| 63 | + ;; CHECK: (export "export.1" (func $exported-string-returner)) |
58 | 64 |
|
59 | | - ;; CHECK: (func $string.as (type $8) (param $a externref) (param $b externref) (param $c externref) (param $d externref) |
| 65 | + ;; CHECK: (export "export.2" (func $exported-string-receiver)) |
| 66 | + |
| 67 | + ;; CHECK: (func $string.as (type $9) (param $a externref) (param $b externref) (param $c externref) (param $d externref) |
60 | 68 | ;; CHECK-NEXT: (local.set $b |
61 | 69 | ;; CHECK-NEXT: (local.get $a) |
62 | 70 | ;; CHECK-NEXT: ) |
|
91 | 99 | ) |
92 | 100 | ) |
93 | 101 |
|
94 | | - ;; CHECK: (func $string.new.gc (type $7) (param $array16 (ref $array16)) |
| 102 | + ;; CHECK: (func $string.new.gc (type $8) (param $array16 (ref $array16)) |
95 | 103 | ;; CHECK-NEXT: (drop |
96 | 104 | ;; CHECK-NEXT: (call $fromCharCodeArray |
97 | 105 | ;; CHECK-NEXT: (local.get $array16) |
|
110 | 118 | ) |
111 | 119 | ) |
112 | 120 |
|
113 | | - ;; CHECK: (func $string.from_code_point (type $6) (result externref) |
114 | | - ;; CHECK-NEXT: (call $fromCodePoint_11 |
| 121 | + ;; CHECK: (func $string.from_code_point (type $3) (result externref) |
| 122 | + ;; CHECK-NEXT: (call $fromCodePoint_13 |
115 | 123 | ;; CHECK-NEXT: (i32.const 1) |
116 | 124 | ;; CHECK-NEXT: ) |
117 | 125 | ;; CHECK-NEXT: ) |
|
121 | 129 | ) |
122 | 130 | ) |
123 | 131 |
|
124 | | - ;; CHECK: (func $string.encode (type $5) (param $ref externref) (param $array16 (ref $array16)) (result i32) |
| 132 | + ;; CHECK: (func $string.encode (type $7) (param $ref externref) (param $array16 (ref $array16)) (result i32) |
125 | 133 | ;; CHECK-NEXT: (call $intoCharCodeArray |
126 | 134 | ;; CHECK-NEXT: (local.get $ref) |
127 | 135 | ;; CHECK-NEXT: (local.get $array16) |
|
136 | 144 | ) |
137 | 145 | ) |
138 | 146 |
|
139 | | - ;; CHECK: (func $string.eq (type $4) (param $a externref) (param $b externref) (result i32) |
| 147 | + ;; CHECK: (func $string.eq (type $6) (param $a externref) (param $b externref) (result i32) |
140 | 148 | ;; CHECK-NEXT: (call $equals |
141 | 149 | ;; CHECK-NEXT: (local.get $a) |
142 | 150 | ;; CHECK-NEXT: (local.get $b) |
|
149 | 157 | ) |
150 | 158 | ) |
151 | 159 |
|
152 | | - ;; CHECK: (func $string.compare (type $4) (param $a externref) (param $b externref) (result i32) |
| 160 | + ;; CHECK: (func $string.compare (type $6) (param $a externref) (param $b externref) (result i32) |
153 | 161 | ;; CHECK-NEXT: (call $compare |
154 | 162 | ;; CHECK-NEXT: (local.get $a) |
155 | 163 | ;; CHECK-NEXT: (local.get $b) |
|
162 | 170 | ) |
163 | 171 | ) |
164 | 172 |
|
165 | | - ;; CHECK: (func $string.length (type $3) (param $ref externref) (result i32) |
| 173 | + ;; CHECK: (func $string.length (type $5) (param $ref externref) (result i32) |
166 | 174 | ;; CHECK-NEXT: (call $length |
167 | 175 | ;; CHECK-NEXT: (local.get $ref) |
168 | 176 | ;; CHECK-NEXT: ) |
|
173 | 181 | ) |
174 | 182 | ) |
175 | 183 |
|
176 | | - ;; CHECK: (func $string.get_codeunit (type $3) (param $ref externref) (result i32) |
| 184 | + ;; CHECK: (func $string.get_codeunit (type $5) (param $ref externref) (result i32) |
177 | 185 | ;; CHECK-NEXT: (call $codePointAt |
178 | 186 | ;; CHECK-NEXT: (local.get $ref) |
179 | 187 | ;; CHECK-NEXT: (i32.const 2) |
|
186 | 194 | ) |
187 | 195 | ) |
188 | 196 |
|
189 | | - ;; CHECK: (func $string.slice (type $2) (param $ref externref) (result externref) |
| 197 | + ;; CHECK: (func $string.slice (type $4) (param $ref externref) (result externref) |
190 | 198 | ;; CHECK-NEXT: (call $substring |
191 | 199 | ;; CHECK-NEXT: (local.get $ref) |
192 | 200 | ;; CHECK-NEXT: (i32.const 2) |
|
200 | 208 | (i32.const 3) |
201 | 209 | ) |
202 | 210 | ) |
| 211 | + |
| 212 | + ;; CHECK: (func $exported-string-returner (type $3) (result externref) |
| 213 | + ;; CHECK-NEXT: (global.get $string.const_exported) |
| 214 | + ;; CHECK-NEXT: ) |
| 215 | + (func $exported-string-returner (export "export.1") (result stringref) |
| 216 | + ;; We should update the signature of this function even though it is public |
| 217 | + ;; (exported). |
| 218 | + (string.const "exported") |
| 219 | + ) |
| 220 | + |
| 221 | + ;; CHECK: (func $exported-string-receiver (type $2) (param $x externref) (param $y i32) (param $z externref) |
| 222 | + ;; CHECK-NEXT: (drop |
| 223 | + ;; CHECK-NEXT: (local.get $x) |
| 224 | + ;; CHECK-NEXT: ) |
| 225 | + ;; CHECK-NEXT: (drop |
| 226 | + ;; CHECK-NEXT: (local.get $y) |
| 227 | + ;; CHECK-NEXT: ) |
| 228 | + ;; CHECK-NEXT: (drop |
| 229 | + ;; CHECK-NEXT: (local.get $z) |
| 230 | + ;; CHECK-NEXT: ) |
| 231 | + ;; CHECK-NEXT: ) |
| 232 | + (func $exported-string-receiver (export "export.2") (param $x stringref) (param $y i32) (param $z stringref) |
| 233 | + ;; We should update the signature of this function even though it is public |
| 234 | + ;; (exported). |
| 235 | + (drop |
| 236 | + (local.get $x) |
| 237 | + ) |
| 238 | + (drop |
| 239 | + (local.get $y) |
| 240 | + ) |
| 241 | + (drop |
| 242 | + (local.get $z) |
| 243 | + ) |
| 244 | + ) |
203 | 245 | ) |
0 commit comments