| Index: Source/core/dom/SelectorQuery.h
 | 
| diff --git a/Source/core/dom/SelectorQuery.h b/Source/core/dom/SelectorQuery.h
 | 
| index 79e6381faeea9d295ebf021105778e29235551c4..24ae4908a77fa4a2a225af6c1a7a5d06bf611d91 100644
 | 
| --- a/Source/core/dom/SelectorQuery.h
 | 
| +++ b/Source/core/dom/SelectorQuery.h
 | 
| @@ -27,6 +27,7 @@
 | 
|  #define SelectorQuery_h
 | 
|  
 | 
|  #include "core/css/CSSSelectorList.h"
 | 
| +#include "core/dom/DocumentOrderedList.h"
 | 
|  #include <wtf/HashMap.h>
 | 
|  #include <wtf/text/AtomicStringHash.h>
 | 
|  #include <wtf/Vector.h>
 | 
| @@ -40,6 +41,7 @@ class Document;
 | 
|  class Element;
 | 
|  class Node;
 | 
|  class NodeList;
 | 
| +class SpaceSplitString;
 | 
|  
 | 
|  class SelectorDataList {
 | 
|  public:
 | 
| @@ -55,10 +57,14 @@ private:
 | 
|          bool isFastCheckable;
 | 
|      };
 | 
|  
 | 
| +    bool canUseFastQuery(Node* rootNode) const;
 | 
|      bool selectorMatches(const SelectorData&, Element*, const Node*) const;
 | 
| -    std::pair<bool, Node*> findTraverseRoot(Node* traverseRoot) const;
 | 
|      template <bool firstMatchOnly>
 | 
| -    void execute(Node* rootNode, Vector<RefPtr<Node> >&) const;
 | 
| +    void collectElementsByClassName(Node* rootNode, const SpaceSplitString& classNames, Vector<Node*>&) const;
 | 
| +    bool findTraverseRoots(Node* rootNode, Vector<Node*>& traversalRoots) const;
 | 
| +    void executeQueryAll(Node* rootNode, Vector<RefPtr<Node> >& matchedElements) const;
 | 
| +    std::pair<bool, Node*> findTraverseRoot(Node* rootNode) const;
 | 
| +    Element* executeQueryFirst(Node* rootNode) const;
 | 
|  
 | 
|      Vector<SelectorData> m_selectors;
 | 
|  };
 | 
| 
 |