From 67ce410bd60f823ee19d240660fe9a97ede67635 Mon Sep 17 00:00:00 2001 From: Jackson Gardner Date: Thu, 14 Sep 2023 11:50:48 -0700 Subject: [PATCH] Declare the js context as nullable in skwasm surface callback (flutter/engine#45810) Declaring this as non-nullable causes breakage with an incoming JS interop change from the SDK. Marking this as nullable fixes the issue. This doesn't actually change any behavior. The breakages were in `test/ui/image_golden_test.dart`. No changes to the test are required (they did catch the issue when the dart roll happened). --- .../lib/web_ui/lib/src/engine/skwasm/skwasm_impl/surface.dart | 2 +- engine/src/flutter/lib/web_ui/skwasm/library_skwasm_support.js | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/engine/src/flutter/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/surface.dart b/engine/src/flutter/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/surface.dart index bce7a8a62ed..4827c78b00f 100644 --- a/engine/src/flutter/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/surface.dart +++ b/engine/src/flutter/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/surface.dart @@ -78,7 +78,7 @@ class SkwasmSurface { return completer.future; } - void _callbackHandler(JSNumber callbackId, JSNumber context, JSAny jsContext) { + void _callbackHandler(JSNumber callbackId, JSNumber context, JSAny? jsContext) { final Completer completer = _pendingCallbacks.remove(callbackId.toDartInt)!; if (jsContext.isUndefinedOrNull) { completer.complete(context); diff --git a/engine/src/flutter/lib/web_ui/skwasm/library_skwasm_support.js b/engine/src/flutter/lib/web_ui/skwasm/library_skwasm_support.js index d1c3459d108..c9c1aba46db 100644 --- a/engine/src/flutter/lib/web_ui/skwasm/library_skwasm_support.js +++ b/engine/src/flutter/lib/web_ui/skwasm/library_skwasm_support.js @@ -39,8 +39,9 @@ mergeInto(LibraryManager.library, { object.close(); } associatedObjectsMap.delete(data.pointer); + return; default: - console.warn('unrecognized skwasm message'); + console.warn(`unrecognized skwasm message: ${skwasmMessage}`); } }; if (!threadId) {