[dart2js] Fix bug in modular_test_suite.

Change-Id: I37954e14e8b53e70e0cfc4c3bcfb216e9f4d482f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/148000
Reviewed-by: Sigmund Cherem <sigmund@google.com>
This commit is contained in:
Joshua Litt 2020-05-28 21:30:36 +00:00
parent b7364da5fd
commit 107862e2bf
3 changed files with 17 additions and 8 deletions

View file

@ -13,6 +13,8 @@ import 'package:compiler/src/elements/entities.dart'
import 'package:compiler/src/kernel/dart2js_target.dart';
import 'package:compiler/src/kernel/loader.dart';
import 'package:expect/expect.dart';
import 'package:front_end/src/api_prototype/experimental_flags.dart'
show ExperimentalFlag;
import 'package:front_end/src/api_prototype/front_end.dart';
import 'package:front_end/src/api_prototype/memory_file_system.dart';
import 'package:front_end/src/api_prototype/standard_file_system.dart';
@ -80,7 +82,8 @@ Future<List<int>> compileUnit(List<String> inputs, Map<String, dynamic> sources,
..target = new Dart2jsTarget("dart2js", new TargetFlags())
..fileSystem = new TestFileSystem(fs)
..additionalDills = additionalDills
..packagesFileUri = toTestUri('.packages');
..packagesFileUri = toTestUri('.packages')
..experimentalFlags = {ExperimentalFlag.nonNullable: true};
var inputUris = inputs.map(toTestUri).toList();
var inputUriSet = inputUris.toSet();
var component = (await kernelForModule(inputUris, options)).component;
@ -112,12 +115,14 @@ class TestFileSystem implements FileSystem {
}
const sourceA = '''
// @dart=2.7
class A0 {
StringBuffer buffer = new StringBuffer();
}
''';
const sourceB = '''
// @dart=2.7
import 'a0.dart';
class B1 extends A0 {
@ -128,6 +133,7 @@ A0 createA0() => new A0();
''';
const sourceC = '''
// @dart=2.7
import 'b1.dart';
class C2 extends B1 {

View file

@ -132,13 +132,18 @@ class SourceToDillStep implements IOModularStep {
return;
}
sources = ['dart:core'];
extraArgs = ['--libraries-file', '$rootScheme:///sdk/lib/libraries.json'];
extraArgs = [
'--libraries-file',
'$rootScheme:///sdk_nnbd/lib/libraries.json'
];
assert(transitiveDependencies.isEmpty);
} else {
sources = module.sources.map(sourceToImportUri).toList();
extraArgs = ['--packages-file', '$rootScheme:/.packages'];
}
// TODO(joshualitt): Ensure the kernel worker has some way to specify
// --no-sound-null-safety
List<String> args = [
_kernelWorkerScript,
'--no-summary-only',
@ -155,6 +160,7 @@ class SourceToDillStep implements IOModularStep {
.expand((m) => ['--input-linked', '${toUri(m, dillId)}'])),
...(sources.expand((String uri) => ['--source', uri])),
...(flags.expand((String flag) => ['--enable-experiment', flag])),
'--enable-experiment=non-nullable',
];
var result =
@ -197,8 +203,7 @@ class GlobalAnalysisStep implements IOModularStep {
'--packages=${sdkRoot.toFilePath()}/.packages',
_dart2jsScript,
// TODO(sigmund): remove this dependency on libraries.json
if (_options.useSdk)
'--libraries-spec=$_librarySpecForSnapshot',
if (_options.useSdk) '--libraries-spec=$_librarySpecForSnapshot',
'${toUri(module, dillId)}',
for (String flag in flags) '--enable-experiment=$flag',
'${Flags.dillDependencies}=${dillDependencies.join(',')}',
@ -337,7 +342,7 @@ class RunD8 implements IOModularStep {
if (_options.verbose) print("\nstep: d8 on $module");
List<String> d8Args = [
sdkRoot
.resolve('sdk/lib/_internal/js_runtime/lib/preambles/d8.js')
.resolve('sdk_nnbd/lib/_internal/js_runtime/lib/preambles/d8.js')
.toFilePath(),
root.resolveUri(toUri(module, jsId)).toFilePath(),
];

View file

@ -4,6 +4,4 @@
#
dependencies:
def2: [def]
main: [def2, expect]
flags:
- extension-methods
main: [def2, expect]