Make toJS'd function use JS types (#44469)
JSFunction's should only accept and return JS types.
Allows landing of external restrictions here:
https://dart-review.googlesource.com/c/sdk/+/316867/9
diff --git a/lib/web_ui/lib/src/engine/canvaskit/native_memory.dart b/lib/web_ui/lib/src/engine/canvaskit/native_memory.dart
index 73a5946..4b5c85d 100644
--- a/lib/web_ui/lib/src/engine/canvaskit/native_memory.dart
+++ b/lib/web_ui/lib/src/engine/canvaskit/native_memory.dart
@@ -21,7 +21,8 @@
/// 5. The finalizer function is called with the SkPaint as the sole argument.
/// 6. We call `delete` on SkPaint.
DomFinalizationRegistry _finalizationRegistry = createDomFinalizationRegistry(
- (UniqueRef<Object> uniq) {
+ (JSBoxedDartObject boxedUniq) {
+ final UniqueRef<Object> uniq = boxedUniq.toDart as UniqueRef<Object>;
uniq.collect();
}.toJS
);
@@ -33,7 +34,7 @@
class NativeMemoryFinalizationRegistry {
void register(Object owner, UniqueRef<Object> ref) {
if (browserSupportsFinalizationRegistry) {
- _finalizationRegistry.register(owner, ref);
+ _finalizationRegistry.register(owner, ref.toJSBox);
}
}
}