Element* TreeScope::findAnchor(const String& name) { if (name.isEmpty()) return 0; if (Element* element = getElementById(name)) return element; for (Element* element = ElementTraversal::firstWithin(rootNode()); element; element = ElementTraversal::next(element)) { if (element->hasTagName(aTag)) { HTMLAnchorElement* anchor = static_cast<HTMLAnchorElement*>(element); if (rootNode()->document()->inQuirksMode()) { // Quirks mode, case insensitive comparison of names. if (equalIgnoringCase(anchor->name(), name)) return anchor; } else { // Strict mode, names need to match exactly. if (anchor->name() == name) return anchor; } } } return 0; }