Index: Source/core/dom/NodeIterator.cpp |
diff --git a/Source/core/dom/NodeIterator.cpp b/Source/core/dom/NodeIterator.cpp |
index 1a2e05605203cff8fcefca6b56e3ecaea3a7f131..6a0f76abeb7c6a178e5bff8f60a874101c45007b 100644 |
--- a/Source/core/dom/NodeIterator.cpp |
+++ b/Source/core/dom/NodeIterator.cpp |
@@ -29,6 +29,7 @@ |
#include "core/dom/Document.h" |
#include "core/dom/ExceptionCode.h" |
#include "core/dom/NodeTraversal.h" |
+#include "core/frame/UseCounter.h" |
namespace WebCore { |
@@ -74,7 +75,6 @@ bool NodeIterator::NodePointer::moveToPrevious(Node* root) |
NodeIterator::NodeIterator(PassRefPtr<Node> rootNode, unsigned whatToShow, PassRefPtr<NodeFilter> filter) |
: NodeIteratorBase(rootNode, whatToShow, filter) |
, m_referenceNode(root(), true) |
- , m_detached(false) |
{ |
ScriptWrappable::init(this); |
root()->document().attachNodeIterator(this); |
@@ -87,11 +87,6 @@ NodeIterator::~NodeIterator() |
PassRefPtr<Node> NodeIterator::nextNode(ExceptionState& exceptionState) |
{ |
- if (m_detached) { |
- exceptionState.throwDOMException(InvalidStateError, "The iterator is detached."); |
- return nullptr; |
- } |
- |
RefPtr<Node> result; |
m_candidateNode = m_referenceNode; |
@@ -116,11 +111,6 @@ PassRefPtr<Node> NodeIterator::nextNode(ExceptionState& exceptionState) |
PassRefPtr<Node> NodeIterator::previousNode(ExceptionState& exceptionState) |
{ |
- if (m_detached) { |
- exceptionState.throwDOMException(InvalidStateError, "The iterator is detached."); |
- return nullptr; |
- } |
- |
RefPtr<Node> result; |
m_candidateNode = m_referenceNode; |
@@ -145,9 +135,7 @@ PassRefPtr<Node> NodeIterator::previousNode(ExceptionState& exceptionState) |
void NodeIterator::detach() |
{ |
- root()->document().detachNodeIterator(this); |
- m_detached = true; |
- m_referenceNode.node.clear(); |
+ // This is now a no-op as per the DOM specification. |
} |
void NodeIterator::nodeWillBeRemoved(Node& removedNode) |
@@ -158,7 +146,6 @@ void NodeIterator::nodeWillBeRemoved(Node& removedNode) |
void NodeIterator::updateForNodeRemoval(Node& removedNode, NodePointer& referenceNode) const |
{ |
- ASSERT(!m_detached); |
ASSERT(root()->document() == removedNode.document()); |
// Iterator is not affected if the removed node is the reference node and is the root. |