| Index: pkg/front_end/lib/src/fasta/fasta.dart
|
| diff --git a/pkg/front_end/lib/src/fasta/fasta.dart b/pkg/front_end/lib/src/fasta/fasta.dart
|
| index c4662bd7ebee6019703f98ef9febbb660c74da4e..c0ec047be289e11c6bcd003874dbf0d93a1a50fc 100644
|
| --- a/pkg/front_end/lib/src/fasta/fasta.dart
|
| +++ b/pkg/front_end/lib/src/fasta/fasta.dart
|
| @@ -16,13 +16,9 @@ import 'package:front_end/src/fasta/kernel/utils.dart';
|
| import 'package:kernel/binary/ast_to_binary.dart'
|
| show LibraryFilteringBinaryPrinter;
|
|
|
| -import 'package:kernel/class_hierarchy.dart' show ClassHierarchy;
|
| -
|
| -import 'package:kernel/core_types.dart' show CoreTypes;
|
| -
|
| import 'package:kernel/kernel.dart' show Library, Program, loadProgramFromBytes;
|
|
|
| -import 'package:kernel/target/targets.dart' show Target, TargetFlags, getTarget;
|
| +import 'package:kernel/target/targets.dart' show TargetFlags;
|
|
|
| import 'compiler_command_line.dart' show CompilerCommandLine;
|
|
|
| @@ -118,13 +114,14 @@ class CompileTask {
|
| CompileTask(this.c, this.ticker);
|
|
|
| DillTarget createDillTarget(TranslateUri uriTranslator) {
|
| - return new DillTarget(ticker, uriTranslator, c.options.target);
|
| + return new DillTarget(ticker, uriTranslator, c.options.target,
|
| + flags: new TargetFlags(strongMode: c.options.strongMode));
|
| }
|
|
|
| KernelTarget createKernelTarget(
|
| DillTarget dillTarget, TranslateUri uriTranslator, bool strongMode) {
|
| return new KernelTarget(
|
| - c.fileSystem, dillTarget, uriTranslator, strongMode, c.uriToSource);
|
| + c.fileSystem, dillTarget, uriTranslator, c.uriToSource);
|
| }
|
|
|
| Future<KernelTarget> buildOutline([Uri output]) async {
|
| @@ -186,7 +183,7 @@ Future<CompilationResult> parseScript(
|
| Future<CompilationResult> parseScriptInFileSystem(
|
| Uri fileName, FileSystem fileSystem, Uri packages, Uri patchedSdk,
|
| {bool verbose: false, bool strongMode: false, String backendTarget}) async {
|
| - backendTarget ??= "vm";
|
| + backendTarget ??= "vm_fasta";
|
| try {
|
| if (!await fileSystem.entityForUri(fileName).exists()) {
|
| return new CompilationResult.error(
|
| @@ -197,23 +194,20 @@ Future<CompilationResult> parseScriptInFileSystem(
|
| formatUnexpected(patchedSdk, -1, "Patched sdk directory not found."));
|
| }
|
|
|
| - CoreTypes coreTypes;
|
| - ClassHierarchy hierarchy;
|
| Program program;
|
| try {
|
| TranslateUri uriTranslator =
|
| await TranslateUri.parse(fileSystem, patchedSdk, packages: packages);
|
| final Ticker ticker = new Ticker(isVerbose: verbose);
|
| - final DillTarget dillTarget =
|
| - new DillTarget(ticker, uriTranslator, backendTarget);
|
| + final DillTarget dillTarget = new DillTarget(
|
| + ticker, uriTranslator, backendTarget,
|
| + flags: new TargetFlags(strongMode: strongMode));
|
| _appendDillForUri(dillTarget, patchedSdk.resolve('platform.dill'));
|
| final KernelTarget kernelTarget =
|
| - new KernelTarget(fileSystem, dillTarget, uriTranslator, strongMode);
|
| + new KernelTarget(fileSystem, dillTarget, uriTranslator);
|
| kernelTarget.read(fileName);
|
| await dillTarget.buildOutlines();
|
| await kernelTarget.buildOutlines();
|
| - coreTypes = kernelTarget.loader.coreTypes;
|
| - hierarchy = kernelTarget.loader.hierarchy;
|
| program = await kernelTarget.buildProgram();
|
| if (kernelTarget.errors.isNotEmpty) {
|
| return new CompilationResult.errors(kernelTarget.errors);
|
| @@ -226,11 +220,6 @@ Future<CompilationResult> parseScriptInFileSystem(
|
| return new CompilationResult.error("No 'main' method found.");
|
| }
|
|
|
| - // Perform target-specific transformations.
|
| - Target target = getTarget("vm", new TargetFlags(strongMode: false));
|
| - target.performModularTransformations(coreTypes, hierarchy, program);
|
| - target.performGlobalTransformations(coreTypes, program);
|
| -
|
| // Write the program to a list of bytes and return it. Do not include
|
| // libraries that have a dart: import URI.
|
| //
|
| @@ -249,9 +238,14 @@ Future<CompilationResult> parseScriptInFileSystem(
|
| }
|
|
|
| Future compilePlatform(Uri patchedSdk, Uri fullOutput,
|
| - {Uri outlineOutput, Uri packages, bool verbose: false}) async {
|
| + {Uri outlineOutput,
|
| + Uri packages,
|
| + bool verbose: false,
|
| + String backendTarget}) async {
|
| + backendTarget ??= "vm_fasta";
|
| Ticker ticker = new Ticker(isVerbose: verbose);
|
| await CompilerCommandLine.withGlobalOptions("", [""], (CompilerContext c) {
|
| + c.options.options["--target"] = backendTarget;
|
| c.options.options["--packages"] = packages;
|
| if (verbose) {
|
| c.options.options["--verbose"] = true;
|
| @@ -268,7 +262,7 @@ Future writeDepsFile(Uri script, Uri depsFile, Uri output,
|
| Iterable<Uri> extraDependencies,
|
| bool verbose: false,
|
| String backendTarget}) async {
|
| - backendTarget ??= "vm";
|
| + backendTarget ??= "vm_fasta";
|
| Ticker ticker = new Ticker(isVerbose: verbose);
|
| await CompilerCommandLine.withGlobalOptions("", [""],
|
| (CompilerContext c) async {
|
| @@ -281,11 +275,11 @@ Future writeDepsFile(Uri script, Uri depsFile, Uri output,
|
| TranslateUri uriTranslator = await TranslateUri.parse(c.fileSystem, sdk,
|
| packages: c.options.packages);
|
| ticker.logMs("Read packages file");
|
| - DillTarget dillTarget =
|
| - new DillTarget(ticker, uriTranslator, backendTarget);
|
| + DillTarget dillTarget = new DillTarget(ticker, uriTranslator, backendTarget,
|
| + flags: new TargetFlags(strongMode: false));
|
| _appendDillForUri(dillTarget, platform);
|
| - KernelTarget kernelTarget = new KernelTarget(PhysicalFileSystem.instance,
|
| - dillTarget, uriTranslator, false, c.uriToSource);
|
| + KernelTarget kernelTarget = new KernelTarget(
|
| + PhysicalFileSystem.instance, dillTarget, uriTranslator, c.uriToSource);
|
|
|
| kernelTarget.read(script);
|
| await dillTarget.buildOutlines();
|
|
|