Bug 16744

Summary: Acid3 expects different exception handling in NodeIterator
Product: WebKit Reporter: Eric Seidel (no email) <eric>
Component: New BugsAssignee: Nobody <webkit-unassigned>
Status: RESOLVED DUPLICATE    
Severity: Normal    
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Mac   
OS: OS X 10.4   
Bug Depends on: 16743    
Bug Blocks:    

Eric Seidel (no email)
Reported 2008-01-05 14:01:13 PST
This might be a dup of bug 16743. We fail Acid3 test 6: function () { // test 6: Removing nodes during iteration var count = 0; var expect = function(n, node1, node2) { count += 1; assert(n == count, "reached expectation " + n + " when expecting expectation " + count); assert(node1 == node2, "expectation " + count + " failed"); }; var doc = getTestDocument(); var t1 = doc.body.appendChild(doc.createElement('t1')); var t2 = doc.body.appendChild(doc.createElement('t2')); var t3 = doc.body.appendChild(doc.createElement('t3')); var t4 = doc.body.appendChild(doc.createElement('t4')); var callCount = 0; var filterFunctions = [ function (node) { expect(1, node, doc.body); return true; }, // filter 0 function (node) { expect(3, node, t1); return true; }, // filter 1 function (node) { expect(5, node, t2); return true; }, // filter 2 function (node) { expect(7, node, t3); doc.body.removeChild(t4); return true; }, // filter 3 function (node) { expect(9, node, t3); doc.body.appendChild(t4); return true; }, // filter 4 function (node) { expect(11, node, t4); return true; }, // filter 5 function (node) { expect(13, node, t4); doc.body.removeChild(t4); return false; }, // filter 6 function (node) { expect(14, node, t3); return true; }, // filter 7 function (node) { expect(16, node, t2); doc.body.removeChild(t2); return true; }, // filter 8 function (node) { expect(18, node, t1); return true; }, // filter 9 ]; var i = doc.createNodeIterator(doc.documentElement.lastChild, 0xFFFFFFFF, function (node) { return filterFunctions[callCount++](node); }, true); // * B 1 2 3 4 expect(2, i.nextNode(), doc.body); // filter 0 // [B] * 1 2 3 4 expect(4, i.nextNode(), t1); // filter 1 // B [1] * 2 3 4 expect(6, i.nextNode(), t2); // filter 2 // B 1 [2] * 3 4 expect(8, i.nextNode(), t3); // filter 3 // B 1 2 [3] * expect(10, i.nextNode(), t3); // filter 4 // B 1 2 [3] * 4 expect(12, i.nextNode(), t4); // filter 5 // B 1 2 3 [4] * expect(15, i.previousNode(), t4); // filters 6, 7 // B 1 2 3 * (4) // filter 6 // B 1 2 [3] * // between 6 and 7 // B 1 2 * (3) // filter 7 // B 1 2 * [3] expect(17, i.previousNode(), t2); // filter 8 // B 1 * (2) 3 // B * [1] 3 expect(19, i.previousNode(), t1); // filter 9 return 1; },
Attachments
Eric Seidel (no email)
Comment 1 2008-01-05 20:04:23 PST
The printed failure: Test 6: FAIL (reached expectation 10 when expecting expectation 9)
Darin Adler
Comment 2 2008-01-08 13:02:43 PST
*** This bug has been marked as a duplicate of 4714 ***
Note You need to log in before you can comment on or make changes to this bug.