Chromium Code Reviews| Index: pkg/compiler/lib/src/kernel/kernel_strategy.dart |
| diff --git a/pkg/compiler/lib/src/kernel/kernel_strategy.dart b/pkg/compiler/lib/src/kernel/kernel_strategy.dart |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..f5573f74dc49c7dab6de2d8a177a39d205538703 |
| --- /dev/null |
| +++ b/pkg/compiler/lib/src/kernel/kernel_strategy.dart |
| @@ -0,0 +1,50 @@ |
| +// Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file |
| +// for details. All rights reserved. Use of this source code is governed by a |
| +// BSD-style license that can be found in the LICENSE file. |
| + |
| +library dart2js.kernel.frontend_strategy; |
| + |
| +import '../common.dart'; |
| +import '../common_elements.dart'; |
| +import '../common/tasks.dart'; |
| +import '../environment.dart' as env; |
| +import '../frontend_strategy.dart'; |
| +import '../library_loader.dart'; |
| +import '../native/resolver.dart'; |
| +import '../serialization/task.dart'; |
| +import '../patch_parser.dart'; |
| +import '../resolved_uri_translator.dart'; |
| +import 'world_builder.dart'; |
| + |
| +/// Frontend strategy that loads '.dill' files and builds a resolved element |
|
Siggi Cherem (dart-lang)
2017/04/24 19:36:47
nit: for consistency, maybe split "frontend" as "
Johnni Winther
2017/04/25 07:52:51
Done.
|
| +/// model from kernel IR nodes. |
| +class KernelFrontEndStrategy implements FrontEndStrategy { |
| + KernelWorldBuilder worldBuilder; |
| + |
| + KernelAnnotationProcessor _annotationProcesser; |
| + |
| + KernelFrontEndStrategy(DiagnosticReporter reporter) |
| + : worldBuilder = new KernelWorldBuilder(reporter); |
| + |
| + @override |
| + LibraryLoaderTask createLibraryLoader( |
| + ResolvedUriTranslator uriTranslator, |
| + ScriptLoader scriptLoader, |
| + ElementScanner scriptScanner, |
| + LibraryDeserializer deserializer, |
| + PatchResolverFunction patchResolverFunc, |
| + PatchParserTask patchParser, |
| + env.Environment environment, |
| + DiagnosticReporter reporter, |
| + Measurer measurer) { |
| + return new DillLibraryLoaderTask( |
| + worldBuilder, uriTranslator, scriptLoader, reporter, measurer); |
| + } |
| + |
| + @override |
| + ElementEnvironment get elementEnvironment => worldBuilder.elementEnvironment; |
| + |
| + @override |
| + AnnotationProcessor get annotationProcesser => |
| + _annotationProcesser ??= new KernelAnnotationProcessor(worldBuilder); |
| +} |