| 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 {
 | 
| 
 |