WebCore:

2008-03-25  Darin Adler  <darin@apple.com>

        Reviewed by Anders.

        - fix http://bugs.webkit.org/show_bug.cgi?id=17252
          Acid3 test removing Nodes during NodeIterator walk fails (affects Acid3 test 2)

        Test: traversal/acid3-test-2.html

        * bindings/js/JSNodeIteratorCustom.cpp:
        (WebCore::JSNodeIterator::nextNode): Update since result is PassRefPtr.
        (WebCore::JSNodeIterator::previousNode): Ditto.
        * dom/NodeIterator.cpp:
        (WebCore::NodeIterator::nextNode): Changed result to PassRefPtr. Added code to
        track both the current candidate (which needs to move along to the next node
        if current node is deleted) and the current provisional result (passed to acceptNode,
        and needs to be returned even if it's deleted).
        (WebCore::NodeIterator::previousNode): Ditto.
        (WebCore::NodeIterator::nodeWillBeRemoved): Call updateForNodeRemoval for
        m_candidateNode as well as m_referenceNode.
        * dom/NodeIterator.h: Use PassRefPtr for return values.

LayoutTests:

2008-03-25  Darin Adler  <darin@apple.com>

        Reviewed by Anders.

        - test for http://bugs.webkit.org/show_bug.cgi?id=17252
          Acid3 test removing Nodes during NodeIterator walk fails (affects Acid3 test 2)

        * traversal/acid3-test-2-expected.txt: Added.
        * traversal/acid3-test-2.html: Added.
        * traversal/resources/acid3-test-2.js: Added.
        * traversal/resources/exception-forwarding.js: Removed bogus extra line of code.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@31303 268f45cc-cd09-0410-ab3c-d52691b4dbfc
9 files changed