From d025c609b7e7c641604a721948c2e81986d1bf27 Mon Sep 17 00:00:00 2001 From: Martin Kustermann Date: Thu, 12 Sep 2024 11:18:46 +0200 Subject: [PATCH 1/3] [dart2wasm] Move web wasm embedder to new dart2wasm embedder API This removes usages of the deprecated top-level instantiate and invoke methods and replaces it by method calls to the embedder objects. See [0] for the change that introduce this embedder API. [0] https://dart-review.googlesource.com/c/sdk/+/383242/6 --- lib/web_ui/flutter_js/src/entrypoint_loader.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/web_ui/flutter_js/src/entrypoint_loader.js b/lib/web_ui/flutter_js/src/entrypoint_loader.js index 2c9fe15619879..e3dc4480ec193 100644 --- a/lib/web_ui/flutter_js/src/entrypoint_loader.js +++ b/lib/web_ui/flutter_js/src/entrypoint_loader.js @@ -155,7 +155,7 @@ export class FlutterEntrypointLoader { } const jsSupportRuntime = await import(jsSupportRuntimeUri); - const dartModulePromise = jsSupportRuntime.compileStreaming(fetch(moduleUri)); + const compiledDartApp = jsSupportRuntime.compileStreaming(fetch(moduleUri)); let imports; if (build.renderer === "skwasm") { @@ -173,8 +173,8 @@ export class FlutterEntrypointLoader { } else { imports = {}; } - const moduleInstance = await jsSupportRuntime.instantiate(dartModulePromise, imports); - await jsSupportRuntime.invoke(moduleInstance); + const dartApp = await compiledDartApp.instantiate(imports); + await dartApp.invokeMain(); } } From e831382867270727c616885fda860e984914a666 Mon Sep 17 00:00:00 2001 From: Martin Kustermann Date: Thu, 12 Sep 2024 12:44:59 +0200 Subject: [PATCH 2/3] add missing await --- lib/web_ui/flutter_js/src/entrypoint_loader.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/web_ui/flutter_js/src/entrypoint_loader.js b/lib/web_ui/flutter_js/src/entrypoint_loader.js index e3dc4480ec193..79b53cdc966ac 100644 --- a/lib/web_ui/flutter_js/src/entrypoint_loader.js +++ b/lib/web_ui/flutter_js/src/entrypoint_loader.js @@ -155,7 +155,7 @@ export class FlutterEntrypointLoader { } const jsSupportRuntime = await import(jsSupportRuntimeUri); - const compiledDartApp = jsSupportRuntime.compileStreaming(fetch(moduleUri)); + const compiledDartAppPromise = jsSupportRuntime.compileStreaming(fetch(moduleUri)); let imports; if (build.renderer === "skwasm") { @@ -173,6 +173,7 @@ export class FlutterEntrypointLoader { } else { imports = {}; } + const compiledDartApp = await compiledDartAppPromise; const dartApp = await compiledDartApp.instantiate(imports); await dartApp.invokeMain(); } From 5a619daa73bc4340d033c1cbd2474cafd0e8f1b0 Mon Sep 17 00:00:00 2001 From: Martin Kustermann Date: Thu, 12 Sep 2024 13:06:47 +0200 Subject: [PATCH 3/3] also await imports promise --- lib/web_ui/flutter_js/src/entrypoint_loader.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/web_ui/flutter_js/src/entrypoint_loader.js b/lib/web_ui/flutter_js/src/entrypoint_loader.js index 79b53cdc966ac..f34d14ed96b00 100644 --- a/lib/web_ui/flutter_js/src/entrypoint_loader.js +++ b/lib/web_ui/flutter_js/src/entrypoint_loader.js @@ -157,9 +157,9 @@ export class FlutterEntrypointLoader { const compiledDartAppPromise = jsSupportRuntime.compileStreaming(fetch(moduleUri)); - let imports; + let importsPromise; if (build.renderer === "skwasm") { - imports = (async () => { + importsPromise = (async () => { const skwasmInstance = await deps.skwasm; window._flutter_skwasmInstance = skwasmInstance; return { @@ -171,10 +171,10 @@ export class FlutterEntrypointLoader { }; })(); } else { - imports = {}; + importsPromise = Promise.resolve({}); } const compiledDartApp = await compiledDartAppPromise; - const dartApp = await compiledDartApp.instantiate(imports); + const dartApp = await compiledDartApp.instantiate(await importsPromise); await dartApp.invokeMain(); } }