| Index: pkg/front_end/lib/src/fasta/testing/kernel_chain.dart
|
| diff --git a/pkg/front_end/lib/src/fasta/testing/kernel_chain.dart b/pkg/front_end/lib/src/fasta/testing/kernel_chain.dart
|
| index bdb0ff71bacb40946129d9ee6bad1e44288a72db..3aae872d3e6b5bf6cce477a96a4d2796290c21dd 100644
|
| --- a/pkg/front_end/lib/src/fasta/testing/kernel_chain.dart
|
| +++ b/pkg/front_end/lib/src/fasta/testing/kernel_chain.dart
|
| @@ -15,6 +15,8 @@ import 'dart:typed_data' show Uint8List;
|
|
|
| import 'package:kernel/kernel.dart' show loadProgramFromBinary;
|
|
|
| +import 'package:kernel/target/targets.dart' show Target;
|
| +
|
| import 'package:kernel/text/ast_to_text.dart' show Printer;
|
|
|
| import 'package:testing/testing.dart' show Result, StdioProcess, Step;
|
| @@ -192,20 +194,28 @@ class Compile extends Step<TestDescription, Program, CompileContext> {
|
| }
|
|
|
| Uri sdk = await computePatchedSdk();
|
| - Program p = await kernelForProgram(
|
| - description.uri,
|
| - new CompilerOptions()
|
| - ..sdkRoot = sdk
|
| - ..packagesFileUri = Uri.base.resolve('.packages')
|
| - ..strongMode = context.strongMode
|
| - ..linkedDependencies = [sdk.resolve('platform.dill')]
|
| - ..onError = reportError);
|
| + var options = new CompilerOptions()
|
| + ..sdkRoot = sdk
|
| + ..compileSdk = true
|
| + ..packagesFileUri = Uri.base.resolve('.packages')
|
| + ..strongMode = context.strongMode
|
| + ..onError = reportError;
|
| + if (context.target != null) {
|
| + options.target = context.target;
|
| + // Do not link platform.dill, but recompile the platform libraries. This
|
| + // ensures that if target defines extra libraries that those get included
|
| + // too.
|
| + } else {
|
| + options.linkedDependencies = [sdk.resolve('platform.dill')];
|
| + }
|
| + Program p = await kernelForProgram(description.uri, options);
|
| return result ??= pass(p);
|
| }
|
| }
|
|
|
| abstract class CompileContext implements ChainContext {
|
| bool get strongMode;
|
| + Target get target;
|
| }
|
|
|
| class BytesCollector implements Sink<List<int>> {
|
|
|