From b76eb036002be2d991f59455a13b7330cebdda53 Mon Sep 17 00:00:00 2001 From: Srujan Gaddam <58529443+srujzs@users.noreply.github.com> Date: Wed, 9 Aug 2023 14:39:12 -0700 Subject: [PATCH] Make toJS'd function use JS types (flutter/engine#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 --- .../lib/web_ui/lib/src/engine/canvaskit/native_memory.dart | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/engine/src/flutter/lib/web_ui/lib/src/engine/canvaskit/native_memory.dart b/engine/src/flutter/lib/web_ui/lib/src/engine/canvaskit/native_memory.dart index 73a5946a965..4b5c85dff52 100644 --- a/engine/src/flutter/lib/web_ui/lib/src/engine/canvaskit/native_memory.dart +++ b/engine/src/flutter/lib/web_ui/lib/src/engine/canvaskit/native_memory.dart @@ -21,7 +21,8 @@ import 'package:ui/src/engine.dart'; /// 5. The finalizer function is called with the SkPaint as the sole argument. /// 6. We call `delete` on SkPaint. DomFinalizationRegistry _finalizationRegistry = createDomFinalizationRegistry( - (UniqueRef uniq) { + (JSBoxedDartObject boxedUniq) { + final UniqueRef uniq = boxedUniq.toDart as UniqueRef; uniq.collect(); }.toJS ); @@ -33,7 +34,7 @@ NativeMemoryFinalizationRegistry nativeMemoryFinalizationRegistry = NativeMemory class NativeMemoryFinalizationRegistry { void register(Object owner, UniqueRef ref) { if (browserSupportsFinalizationRegistry) { - _finalizationRegistry.register(owner, ref); + _finalizationRegistry.register(owner, ref.toJSBox); } } }