浏览代码

LibWeb: Make NodeFilter::Result an enum class

Sam Atkins 2 年之前
父节点
当前提交
27d4912f12

+ 1 - 1
Userland/Libraries/LibWeb/DOM/NodeFilter.h

@@ -22,7 +22,7 @@ public:
     WebIDL::CallbackType& callback() { return m_callback; }
 
     // FIXME: Generate both of these enums from IDL.
-    enum Result {
+    enum class Result : u8 {
         FILTER_ACCEPT = 1,
         FILTER_REJECT = 2,
         FILTER_SKIP = 3,

+ 3 - 3
Userland/Libraries/LibWeb/DOM/NodeIterator.cpp

@@ -122,7 +122,7 @@ JS::ThrowCompletionOr<JS::GCPtr<Node>> NodeIterator::traverse(Direction directio
         auto result = TRY(filter(*m_traversal_pointer->node));
 
         // 3. If result is FILTER_ACCEPT, then break.
-        if (result == NodeFilter::FILTER_ACCEPT)
+        if (result == NodeFilter::Result::FILTER_ACCEPT)
             break;
     }
 
@@ -146,11 +146,11 @@ JS::ThrowCompletionOr<NodeFilter::Result> NodeIterator::filter(Node& node)
 
     // 3. If the nth bit (where 0 is the least significant bit) of traverser’s whatToShow is not set, then return FILTER_SKIP.
     if (!(m_what_to_show & (1u << n)))
-        return NodeFilter::FILTER_SKIP;
+        return NodeFilter::Result::FILTER_SKIP;
 
     // 4. If traverser’s filter is null, then return FILTER_ACCEPT.
     if (!m_filter)
-        return NodeFilter::FILTER_ACCEPT;
+        return NodeFilter::Result::FILTER_ACCEPT;
 
     // 5. Set traverser’s active flag.
     m_active = true;

+ 15 - 15
Userland/Libraries/LibWeb/DOM/TreeWalker.cpp

@@ -81,7 +81,7 @@ JS::ThrowCompletionOr<JS::GCPtr<Node>> TreeWalker::parent_node()
         //    then set this’s current to node and return node.
         if (node) {
             auto result = TRY(filter(*node));
-            if (result == NodeFilter::FILTER_ACCEPT) {
+            if (result == NodeFilter::Result::FILTER_ACCEPT) {
                 m_current = *node;
                 return node;
             }
@@ -135,7 +135,7 @@ JS::ThrowCompletionOr<JS::GCPtr<Node>> TreeWalker::previous_node()
             auto result = TRY(filter(*node));
 
             // 3. While result is not FILTER_REJECT and node has a child:
-            while (result != NodeFilter::FILTER_REJECT && node->has_children()) {
+            while (result != NodeFilter::Result::FILTER_REJECT && node->has_children()) {
                 // 1. Set node to node’s last child.
                 node = *node->last_child();
 
@@ -144,7 +144,7 @@ JS::ThrowCompletionOr<JS::GCPtr<Node>> TreeWalker::previous_node()
             }
 
             // 4. If result is FILTER_ACCEPT, then set this’s current to node and return node.
-            if (result == NodeFilter::FILTER_ACCEPT) {
+            if (result == NodeFilter::Result::FILTER_ACCEPT) {
                 m_current = node;
                 return node;
             }
@@ -161,7 +161,7 @@ JS::ThrowCompletionOr<JS::GCPtr<Node>> TreeWalker::previous_node()
         node = *node->parent();
 
         // 5. If the return value of filtering node within this is FILTER_ACCEPT, then set this’s current to node and return node.
-        if (TRY(filter(*node)) == NodeFilter::FILTER_ACCEPT) {
+        if (TRY(filter(*node)) == NodeFilter::Result::FILTER_ACCEPT) {
             m_current = node;
             return node;
         }
@@ -177,12 +177,12 @@ JS::ThrowCompletionOr<JS::GCPtr<Node>> TreeWalker::next_node()
     JS::NonnullGCPtr<Node> node = m_current;
 
     // 2. Let result be FILTER_ACCEPT.
-    auto result = NodeFilter::FILTER_ACCEPT;
+    auto result = NodeFilter::Result::FILTER_ACCEPT;
 
     // 3. While true:
     while (true) {
         // 1. While result is not FILTER_REJECT and node has a child:
-        while (result != NodeFilter::FILTER_REJECT && node->has_children()) {
+        while (result != NodeFilter::Result::FILTER_REJECT && node->has_children()) {
             // 1. Set node to its first child.
             node = *node->first_child();
 
@@ -190,7 +190,7 @@ JS::ThrowCompletionOr<JS::GCPtr<Node>> TreeWalker::next_node()
             result = TRY(filter(*node));
 
             // 3. If result is FILTER_ACCEPT, then set this’s current to node and return node.
-            if (result == NodeFilter::FILTER_ACCEPT) {
+            if (result == NodeFilter::Result::FILTER_ACCEPT) {
                 m_current = *node;
                 return node;
             }
@@ -225,7 +225,7 @@ JS::ThrowCompletionOr<JS::GCPtr<Node>> TreeWalker::next_node()
         result = TRY(filter(*node));
 
         // 6. If result is FILTER_ACCEPT, then set this’s current to node and return node.
-        if (result == NodeFilter::FILTER_ACCEPT) {
+        if (result == NodeFilter::Result::FILTER_ACCEPT) {
             m_current = *node;
             return node;
         }
@@ -244,11 +244,11 @@ JS::ThrowCompletionOr<NodeFilter::Result> TreeWalker::filter(Node& node)
 
     // 3. If the nth bit (where 0 is the least significant bit) of traverser’s whatToShow is not set, then return FILTER_SKIP.
     if (!(m_what_to_show & (1u << n)))
-        return NodeFilter::FILTER_SKIP;
+        return NodeFilter::Result::FILTER_SKIP;
 
     // 4. If traverser’s filter is null, then return FILTER_ACCEPT.
     if (!m_filter)
-        return NodeFilter::FILTER_ACCEPT;
+        return NodeFilter::Result::FILTER_ACCEPT;
 
     // 5. Set traverser’s active flag.
     m_active = true;
@@ -284,13 +284,13 @@ JS::ThrowCompletionOr<JS::GCPtr<Node>> TreeWalker::traverse_children(ChildTraver
         auto result = TRY(filter(*node));
 
         // 2. If result is FILTER_ACCEPT, then set walker’s current to node and return node.
-        if (result == NodeFilter::FILTER_ACCEPT) {
+        if (result == NodeFilter::Result::FILTER_ACCEPT) {
             m_current = *node;
             return node;
         }
 
         // 3. If result is FILTER_SKIP, then:
-        if (result == NodeFilter::FILTER_SKIP) {
+        if (result == NodeFilter::Result::FILTER_SKIP) {
             // 1. Let child be node’s first child if type is first, and node’s last child if type is last.
             JS::GCPtr<Node> child = type == ChildTraversalType::First ? node->first_child() : node->last_child();
 
@@ -352,7 +352,7 @@ JS::ThrowCompletionOr<JS::GCPtr<Node>> TreeWalker::traverse_siblings(SiblingTrav
             auto result = TRY(filter(*node));
 
             // 3. If result is FILTER_ACCEPT, then set walker’s current to node and return node.
-            if (result == NodeFilter::FILTER_ACCEPT) {
+            if (result == NodeFilter::Result::FILTER_ACCEPT) {
                 m_current = *node;
                 return node;
             }
@@ -361,7 +361,7 @@ JS::ThrowCompletionOr<JS::GCPtr<Node>> TreeWalker::traverse_siblings(SiblingTrav
             sibling = type == SiblingTraversalType::Next ? node->first_child() : node->last_child();
 
             // 5. If result is FILTER_REJECT or sibling is null, then set sibling to node’s next sibling if type is next, and node’s previous sibling if type is previous.
-            if (result == NodeFilter::FILTER_REJECT || !sibling)
+            if (result == NodeFilter::Result::FILTER_REJECT || !sibling)
                 sibling = type == SiblingTraversalType::Next ? node->next_sibling() : node->previous_sibling();
         }
 
@@ -373,7 +373,7 @@ JS::ThrowCompletionOr<JS::GCPtr<Node>> TreeWalker::traverse_siblings(SiblingTrav
             return nullptr;
 
         // 5. If the return value of filtering node within walker is FILTER_ACCEPT, then return null.
-        if (TRY(filter(*node)) == NodeFilter::FILTER_ACCEPT)
+        if (TRY(filter(*node)) == NodeFilter::Result::FILTER_ACCEPT)
             return nullptr;
     }
 }