|
15 | 15 |
|
16 | 16 | ;; CHECK: (type $4 (func (result externref))) |
17 | 17 |
|
| 18 | + ;; CHECK: (type $5 (func (param externref))) |
| 19 | + |
18 | 20 | ;; CHECK: (type $struct-of-string (struct (field externref) (field i32) (field anyref))) |
19 | 21 | (type $struct-of-string (struct (field stringref) (field i32) (field anyref))) |
20 | 22 |
|
|
37 | 39 | (type $array16 (array (mut i16))) |
38 | 40 | ) |
39 | 41 |
|
40 | | - ;; CHECK: (type $12 (func (param externref) (result externref))) |
41 | | - |
42 | 42 | ;; CHECK: (type $13 (func (param externref) (result externref))) |
43 | 43 |
|
44 | | - ;; CHECK: (type $14 (func (param externref) (result i32))) |
| 44 | + ;; CHECK: (type $14 (func (param externref) (result externref))) |
45 | 45 |
|
46 | | - ;; CHECK: (type $15 (func (param externref externref) (result i32))) |
| 46 | + ;; CHECK: (type $15 (func (param externref) (result i32))) |
47 | 47 |
|
48 | | - ;; CHECK: (type $16 (func (param externref (ref $0)) (result i32))) |
| 48 | + ;; CHECK: (type $16 (func (param externref externref) (result i32))) |
49 | 49 |
|
50 | | - ;; CHECK: (type $17 (func (param (ref $0)))) |
| 50 | + ;; CHECK: (type $17 (func (param externref (ref $0)) (result i32))) |
51 | 51 |
|
52 | | - ;; CHECK: (type $18 (func (param externref (ref extern) externref externref externref (ref extern)))) |
| 52 | + ;; CHECK: (type $18 (func (param (ref $0)))) |
53 | 53 |
|
54 | | - ;; CHECK: (type $19 (func (param (ref null $0) i32 i32) (result (ref extern)))) |
| 54 | + ;; CHECK: (type $19 (func (param externref (ref extern) externref externref externref (ref extern)))) |
55 | 55 |
|
56 | | - ;; CHECK: (type $20 (func (param i32) (result (ref extern)))) |
| 56 | + ;; CHECK: (type $20 (func (param (ref null $0) i32 i32) (result (ref extern)))) |
57 | 57 |
|
58 | | - ;; CHECK: (type $21 (func (param externref (ref null $0) i32) (result i32))) |
| 58 | + ;; CHECK: (type $21 (func (param i32) (result (ref extern)))) |
59 | 59 |
|
60 | | - ;; CHECK: (type $22 (func (param externref) (result i32))) |
| 60 | + ;; CHECK: (type $22 (func (param externref (ref null $0) i32) (result i32))) |
61 | 61 |
|
62 | | - ;; CHECK: (type $23 (func (param externref i32) (result i32))) |
| 62 | + ;; CHECK: (type $23 (func (param externref) (result i32))) |
63 | 63 |
|
64 | | - ;; CHECK: (type $24 (func (param externref i32 i32) (result (ref extern)))) |
| 64 | + ;; CHECK: (type $24 (func (param externref i32) (result i32))) |
| 65 | + |
| 66 | + ;; CHECK: (type $25 (func (param externref i32 i32) (result (ref extern)))) |
65 | 67 |
|
66 | 68 | ;; CHECK: (import "string.const" "0" (global $string.const_exported (ref extern))) |
67 | 69 |
|
|
70 | 72 | ;; CHECK: (import "colliding" "name" (func $fromCodePoint (type $1))) |
71 | 73 | (import "colliding" "name" (func $fromCodePoint)) |
72 | 74 |
|
73 | | - ;; CHECK: (import "wasm:js-string" "fromCharCodeArray" (func $fromCharCodeArray (type $19) (param (ref null $0) i32 i32) (result (ref extern)))) |
| 75 | + ;; CHECK: (import "wasm:js-string" "fromCharCodeArray" (func $fromCharCodeArray (type $20) (param (ref null $0) i32 i32) (result (ref extern)))) |
74 | 76 |
|
75 | | - ;; CHECK: (import "wasm:js-string" "fromCodePoint" (func $fromCodePoint_17 (type $20) (param i32) (result (ref extern)))) |
| 77 | + ;; CHECK: (import "wasm:js-string" "fromCodePoint" (func $fromCodePoint_18 (type $21) (param i32) (result (ref extern)))) |
76 | 78 |
|
77 | | - ;; CHECK: (import "wasm:js-string" "intoCharCodeArray" (func $intoCharCodeArray (type $21) (param externref (ref null $0) i32) (result i32))) |
| 79 | + ;; CHECK: (import "wasm:js-string" "intoCharCodeArray" (func $intoCharCodeArray (type $22) (param externref (ref null $0) i32) (result i32))) |
78 | 80 |
|
79 | 81 | ;; CHECK: (import "wasm:js-string" "equals" (func $equals (type $2) (param externref externref) (result i32))) |
80 | 82 |
|
81 | 83 | ;; CHECK: (import "wasm:js-string" "compare" (func $compare (type $2) (param externref externref) (result i32))) |
82 | 84 |
|
83 | | - ;; CHECK: (import "wasm:js-string" "length" (func $length (type $22) (param externref) (result i32))) |
| 85 | + ;; CHECK: (import "wasm:js-string" "length" (func $length (type $23) (param externref) (result i32))) |
84 | 86 |
|
85 | | - ;; CHECK: (import "wasm:js-string" "codePointAt" (func $codePointAt (type $23) (param externref i32) (result i32))) |
| 87 | + ;; CHECK: (import "wasm:js-string" "codePointAt" (func $codePointAt (type $24) (param externref i32) (result i32))) |
86 | 88 |
|
87 | | - ;; CHECK: (import "wasm:js-string" "substring" (func $substring (type $24) (param externref i32 i32) (result (ref extern)))) |
| 89 | + ;; CHECK: (import "wasm:js-string" "substring" (func $substring (type $25) (param externref i32 i32) (result (ref extern)))) |
88 | 90 |
|
89 | 91 | ;; CHECK: (export "export.1" (func $exported-string-returner)) |
90 | 92 |
|
91 | 93 | ;; CHECK: (export "export.2" (func $exported-string-receiver)) |
92 | 94 |
|
93 | | - ;; CHECK: (func $string.as (type $18) (param $a externref) (param $a_nn (ref extern)) (param $b externref) (param $c externref) (param $d externref) (param $nn_view (ref extern)) |
| 95 | + ;; CHECK: (func $string.as (type $19) (param $a externref) (param $a_nn (ref extern)) (param $b externref) (param $c externref) (param $d externref) (param $nn_view (ref extern)) |
94 | 96 | ;; CHECK-NEXT: (local.set $b |
95 | 97 | ;; CHECK-NEXT: (ref.as_non_null |
96 | 98 | ;; CHECK-NEXT: (local.get $a) |
|
156 | 158 | ) |
157 | 159 | ) |
158 | 160 |
|
159 | | - ;; CHECK: (func $string.new.gc (type $17) (param $array16 (ref $0)) |
| 161 | + ;; CHECK: (func $string.new.gc (type $18) (param $array16 (ref $0)) |
160 | 162 | ;; CHECK-NEXT: (drop |
161 | 163 | ;; CHECK-NEXT: (call $fromCharCodeArray |
162 | 164 | ;; CHECK-NEXT: (local.get $array16) |
|
176 | 178 | ) |
177 | 179 |
|
178 | 180 | ;; CHECK: (func $string.from_code_point (type $4) (result externref) |
179 | | - ;; CHECK-NEXT: (call $fromCodePoint_17 |
| 181 | + ;; CHECK-NEXT: (call $fromCodePoint_18 |
180 | 182 | ;; CHECK-NEXT: (i32.const 1) |
181 | 183 | ;; CHECK-NEXT: ) |
182 | 184 | ;; CHECK-NEXT: ) |
|
186 | 188 | ) |
187 | 189 | ) |
188 | 190 |
|
189 | | - ;; CHECK: (func $string.encode (type $16) (param $ref externref) (param $array16 (ref $0)) (result i32) |
| 191 | + ;; CHECK: (func $string.encode (type $17) (param $ref externref) (param $array16 (ref $0)) (result i32) |
190 | 192 | ;; CHECK-NEXT: (call $intoCharCodeArray |
191 | 193 | ;; CHECK-NEXT: (local.get $ref) |
192 | 194 | ;; CHECK-NEXT: (local.get $array16) |
|
201 | 203 | ) |
202 | 204 | ) |
203 | 205 |
|
204 | | - ;; CHECK: (func $string.eq (type $15) (param $a externref) (param $b externref) (result i32) |
| 206 | + ;; CHECK: (func $string.eq (type $16) (param $a externref) (param $b externref) (result i32) |
205 | 207 | ;; CHECK-NEXT: (call $equals |
206 | 208 | ;; CHECK-NEXT: (local.get $a) |
207 | 209 | ;; CHECK-NEXT: (local.get $b) |
|
214 | 216 | ) |
215 | 217 | ) |
216 | 218 |
|
217 | | - ;; CHECK: (func $string.compare (type $15) (param $a externref) (param $b externref) (result i32) |
| 219 | + ;; CHECK: (func $string.compare (type $16) (param $a externref) (param $b externref) (result i32) |
218 | 220 | ;; CHECK-NEXT: (call $compare |
219 | 221 | ;; CHECK-NEXT: (local.get $a) |
220 | 222 | ;; CHECK-NEXT: (local.get $b) |
|
227 | 229 | ) |
228 | 230 | ) |
229 | 231 |
|
230 | | - ;; CHECK: (func $string.length (type $14) (param $ref externref) (result i32) |
| 232 | + ;; CHECK: (func $string.length (type $15) (param $ref externref) (result i32) |
231 | 233 | ;; CHECK-NEXT: (call $length |
232 | 234 | ;; CHECK-NEXT: (local.get $ref) |
233 | 235 | ;; CHECK-NEXT: ) |
|
238 | 240 | ) |
239 | 241 | ) |
240 | 242 |
|
241 | | - ;; CHECK: (func $string.get_codeunit (type $14) (param $ref externref) (result i32) |
| 243 | + ;; CHECK: (func $string.get_codeunit (type $15) (param $ref externref) (result i32) |
242 | 244 | ;; CHECK-NEXT: (call $codePointAt |
243 | 245 | ;; CHECK-NEXT: (local.get $ref) |
244 | 246 | ;; CHECK-NEXT: (i32.const 2) |
|
251 | 253 | ) |
252 | 254 | ) |
253 | 255 |
|
254 | | - ;; CHECK: (func $string.slice (type $13) (param $ref externref) (result externref) |
| 256 | + ;; CHECK: (func $string.slice (type $14) (param $ref externref) (result externref) |
255 | 257 | ;; CHECK-NEXT: (call $substring |
256 | 258 | ;; CHECK-NEXT: (local.get $ref) |
257 | 259 | ;; CHECK-NEXT: (i32.const 2) |
|
266 | 268 | ) |
267 | 269 | ) |
268 | 270 |
|
269 | | - ;; CHECK: (func $if.string (type $12) (param $ref externref) (result externref) |
| 271 | + ;; CHECK: (func $if.string (type $13) (param $ref externref) (result externref) |
270 | 272 | ;; CHECK-NEXT: (if (result externref) |
271 | 273 | ;; CHECK-NEXT: (i32.const 0) |
272 | 274 | ;; CHECK-NEXT: (then |
|
289 | 291 | ) |
290 | 292 | ) |
291 | 293 |
|
292 | | - ;; CHECK: (func $if.string.flip (type $12) (param $ref externref) (result externref) |
| 294 | + ;; CHECK: (func $if.string.flip (type $13) (param $ref externref) (result externref) |
293 | 295 | ;; CHECK-NEXT: (if (result externref) |
294 | 296 | ;; CHECK-NEXT: (i32.const 0) |
295 | 297 | ;; CHECK-NEXT: (then |
|
442 | 444 | (struct.new_default $struct-of-string) ;; Nothing to do here. |
443 | 445 | ) |
444 | 446 | ) |
| 447 | + |
| 448 | + ;; CHECK: (func $call-param-null (type $5) (param $str externref) |
| 449 | + ;; CHECK-NEXT: (call $call-param-null |
| 450 | + ;; CHECK-NEXT: (ref.null noextern) |
| 451 | + ;; CHECK-NEXT: ) |
| 452 | + ;; CHECK-NEXT: ) |
| 453 | + (func $call-param-null (param $str stringref) |
| 454 | + ;; After the lowering this null must be an ext. |
| 455 | + (call $call-param-null |
| 456 | + (ref.null string) |
| 457 | + ) |
| 458 | + ) |
445 | 459 | ) |
0 commit comments