[dart2wasm] Fix web/wasm/flute_stress_test in SDK mode

Currently `web/wasm/flute_stress_test` is failing on
`dart2wasm-linux-optimized-jsc` mode.

That mode runs with `--use-sdk` which makes it use `dart compile wasm`.

The reason the test is failing is because it passes both
`--enable-deferred-loading` and `--multi-module-stress-test` flags to
dart2wasm. This causes us to trigger the deferred module flow instead
of the specialized multi-module flow.

Those two flags should be independent.

Change-Id: I8cac976cd91d4e585f38632ada3062e41fce401f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/458800
Commit-Queue: Martin Kustermann <kustermann@google.com>
Reviewed-by: Nate Biggs <natebiggs@google.com>
This commit is contained in:
Martin Kustermann
2025-11-04 05:17:51 -08:00
committed by Commit Queue
parent 4fb4319980
commit 72e3f7a0d4
3 changed files with 11 additions and 9 deletions
+4 -1
View File
@@ -2812,7 +2812,10 @@ abstract class AstCodeGenerator
}
w.ModuleBuilder? _recognizeDeferredModuleGuard(Let let) {
if (!translator.options.enableDeferredLoading) return null;
if (!translator.options.enableDeferredLoading &&
!translator.options.enableMultiModuleStressTestMode) {
return null;
}
// TODO(http://dartbug.com/61764): Find better way to do this.
//
+1 -3
View File
@@ -437,9 +437,7 @@ mixin KernelNodes {
index.getTopLevelField('dart:_internal', 'boxedIntImmutableArray');
// Deferred loading.
late final Procedure? loadLibraryFromLoadId = index.tryGetProcedure(
'dart:_internal', LibraryIndex.topLevel, 'loadLibraryFromLoadId');
late final Procedure? checkLibraryIsLoadedFromLoadId = index
late final Procedure checkLibraryIsLoadedFromLoadId = index
.getTopLevelProcedure('dart:_internal', 'checkLibraryIsLoadedFromLoadId');
late final Procedure? dartInternalLoadingMapGetter = index.tryGetProcedure(
'dart:_internal', LibraryIndex.topLevel, 'get:_loadingMap');
+6 -5
View File
@@ -964,10 +964,11 @@ class CompileWasmCommand extends CompileSubcommandCommand {
}
}
final isMultiModule = args.flag('enable-deferred-loading') ||
// Used in testing to force multiple modules.
extraCompilerOptions
.any((e) => e.contains('enable-multi-module-stress-test'));
final isDeferredLoading = args.flag('enable-deferred-loading');
// Used in testing to force multiple modules.
final isMultiStressTestMode = extraCompilerOptions
.any((e) => e.contains('enable-multi-module-stress-test'));
final isMultiModule = isDeferredLoading || isMultiStressTestMode;
final optimizationLevel = int.parse(args.option('optimization-level')!);
final runWasmOpt =
@@ -1012,7 +1013,7 @@ class CompileWasmCommand extends CompileSubcommandCommand {
if (args.flag('print-kernel')) '--print-kernel',
if (args.flag(enableAssertsOption.flag)) '--${enableAssertsOption.flag}',
if (!generateSourceMap) '--no-source-maps',
if (isMultiModule) '--enable-deferred-loading',
if (isDeferredLoading) '--enable-deferred-loading',
for (final define in defines) '-D$define',
if (maxPages != null) ...[
'--import-shared-memory',