| Index: pkg/compiler/lib/src/kernel/kernel_backend_strategy.dart
|
| diff --git a/pkg/compiler/lib/src/kernel/kernel_backend_strategy.dart b/pkg/compiler/lib/src/kernel/kernel_backend_strategy.dart
|
| index 361fce7153e13137244b96b5e630506065349f25..316108f604e6a52e4117a3238f12e2f0efc76014 100644
|
| --- a/pkg/compiler/lib/src/kernel/kernel_backend_strategy.dart
|
| +++ b/pkg/compiler/lib/src/kernel/kernel_backend_strategy.dart
|
| @@ -37,22 +37,30 @@ import 'closure.dart';
|
| import 'element_map_impl.dart';
|
| import 'kernel_strategy.dart';
|
|
|
| +/// A backend strategy based on Kernel IR nodes.
|
| +abstract class KernelBackendStrategy implements BackendStrategy {
|
| + KernelToElementMap get elementMap;
|
| + GlobalLocalsMap get globalLocalsMapForTesting;
|
| +}
|
| +
|
| /// Backend strategy that uses the kernel elements as the backend model.
|
| // TODO(johnniwinther): Replace this with a strategy based on the J-element
|
| // model.
|
| -class KernelBackendStrategy implements BackendStrategy {
|
| +class KernelBackendStrategyImpl implements KernelBackendStrategy {
|
| final Compiler _compiler;
|
| Sorter _sorter;
|
| ClosureConversionTask _closureDataLookup;
|
| - GlobalLocalsMap _globalLocalsMap = new GlobalLocalsMap();
|
| + final GlobalLocalsMap _globalLocalsMap = new GlobalLocalsMap();
|
|
|
| - KernelBackendStrategy(this._compiler);
|
| + KernelBackendStrategyImpl(this._compiler);
|
|
|
| - KernelToElementMap get _elementMap {
|
| + KernelToElementMap get elementMap {
|
| KernelFrontEndStrategy frontendStrategy = _compiler.frontendStrategy;
|
| return frontendStrategy.elementMap;
|
| }
|
|
|
| + GlobalLocalsMap get globalLocalsMapForTesting => _globalLocalsMap;
|
| +
|
| @override
|
| ClosedWorldRefiner createClosedWorldRefiner(
|
| covariant KernelClosedWorld closedWorld) {
|
| @@ -62,8 +70,7 @@ class KernelBackendStrategy implements BackendStrategy {
|
| @override
|
| Sorter get sorter {
|
| if (_sorter == null) {
|
| - KernelFrontEndStrategy frontendStrategy = _compiler.frontendStrategy;
|
| - _sorter = new KernelSorter(frontendStrategy.elementMap);
|
| + _sorter = new KernelSorter(elementMap);
|
| }
|
| return _sorter;
|
| }
|
| @@ -71,7 +78,7 @@ class KernelBackendStrategy implements BackendStrategy {
|
| @override
|
| ClosureConversionTask get closureDataLookup =>
|
| _closureDataLookup ??= new KernelClosureConversionTask(
|
| - _compiler.measurer, _elementMap, _globalLocalsMap);
|
| + _compiler.measurer, elementMap, _globalLocalsMap);
|
|
|
| @override
|
| WorkItemBuilder createCodegenWorkItemBuilder(ClosedWorld closedWorld) {
|
| @@ -84,7 +91,7 @@ class KernelBackendStrategy implements BackendStrategy {
|
| ClosedWorld closedWorld,
|
| SelectorConstraintsStrategy selectorConstraintsStrategy) {
|
| return new KernelCodegenWorldBuilder(
|
| - _elementMap,
|
| + elementMap,
|
| closedWorld.elementEnvironment,
|
| nativeBasicData,
|
| closedWorld,
|
| @@ -95,7 +102,7 @@ class KernelBackendStrategy implements BackendStrategy {
|
| SsaBuilder createSsaBuilder(CompilerTask task, JavaScriptBackend backend,
|
| SourceInformationStrategy sourceInformationStrategy) {
|
| return new KernelSsaBuilder(
|
| - task, backend.compiler, _elementMap, _globalLocalsMap);
|
| + task, backend.compiler, elementMap, _globalLocalsMap);
|
| }
|
|
|
| @override
|
|
|