Commit f4b4e5e
[dart2wasm] Fix incorrect setup of checked entrypoints
A method may be overriden multiple times, the overriden methods may add
optional parameters. Dart2wasm generates a signature for such selectors
that includes all optional parameters from all overriden methods.
That means
* callers may pass more arguments than the signature of the target
=> it passes dummy values
* implementations get more parameters passed than their Dart function
=> it ignores them
The checked/unchecked entry functions need to also support this
mechanism.
Issue #60148
Change-Id: Ifb60c44d3c5e5b6e374a15731723e16d22bfc094
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/414720
Reviewed-by: Ömer Ağacan <[email protected]>
Commit-Queue: Martin Kustermann <[email protected]>1 parent 8d46b7c commit f4b4e5e
File tree
2 files changed
+37
-2
lines changed- pkg/dart2wasm/lib
- tests/language/regress
2 files changed
+37
-2
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
379 | 379 | | |
380 | 380 | | |
381 | 381 | | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
382 | 389 | | |
383 | 390 | | |
384 | 391 | | |
385 | | - | |
| 392 | + | |
| 393 | + | |
386 | 394 | | |
387 | 395 | | |
388 | 396 | | |
| |||
3299 | 3307 | | |
3300 | 3308 | | |
3301 | 3309 | | |
3302 | | - | |
| 3310 | + | |
3303 | 3311 | | |
3304 | 3312 | | |
3305 | 3313 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
0 commit comments