anchor.diff:        .add(o.fn(arguments, statements, o.BOOL_TYPE).toDeclStmt(name));
   }
   
  -final _isPureHtml = new IsPureHtmlVisitor();
  -
  -bool _isSimpleNgIf(EmbeddedTemplateAst ast) {
  +final _pureHtmlVisitor = new IsPureHtmlVisitor();
  +
  +bool _isPureHtml(EmbeddedTemplateAst ast) {
     if (ast.directives.length != 1) return false;
     var isNgIf = ast.directives.single.directive.identifier.name == 'NgIf';
     if (!isNgIf) return false;
   
  -  return ast.children.every((t) => t.visit(_isPureHtml, null));
  +  return ast.children.every((t) => t.visit(_pureHtmlVisitor, null));
   }
   
   /// Constructs name of global function that can be used to update an input
  
positive.code:         ast.references,
          logger,
          hasTemplateRefQuery: parent.hasTemplateRefQuery,
          isInlined: isSimpleNgIf);
      view.nodes.add(compileElement);
      nestedViewCount++;
      var embeddedView = new CompileView(
  
negative.code:             embeddedView.declarationElement);
      nestedViewCount += embeddedViewVisitor.nestedViewCount;
  
      if (!isPureHtml) {
        compileElement.beforeChildren(false);
      }
      _addRootNodeAndProject(compileElement, ast.ngContentIndex, parent);
      if (!isPureHtml) {
        compileElement.afterChildren(0);
      }
      if (ast.hasDeferredComponent) {
  