Martin Kustermann
2e2f8ae7b3
[dart2wasm] Make normal dynamic calls avoid wasm array creations
...
Currently a dynamic call will call a helper which will create
3 array objects (for type, positional and named arguments).
It will then pass those wasm arrays to type checker methods.
Those will then get values out of the array, type check and call
the target.
We change this now such that in the normal case (**) we avoid
the array creations. Instead we make a dynamic forwarder function
per target and call shape.
We also outline the array creation when creating `Invocation`
objects. So for simple caller shapes - such as `clone()` the
creation of an `Invocation` object is a call without arguments
instead of various array creations.
Issue https://github.com/dart-lang/sdk/issues/62640
(**) If the dynamic call could be call-via-field we still create
those arrays, as we use them for closure type checking.
Change-Id: Ia8f3f3cd95f650bd8706a15ed68a43db4de80a6e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/487020
Reviewed-by: Srujan Gaddam <srujzs@google.com >
2026-03-12 02:17:07 -07:00
..
2025-06-24 12:06:22 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2026-02-17 08:28:57 -08:00
2026-01-28 15:33:35 -08:00
2025-05-02 20:17:11 -07:00
2026-03-12 02:17:07 -07:00
2025-05-02 20:17:11 -07:00
2023-02-14 20:13:57 +00:00
2023-02-14 01:35:05 +00:00
2024-07-30 03:13:58 +00:00
2024-12-13 11:10:26 -08:00
2024-12-13 14:09:46 -08:00
2024-10-11 16:53:52 +00:00
2024-07-30 03:13:58 +00:00
2023-08-09 23:17:18 +00:00
2025-05-02 20:17:11 -07:00
2025-05-02 20:17:11 -07:00
2023-01-30 15:58:38 +00:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2024-11-19 00:59:10 +00:00
2024-10-09 08:38:48 +00:00
2025-05-02 20:17:11 -07:00
2024-10-09 08:38:48 +00:00
2025-09-22 14:25:22 -07:00
2025-06-20 20:11:25 -07:00
2022-09-07 14:49:17 +00:00
2022-09-07 14:49:17 +00:00
2022-09-07 14:49:17 +00:00
2022-09-07 14:49:17 +00:00
2025-05-02 20:17:11 -07:00
2025-05-02 20:17:11 -07:00
2025-05-02 20:17:11 -07:00
2025-05-02 20:17:11 -07:00
2024-11-19 00:59:10 +00:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2024-09-10 15:29:28 +00:00
2025-06-20 20:11:25 -07:00
2024-07-10 01:39:58 +00:00
2024-07-10 01:39:58 +00:00
2025-05-02 20:17:11 -07:00
2025-05-02 20:17:11 -07:00
2024-11-19 00:59:10 +00:00
2025-06-24 12:06:22 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2023-10-25 15:37:50 +00:00
2023-10-25 15:37:50 +00:00
2024-10-11 16:53:52 +00:00
2025-06-20 20:11:25 -07:00
2023-06-07 17:57:26 +00:00
2024-11-19 00:59:10 +00:00
2025-06-20 20:11:25 -07:00
2024-11-19 00:59:10 +00:00
2025-05-02 20:17:11 -07:00
2025-05-02 20:17:11 -07:00
2024-11-19 00:59:10 +00:00
2025-05-02 20:17:11 -07:00
2025-06-20 20:11:25 -07:00
2026-02-17 08:28:57 -08:00
2024-01-23 01:26:09 +00:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-05-02 20:17:11 -07:00
2025-05-02 20:17:11 -07:00
2024-11-19 00:59:10 +00:00
2025-06-20 20:11:25 -07:00
2025-05-02 20:17:11 -07:00
2025-06-20 20:11:25 -07:00
2024-11-19 00:59:10 +00:00
2025-05-02 20:17:11 -07:00
2025-06-20 20:11:25 -07:00
2024-11-19 00:59:10 +00:00
2026-02-17 08:28:57 -08:00
2024-11-19 00:59:10 +00:00
2025-05-02 20:17:11 -07:00
2026-02-09 05:40:11 -08:00
2025-05-02 20:17:11 -07:00
2025-05-02 20:17:11 -07:00
2024-06-12 21:28:23 +00:00
2024-06-12 21:28:23 +00:00
2025-05-02 20:17:11 -07:00
2025-05-02 20:17:11 -07:00
2025-05-02 20:17:11 -07:00
2022-04-20 15:24:18 +00:00
2024-11-19 00:59:10 +00:00
2024-11-19 00:59:10 +00:00
2025-05-02 20:17:11 -07:00
2022-07-20 06:04:34 +00:00
2022-07-20 06:04:34 +00:00
2022-07-20 06:04:34 +00:00
2022-07-20 06:04:34 +00:00
2022-05-10 22:56:23 +00:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2024-11-19 00:59:10 +00:00
2025-05-02 20:17:11 -07:00
2025-06-13 16:16:13 -07:00
2025-05-02 20:17:11 -07:00
2025-06-20 20:11:25 -07:00
2024-11-19 00:59:10 +00:00
2025-05-02 20:17:11 -07:00
2025-05-02 20:17:11 -07:00
2025-05-02 20:17:11 -07:00
2024-11-19 00:59:10 +00:00
2024-01-23 01:26:09 +00:00
2024-01-23 01:26:09 +00:00
2024-01-23 01:26:09 +00:00
2025-08-22 20:48:35 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-05-02 20:17:11 -07:00
2024-11-19 00:59:10 +00:00
2023-05-25 23:45:25 +00:00
2025-05-02 20:17:11 -07:00
2025-05-02 20:17:11 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2022-03-09 22:18:27 +00:00
2026-02-17 08:28:57 -08:00
2026-02-17 08:28:57 -08:00
2026-02-17 08:28:57 -08:00
2026-02-17 08:28:57 -08:00
2025-05-02 20:17:11 -07:00
2025-06-13 16:16:13 -07:00
2025-06-13 16:16:13 -07:00
2025-05-02 20:17:11 -07:00
2024-01-23 01:26:09 +00:00
2024-11-19 00:59:10 +00:00
2024-12-16 10:01:23 -08:00
2025-06-20 20:11:25 -07:00
2024-11-19 00:59:10 +00:00
2024-11-19 00:59:10 +00:00
2025-05-02 20:17:11 -07:00
2025-05-02 20:17:11 -07:00
2025-05-02 20:17:11 -07:00
2025-06-20 20:11:25 -07:00
2022-03-09 22:18:27 +00:00
2024-11-19 00:59:10 +00:00
2026-02-06 11:00:10 -08:00