Title: [163512] trunk/Source/WebCore
- Revision
- 163512
- Author
- [email protected]
- Date
- 2014-02-05 21:14:19 -0800 (Wed, 05 Feb 2014)
Log Message
SelectorCodeGenerator::generateElementHasTagName should match the local name before the namespace
https://bugs.webkit.org/show_bug.cgi?id=128167
Reviewed by Sam Weinig.
The local name is a stricter filter than the namespace, it should always run first.
* cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementHasTagName):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (163511 => 163512)
--- trunk/Source/WebCore/ChangeLog 2014-02-06 05:11:39 UTC (rev 163511)
+++ trunk/Source/WebCore/ChangeLog 2014-02-06 05:14:19 UTC (rev 163512)
@@ -1,5 +1,17 @@
2014-02-05 Benjamin Poulain <[email protected]>
+ SelectorCodeGenerator::generateElementHasTagName should match the local name before the namespace
+ https://bugs.webkit.org/show_bug.cgi?id=128167
+
+ Reviewed by Sam Weinig.
+
+ The local name is a stricter filter than the namespace, it should always run first.
+
+ * cssjit/SelectorCompiler.cpp:
+ (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementHasTagName):
+
+2014-02-05 Benjamin Poulain <[email protected]>
+
Add HTMLNames::classAttr as a regular name in SVGElement::isAnimatableAttribute
https://bugs.webkit.org/show_bug.cgi?id=128166
Modified: trunk/Source/WebCore/cssjit/SelectorCompiler.cpp (163511 => 163512)
--- trunk/Source/WebCore/cssjit/SelectorCompiler.cpp 2014-02-06 05:11:39 UTC (rev 163511)
+++ trunk/Source/WebCore/cssjit/SelectorCompiler.cpp 2014-02-06 05:14:19 UTC (rev 163512)
@@ -813,6 +813,14 @@
LocalRegister qualifiedNameImpl(m_registerAllocator);
m_assembler.loadPtr(Assembler::Address(elementAddressRegister, Element::tagQNameMemoryOffset() + QualifiedName::implMemoryOffset()), qualifiedNameImpl);
+ const AtomicString& selectorLocalName = nameToMatch.localName();
+ if (selectorLocalName != starAtom) {
+ // Generate localName == element->localName().
+ LocalRegister constantRegister(m_registerAllocator);
+ m_assembler.move(Assembler::TrustedImmPtr(selectorLocalName.impl()), constantRegister);
+ failureCases.append(m_assembler.branchPtr(Assembler::NotEqual, Assembler::Address(qualifiedNameImpl, QualifiedName::QualifiedNameImpl::localNameMemoryOffset()), constantRegister));
+ }
+
const AtomicString& selectorNamespaceURI = nameToMatch.namespaceURI();
if (selectorNamespaceURI != starAtom) {
// Generate namespaceURI == element->namespaceURI().
@@ -820,14 +828,6 @@
m_assembler.move(Assembler::TrustedImmPtr(selectorNamespaceURI.impl()), constantRegister);
failureCases.append(m_assembler.branchPtr(Assembler::NotEqual, Assembler::Address(qualifiedNameImpl, QualifiedName::QualifiedNameImpl::namespaceMemoryOffset()), constantRegister));
}
-
- const AtomicString& selectorLocalName = nameToMatch.localName();
- if (selectorLocalName != starAtom) {
- // Generate localName == element->localName().
- LocalRegister constantRegister(m_registerAllocator);
- m_assembler.move(Assembler::TrustedImmPtr(selectorLocalName.impl()), constantRegister);
- failureCases.append(m_assembler.branchPtr(Assembler::NotEqual, Assembler::Address(qualifiedNameImpl, QualifiedName::QualifiedNameImpl::localNameMemoryOffset()), constantRegister));
- }
}
void SelectorCodeGenerator::generateElementHasId(Assembler::JumpList& failureCases, const LocalRegister& elementDataAddress, const AtomicString& idToMatch)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes