| 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 23a53e4c67cd924530d25d0e864746bf28f24674..c4662bd7ebee6019703f98ef9febbb660c74da4e 100644 | 
| --- a/pkg/front_end/lib/src/fasta/fasta.dart | 
| +++ b/pkg/front_end/lib/src/fasta/fasta.dart | 
| @@ -186,7 +186,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_fasta"; | 
| +  backendTarget ??= "vm"; | 
| try { | 
| if (!await fileSystem.entityForUri(fileName).exists()) { | 
| return new CompilationResult.error( | 
| @@ -204,9 +204,8 @@ Future<CompilationResult> parseScriptInFileSystem( | 
| TranslateUri uriTranslator = | 
| await TranslateUri.parse(fileSystem, patchedSdk, packages: packages); | 
| final Ticker ticker = new Ticker(isVerbose: verbose); | 
| -      final DillTarget dillTarget = new DillTarget( | 
| -          ticker, uriTranslator, backendTarget, | 
| -          flags: new TargetFlags(strongMode: strongMode)); | 
| +      final DillTarget dillTarget = | 
| +          new DillTarget(ticker, uriTranslator, backendTarget); | 
| _appendDillForUri(dillTarget, patchedSdk.resolve('platform.dill')); | 
| final KernelTarget kernelTarget = | 
| new KernelTarget(fileSystem, dillTarget, uriTranslator, strongMode); | 
| @@ -227,6 +226,11 @@ 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. | 
| // | 
| @@ -245,14 +249,9 @@ Future<CompilationResult> parseScriptInFileSystem( | 
| } | 
|  | 
| Future compilePlatform(Uri patchedSdk, Uri fullOutput, | 
| -    {Uri outlineOutput, | 
| -    Uri packages, | 
| -    bool verbose: false, | 
| -    String backendTarget}) async { | 
| -  backendTarget ??= "vm_fasta"; | 
| +    {Uri outlineOutput, Uri packages, bool verbose: false}) async { | 
| 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; | 
| @@ -269,7 +268,7 @@ Future writeDepsFile(Uri script, Uri depsFile, Uri output, | 
| Iterable<Uri> extraDependencies, | 
| bool verbose: false, | 
| String backendTarget}) async { | 
| -  backendTarget ??= "vm_fasta"; | 
| +  backendTarget ??= "vm"; | 
| Ticker ticker = new Ticker(isVerbose: verbose); | 
| await CompilerCommandLine.withGlobalOptions("", [""], | 
| (CompilerContext c) async { | 
| @@ -282,8 +281,8 @@ 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, | 
| -        flags: new TargetFlags(strongMode: false)); | 
| +    DillTarget dillTarget = | 
| +        new DillTarget(ticker, uriTranslator, backendTarget); | 
| _appendDillForUri(dillTarget, platform); | 
| KernelTarget kernelTarget = new KernelTarget(PhysicalFileSystem.instance, | 
| dillTarget, uriTranslator, false, c.uriToSource); | 
|  |