From 0a38d1702b88c7f6314321f8c4af09af6456e316 Mon Sep 17 00:00:00 2001 From: Kevin Moore Date: Thu, 23 Jul 2026 01:59:47 +0000 Subject: [PATCH 1/2] doc(web): update Wasm status page links and FAQ conditional imports - Reference the package:web migration guide on the Wasm status page. - Add warning notes pointing to Dart's Wasm JS-interop type cast and Zone documentation. - Update Web FAQ with Wasm-compatible conditional import sample (dart.library.js_interop) and update link. --- .../src/content/platform-integration/web/faq.md | 15 ++++++++++++--- .../src/content/platform-integration/web/wasm.md | 4 ++++ 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/sites/docs/src/content/platform-integration/web/faq.md b/sites/docs/src/content/platform-integration/web/faq.md index c911defd158..0d843f0213d 100644 --- a/sites/docs/src/content/platform-integration/web/faq.md +++ b/sites/docs/src/content/platform-integration/web/faq.md @@ -97,8 +97,17 @@ controls the headers on an HTTP request. Some plugins require platform-specific imports, particularly if they use the file system, which is not accessible from the browser. To use these plugins -in your app, see the [documentation for conditional imports][] -on [dart.dev]({{site.dart-site}}). +in your app, use conditional imports. + +When compiling for WebAssembly, check for `dart.library.js_interop` (rather than `dart.library.js` or `dart.library.html`, which are not supported on Wasm): + +```dart +import 'fallback.dart' + if (dart.library.js_interop) 'wasm_web_interop.dart' + if (dart.library.js) 'legacy_web_interop.dart'; +``` + +For more details, see the [documentation for conditional imports][] on [dart.dev]({{site.dart-site}}). ### Does Flutter web support concurrency? @@ -221,7 +230,7 @@ value such as 0 or 60 seconds. [building a web app with Flutter]: /platform-integration/web/building [Creating responsive apps]: /ui/adaptive-responsive -[documentation for conditional imports]: {{site.dart-site}}/guides/libraries/create-library-packages#conditionally-importing-and-exporting-library-files +[documentation for conditional imports]: {{site.dart-site}}/interop/js-interop/package-web#conditional-imports [Embedding Flutter web]: /platform-integration/web/embedding-flutter-web [file an issue]: {{site.repo.flutter}}/issues/new?title=[web]:+%3Cdescribe+issue+here%3E&labels=%E2%98%B8+platform-web&body=Describe+your+issue+and+include+the+command+you%27re+running,+flutter_web%20version,+browser+version [`http`]: {{site.pub}}/packages/http diff --git a/sites/docs/src/content/platform-integration/web/wasm.md b/sites/docs/src/content/platform-integration/web/wasm.md index 1058ae34913..c8e08d74607 100644 --- a/sites/docs/src/content/platform-integration/web/wasm.md +++ b/sites/docs/src/content/platform-integration/web/wasm.md @@ -157,6 +157,10 @@ static JS interop: - [`package:web`][], which replaces `dart:html` (and other web libraries) - [`dart:js_interop`][], which replaces `package:js` and `dart:js` +For a detailed guide on migrating existing code, see the [`package:web` migration guide][]. + +When compiling to Wasm, be aware of runtime differences in JS interop types (such as `is`/`as` type casts and Zone propagation in callbacks). For details, see Dart's [JS interop types documentation]({{site.dart-site}}/interop/js-interop/js-types#compatibility-type-checks-and-casts) and the [package:web Zones section]({{site.dart-site}}/interop/js-interop/package-web#zones). + To learn more about JS interop in Dart, see Dart's [JS interop][] documentation page. From 3d72e370c1f96cb6497ef757a3a1044a41a30da6 Mon Sep 17 00:00:00 2001 From: Kevin Moore Date: Thu, 23 Jul 2026 02:20:40 +0000 Subject: [PATCH 2/2] doc(web): fix conditional import order in FAQ --- sites/docs/src/content/platform-integration/web/faq.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sites/docs/src/content/platform-integration/web/faq.md b/sites/docs/src/content/platform-integration/web/faq.md index 0d843f0213d..40ab16c58ef 100644 --- a/sites/docs/src/content/platform-integration/web/faq.md +++ b/sites/docs/src/content/platform-integration/web/faq.md @@ -103,8 +103,8 @@ When compiling for WebAssembly, check for `dart.library.js_interop` (rather than ```dart import 'fallback.dart' - if (dart.library.js_interop) 'wasm_web_interop.dart' - if (dart.library.js) 'legacy_web_interop.dart'; + if (dart.library.js) 'legacy_web_interop.dart' + if (dart.library.js_interop) 'wasm_web_interop.dart'; ``` For more details, see the [documentation for conditional imports][] on [dart.dev]({{site.dart-site}}).