Skip to content

Commit

Permalink
Change JSBoxedDartObject to JSAny (#51634)
Browse files Browse the repository at this point in the history
Closes dart-lang/sdk#55256

fda5c69 added code to avoid the less performant boxing of JSBoxedDartObject and instead use backend-specific logic to externalize and internalize the UniqueRef until we get a better solution from dart:js_interop. On the JS backends, this relied on casting to and from JSAny, as its representation type is just Object. However, this callback that takes in the UniqueRef as an arg is still typed as accepting JSBoxedDartObject, leading to a cast failure on the JS backends, since the representation type is JSObject.

The fix is to use JSAny. On dart2wasm, this makes no difference, as the underlying representation type does not change.
  • Loading branch information
srujzs committed Mar 26, 2024
1 parent 3c881b7 commit b2d93a6
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion lib/web_ui/lib/src/engine/canvaskit/native_memory.dart
Expand Up @@ -21,7 +21,7 @@ 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 = DomFinalizationRegistry(
(JSBoxedDartObject boxedUniq) {
(JSAny boxedUniq) {
final UniqueRef<Object> uniq = boxedUniq.fromJSWrapper as UniqueRef<Object>;
uniq.collect();
}.toJS
Expand Down

0 comments on commit b2d93a6

Please sign in to comment.