| 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..db0b740b2d8b773c38b263ba1a378df3e61934ee 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);
|
| @@ -250,8 +250,8 @@ 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);
|
| + 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();
|
|
|