dart-sdk/pkg/_js_interop_checks
Srujan Gaddam 1c534e5fd5 [dart2wasm/ddc/dart2js] Lower Function.toJS and JSExportedDartFunction.toDart
Lowers these extension methods to some helper functions instead of
allowInterop to improve performance and get consistent semantics.

Specifically:
- Function.toJS no longer gives you the same JSFunction when calling
toJS on the same function multiple times in the JS compilers.
- Adds fast calling syntax for functions with 0-5 args in the JS
compilers.
- Allows additional args to be passed to converted functions that
are omitted in the JS compilers.
- The static type now determines the number of args that can be
passed to the JS function in the JS compilers.
- Fixes an issue in dart2wasm where if too few arguments are
passed, the call may succeed due to conversion of undefined to
null.
- Adds throws when a user tries to wrap a JS function that
returned from Function.toJS in the JS compilers.

Closes https://github.com/dart-lang/sdk/issues/55515
Addresses https://github.com/dart-lang/sdk/issues/48186

CoreLibraryReviewExempt: Changes to docs only in API surface.
Change-Id: I41d864dc5e02b597d9f1c16c88e3c04872f28225
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/368065
Reviewed-by: Nicholas Shahan <nshahan@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
Commit-Queue: Srujan Gaddam <srujzs@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
2024-06-26 23:06:36 +00:00
..
lib [dart2wasm/ddc/dart2js] Lower Function.toJS and JSExportedDartFunction.toDart 2024-06-26 23:06:36 +00:00
analysis_options.yaml [pkg] remove duplicate config from the analysis options files 2023-11-14 00:37:53 +00:00
LICENSE Update LICENSE 2021-04-07 10:28:38 +00:00
OWNERS Add OWNERS_WEB as owners of _js_interop_checks 2022-04-05 10:41:23 +00:00
pubspec.yaml [js_interop_checks] Update SDK constraint to support Dart 3 2024-01-31 01:54:18 +00:00
README.md

Shared kernel visitors checking for incorrect usage of @JS() style interop.