| Index: pkg/front_end/lib/src/fasta/testing/suite.dart
|
| diff --git a/pkg/front_end/lib/src/fasta/testing/suite.dart b/pkg/front_end/lib/src/fasta/testing/suite.dart
|
| index c651cb85577180b897cecb4fb2907dd6b401ea5f..a5e94376af3644b5ac6bb31b3b01266b4e892023 100644
|
| --- a/pkg/front_end/lib/src/fasta/testing/suite.dart
|
| +++ b/pkg/front_end/lib/src/fasta/testing/suite.dart
|
| @@ -10,6 +10,9 @@ import 'dart:async' show
|
| import 'dart:convert' show
|
| JSON;
|
|
|
| +import 'dart:typed_data' show
|
| + Uint8List;
|
| +
|
| import 'package:analyzer/src/generated/sdk.dart' show
|
| DartSdk;
|
|
|
| @@ -17,6 +20,18 @@ import 'package:kernel/ast.dart' show
|
| Library,
|
| Program;
|
|
|
| +import 'package:kernel/binary/ast_from_binary.dart' show
|
| + BinaryBuilder;
|
| +
|
| +import 'package:kernel/binary/ast_to_binary.dart' show
|
| + BinaryPrinter;
|
| +
|
| +import 'package:kernel/binary/loader.dart' show
|
| + BinaryLoader;
|
| +
|
| +import 'package:kernel/kernel.dart' show
|
| + Repository;
|
| +
|
| import 'package:kernel/analyzer/loader.dart' show
|
| DartLoader;
|
|
|
| @@ -36,11 +51,12 @@ import '../errors.dart' show
|
| InputError;
|
|
|
| import 'kernel_chain.dart' show
|
| + BytesCollector,
|
| MatchExpectation,
|
| Print,
|
| Run,
|
| - Verify,
|
| TestContext,
|
| + Verify,
|
| WriteDill;
|
|
|
| import '../ticker.dart' show
|
| @@ -97,7 +113,7 @@ class FeContext extends TestContext {
|
| final ExpectationSet expectationSet =
|
| new ExpectationSet.fromJsonList(JSON.decode(EXPECTATIONS));
|
|
|
| - Future<Program> platform;
|
| + Future<Uint8List> platform;
|
|
|
| FeContext(Uri sdk, Uri vm, Uri packages, bool strongMode,
|
| DartSdk dartSdk, bool updateExpectations, this.uriTranslator,
|
| @@ -119,24 +135,29 @@ class FeContext extends TestContext {
|
| }
|
| }
|
|
|
| - Future<Program> createPlatform() {
|
| - return platform ??= new Future<Program>(() async {
|
| + Future<Program> createPlatform() async {
|
| + platform ??= new Future<Uint8List>(() async {
|
| DartLoader loader = await createLoader();
|
| Target target = getTarget(
|
| "vm", new TargetFlags(strongMode: options.strongMode));
|
| Program program = loader.loadProgram(
|
| Uri.base.resolve("pkg/fasta/test/platform.dart"), target: target);
|
| - target.performModularTransformations(program);
|
| - target.performGlobalTransformations(program);
|
| if (loader.errors.isNotEmpty) {
|
| throw loader.errors.join("\n");
|
| }
|
| Library mainLibrary = program.mainMethod.enclosingLibrary;
|
| program.uriToSource.remove(mainLibrary.fileUri);
|
| - return new Program(
|
| + Program platform = new Program(
|
| program.libraries.where((Library l) => l != mainLibrary).toList(),
|
| program.uriToSource);
|
| + target.performModularTransformations(platform);
|
| + target.performGlobalTransformations(platform);
|
| + BytesCollector sink = new BytesCollector();
|
| + new BinaryPrinter(sink).writeProgramFile(platform);
|
| + return sink.collect();
|
| });
|
| + BinaryLoader loader = new BinaryLoader(new Repository());
|
| + return new BinaryBuilder(loader, await platform).readProgramFile();
|
| }
|
|
|
| static Future<FeContext> create(Chain suite, Map<String, String> environment,
|
|
|