anchor.diff:        return true;
       }
       return source.exists();
  +  }
  +
  +  Element findElementById(int id) {
  +    _ElementByIdFinder finder = new _ElementByIdFinder(id);
  +    try {
  +      MapIterator<Source, SourceEntry> iterator = _cache.iterator();
  +      while (iterator.moveNext()) {
  +        SourceEntry sourceEntry = iterator.value;
  +        if (sourceEntry.kind == SourceKind.LIBRARY) {
  +          DartEntry dartEntry = sourceEntry;
  +          LibraryElement library = dartEntry.getValue(DartEntry.ELEMENT);
  +          if (library != null) {
  +            library.accept(finder);
  +          }
  +        }
  +      }
  +    } on _ElementByIdFinderException catch (e) {
  +      return finder.result;
  +    }
  +    return null;
     }
   
     @override
  
positive.code:     }
      return changedSources.length > 0;
    }
  }
  
  class _ElementByIdFinder extends GeneralizingElementVisitor {
    final int _id;
    Element result;
  
    _ElementByIdFinder(this._id);
  
    @override
    visitElement(Element element) {
      if (element.id == _id) {
        result = element;
        throw new _ElementByIdFinderException();
      }
      super.visitElement(element);
    }
  }
  
  class _ElementByIdFinderException {
  }
  
  /**
  
negative.code:   }
  }
  
  class _ElementByIdFinder extends GeneralizingElementVisitor {
    final int _id;
    Element result;
  
    _ElementByIdFinder(this._id);
  
    @override
    visitElement(Element element) {
      if (element.id == _id) {
        result = element;
        throw new _ElementByIdFinderException();
      }
      super.visitElement(element);
    }
  }
  
  class _ElementByIdFinderException {
  }
  
  class _PolymerHtmlUnitBuilder_findTagDartElement extends
      RecursiveElementVisitor<Object> {
    final PolymerHtmlUnitBuilder PolymerHtmlUnitBuilder_this;
  