anchor.diff: -import 'dart:async';
   import 'dart:html';
   
   import 'package:angular/core.dart'
  
positive.code:     var clone = _clone();
      return clone;
    }
  
    /// Builds and returns a ComponentFixture.
    Future<ComponentFixture> createAsync(Type rootComponentType) {
      AppViewUtils.resetChangeDetection();
      var rootElId = '''root${ _nextRootElementId ++}''';
      var rootEl = new DivElement()..id = rootElId;
      var doc = _injector.get(DOCUMENT);
      // TODO(juliemr): can/should this be optional?
      var oldRoots = doc.querySelectorAll("[id^=root]");
      for (var i = 0; i < oldRoots.length; i++) {
        oldRoots[i].remove();
      }
      (doc as HtmlDocument).body.append(rootEl);
      DynamicComponentLoader loader = _injector.get(DynamicComponentLoader);
      appViewUtils = _injector.get(AppViewUtils);
      Future<ComponentRef> promise = loader.load(rootComponentType, _injector);
      return promise.then((componentRef) {
        querySelector('#$rootElId')
            .append(componentRef.location.nativeElement as Element);
        return new ComponentFixture(componentRef);
      });
    }
  }
  
negative.code:         ElementRef,
          ChangeDetectorRef;
  import 'package:angular/di.dart' show Injectable;
  import 'package:angular/src/core/render/api.dart' show sharedStylesHost;
  import 'package:angular/src/platform/dom/shared_styles_host.dart';
  
  var _nextRootElementId = 0;
  
  