anchor.diff:      if (portal.origin != null) {
         viewContainerRef = portal.origin;
       }
  -    return _dynamicComponentLoader
  -        .loadNextToLocation(portal.component, viewContainerRef)
  -        .then((ref) {
  -      setPortalDisposer(ref.destroy);
  -      return ref.instance;
  -    });
  +    final ref = _componentLoader.loadNextToLocation(
  +        portal.componentFactory, viewContainerRef);
  +    setPortalDisposer(ref.destroy);
  +    // TODO(google): This is no longer async remove the future if possible.
  +    return new Future.value(ref.instance);
     }
   
     @override
  
positive.code:   /// origin, instead, you want it to be some other location in your app.
    final ViewContainerRef origin;
  
    // TODO(google): Document and better explain when/when not to set origin.
    // TODO(google): Add optional `onInitialize` callback/future.
    ComponentPortal([this.origin]);
  
    @override
    ComponentPortal<T> clone() => new ComponentPortal<T>(origin);
  
    /// The type of component that will be created.
    Type get component => T;
  
negative.code: ///     <template portalHost="portal"></template>
  @Directive(selector: '[portalHost]')
  class PortalHostDirective extends BasePortalHost {
    final ComponentLoader _componentLoader;
    final ViewContainerRef _viewContainerRef;
  
    PortalHostDirective(this._componentLoader, this._viewContainerRef);
  
    @override
    Future<ComponentRef> attachComponentPortal(ComponentPortal portal) {
  