Chromium Code Reviews| 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 eb4867d749ca587417494de17966fb440e0cc79a..deb488843a4ed9827ea019f7dc387889a050d8e1 100644 |
| --- a/pkg/front_end/lib/src/fasta/fasta.dart |
| +++ b/pkg/front_end/lib/src/fasta/fasta.dart |
| @@ -14,7 +14,7 @@ import 'package:front_end/physical_file_system.dart'; |
| import 'package:kernel/binary/ast_to_binary.dart' |
| show LibraryFilteringBinaryPrinter; |
| -import 'package:kernel/kernel.dart' show Program, Library; |
| +import 'package:kernel/kernel.dart' show Library, Program, loadProgramFromBytes; |
| import 'package:kernel/target/targets.dart' show Target, TargetFlags, getTarget; |
| @@ -180,7 +180,7 @@ Future<CompilationResult> parseScript( |
| await TranslateUri.parse(PhysicalFileSystem.instance, null, packages); |
| final Ticker ticker = new Ticker(isVerbose: verbose); |
| final DillTarget dillTarget = new DillTarget(ticker, uriTranslator); |
| - dillTarget.read(patchedSdk.resolve('platform.dill')); |
| + _appendDillForUri(dillTarget, patchedSdk.resolve('platform.dill')); |
| final KernelTarget kernelTarget = new KernelTarget( |
| PhysicalFileSystem.instance, dillTarget, uriTranslator, strongMode); |
| kernelTarget.read(fileName); |
| @@ -249,9 +249,9 @@ Future writeDepsFile(Uri script, Uri depsFile, Uri output, |
| TranslateUri uriTranslator = await TranslateUri.parse( |
| c.fileSystem, c.options.sdk, c.options.packages); |
| - ticker.logMs("Read packages file"); |
| - DillTarget dillTarget = new DillTarget(ticker, uriTranslator) |
| - ..read(platform); |
| + ticker.logMs("Read platform file"); |
|
ahe
2017/05/11 10:09:49
I don't think this is correct. We've used read the
scheglov
2017/05/11 15:53:11
I will roll this back.
I was confused.
|
| + DillTarget dillTarget = new DillTarget(ticker, uriTranslator); |
| + _appendDillForUri(dillTarget, platform); |
| KernelTarget kernelTarget = new KernelTarget(PhysicalFileSystem.instance, |
| dillTarget, uriTranslator, false, c.uriToSource); |
| @@ -263,6 +263,14 @@ Future writeDepsFile(Uri script, Uri depsFile, Uri output, |
| }); |
| } |
| +/// Load the [Program] from the given [uri] and append its libraries |
| +/// to the [dillTarget]. |
| +void _appendDillForUri(DillTarget dillTarget, Uri uri) { |
| + var bytes = new File.fromUri(uri).readAsBytesSync(); |
| + var platformProgram = loadProgramFromBytes(bytes); |
| + dillTarget.loader.appendLibraries(platformProgram); |
| +} |
| + |
| // TODO(ahe): https://github.com/dart-lang/sdk/issues/28316 |
| class ByteSink implements Sink<List<int>> { |
| final BytesBuilder builder = new BytesBuilder(); |