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 1282ca16b61354c0d83eef1699f467ff40706600..139cbd16f3c30b3981da47e66d2338141b5c6832 100644 |
--- a/pkg/compiler/lib/src/kernel/kernel_backend_strategy.dart |
+++ b/pkg/compiler/lib/src/kernel/kernel_backend_strategy.dart |
@@ -7,7 +7,6 @@ library dart2js.kernel.backend_strategy; |
import 'package:kernel/ast.dart' as ir; |
import '../backend_strategy.dart'; |
-import '../closure.dart'; |
import '../common/codegen.dart' show CodegenRegistry, CodegenWorkItem; |
import '../common/tasks.dart'; |
import '../compiler.dart'; |
@@ -15,15 +14,11 @@ import '../elements/entities.dart'; |
import '../elements/entity_utils.dart' as utils; |
import '../enqueue.dart'; |
import '../io/source_information.dart'; |
-import '../js/js_source_mapping.dart'; |
import '../js_backend/backend.dart'; |
-import '../js_backend/native_data.dart'; |
import '../js_emitter/sorter.dart'; |
-import '../js_model/closure.dart'; |
import '../js_model/js_strategy.dart'; |
import '../js_model/locals.dart'; |
import '../kernel/element_map.dart'; |
-import '../kernel/element_map_impl.dart'; |
import '../native/behavior.dart'; |
import '../options.dart'; |
import '../ssa/builder_kernel.dart'; |
@@ -32,14 +27,8 @@ import '../ssa/ssa.dart'; |
import '../ssa/types.dart'; |
import '../types/types.dart'; |
import '../universe/selector.dart'; |
-import '../universe/world_builder.dart'; |
import '../universe/world_impact.dart'; |
import '../world.dart'; |
-import 'element_map_impl.dart'; |
-import 'kernel_strategy.dart'; |
- |
-/// If `true` the [JsStrategy] is used as the backend strategy. |
-bool useJsStrategyForTesting = false; |
/// A backend strategy based on Kernel IR nodes. |
abstract class KernelBackendStrategy implements BackendStrategy { |
@@ -47,78 +36,8 @@ abstract class KernelBackendStrategy implements BackendStrategy { |
GlobalLocalsMap get globalLocalsMapForTesting; |
factory KernelBackendStrategy(Compiler compiler) { |
- return useJsStrategyForTesting |
- ? new JsBackendStrategy(compiler) |
- : new KernelBackendStrategyImpl(compiler); |
- } |
-} |
- |
-/// Backend strategy that uses the kernel elements as the backend model. |
-// TODO(redemption): Replace this with a strategy based on the J-element |
-// model. |
-class KernelBackendStrategyImpl implements KernelBackendStrategy { |
- final Compiler _compiler; |
- Sorter _sorter; |
- ClosureConversionTask _closureDataLookup; |
- final GlobalLocalsMap _globalLocalsMap = new GlobalLocalsMap(); |
- |
- KernelBackendStrategyImpl(this._compiler); |
- |
- KernelToElementMapForBuilding get elementMap { |
- KernelFrontEndStrategy frontendStrategy = _compiler.frontendStrategy; |
- KernelToElementMapImpl elementMap = frontendStrategy.elementMap; |
- return elementMap; |
- } |
- |
- GlobalLocalsMap get globalLocalsMapForTesting => _globalLocalsMap; |
- |
- @override |
- ClosedWorldRefiner createClosedWorldRefiner( |
- covariant KernelClosedWorld closedWorld) { |
- return closedWorld; |
- } |
- |
- @override |
- Sorter get sorter { |
- if (_sorter == null) { |
- _sorter = new KernelSorter(elementMap); |
- } |
- return _sorter; |
+ return new JsBackendStrategy(compiler); |
} |
- |
- @override |
- ClosureConversionTask get closureDataLookup => |
- _closureDataLookup ??= new KernelClosureConversionTask( |
- _compiler.measurer, elementMap, null, _globalLocalsMap); |
- |
- @override |
- WorkItemBuilder createCodegenWorkItemBuilder(ClosedWorld closedWorld) { |
- return new KernelCodegenWorkItemBuilder(_compiler.backend, closedWorld); |
- } |
- |
- @override |
- CodegenWorldBuilder createCodegenWorldBuilder( |
- NativeBasicData nativeBasicData, |
- ClosedWorld closedWorld, |
- SelectorConstraintsStrategy selectorConstraintsStrategy) { |
- return new KernelCodegenWorldBuilder( |
- elementMap, |
- closedWorld.elementEnvironment, |
- nativeBasicData, |
- closedWorld, |
- selectorConstraintsStrategy); |
- } |
- |
- @override |
- SsaBuilder createSsaBuilder(CompilerTask task, JavaScriptBackend backend, |
- SourceInformationStrategy sourceInformationStrategy) { |
- return new KernelSsaBuilder( |
- task, backend.compiler, elementMap, _globalLocalsMap); |
- } |
- |
- @override |
- SourceInformationStrategy get sourceInformationStrategy => |
- const JavaScriptSourceInformationStrategy(); |
} |
class KernelCodegenWorkItemBuilder implements WorkItemBuilder { |