Changeset 153660 in webkit
- Timestamp:
- Aug 2, 2013 11:52:52 AM (11 years ago)
- Location:
- trunk
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r153658 r153660 1 2013-08-02 Christophe Dumez <ch.dumez@sisa.samsung.com> 2 3 compareDocumentPosition() should report PRECEDING or FOLLOWING information even if nodes are disconnected 4 https://bugs.webkit.org/show_bug.cgi?id=119316 5 6 Reviewed by Ryosuke Niwa. 7 8 Update fast/dom/compare-document-position-disconnected-nodes.html to check that compareDocumentPosition() 9 now returns one of the following values for disconnected nodes: 10 - DOCUMENT_POSITION_DISCONNECTED | DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC | DOCUMENT_POSITION_PRECEDING 11 - DOCUMENT_POSITION_DISCONNECTED | DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC | DOCUMENT_POSITION_FOLLOWING 12 13 Several dom/xhtml/level3 are skipped and marked as WonfFix because they are outdated and no longer match 14 the DOM4 specification. They expect compareDocumentPosition() not to return PRECEDING / FOLLOWING 15 information for disconnected nodes. 16 17 * TestExpectations: 18 * dom/xhtml/level3/core/nodecomparedocumentposition38-expected.txt: 19 * fast/dom/compare-document-position-disconnected-nodes-expected.txt: 20 * fast/dom/compare-document-position-disconnected-nodes.html: 21 * fast/dom/shadow/compare-document-position-expected.txt: 22 * fast/dom/shadow/compare-document-position.html: 23 1 24 2013-08-02 Mihai Tica <mitica@adobe.com> 2 25 -
trunk/LayoutTests/TestExpectations
r153623 r153660 17 17 webkit.org/b/76280 media/W3C/video/networkState/networkState_during_progress.html [ Pass Failure ] 18 18 19 # These conformace tests are no longer in sync with the latest specification 20 # and expect compareDocumentPosition() to return: 21 # DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC | DOCUMENT_POSITION_DISCONNECTED 22 # for disconnected nodes (missing PRECEDING / FOLLOWING information). 23 # We cannot check rebaseline them because their output is likely to change 24 # between test runs as it decides PRECEDING / FOLLOWING using pointer 25 # comparison. 26 dom/xhtml/level3/core/nodecomparedocumentposition03.xhtml [ WontFix ] 27 dom/xhtml/level3/core/nodecomparedocumentposition05.xhtml [ WontFix ] 28 dom/xhtml/level3/core/nodecomparedocumentposition16.xhtml [ WontFix ] 29 dom/xhtml/level3/core/nodecomparedocumentposition33.xhtml [ WontFix ] 30 31 # Node::compareDocumentPosition() wrongly reports an attribute and its content as disconnected. 32 webkit.org/b/119325 dom/xhtml/level3/core/nodecomparedocumentposition38.xhtml [ Failure ] 33 19 34 # The CSS Shapes spec has changed the positioning model for floats with shape-outside. 20 35 # Thus all of the tests need to be rewitten to work as the implementation of -
trunk/LayoutTests/dom/xhtml/level3/core/nodecomparedocumentposition38-expected.txt
r35143 r153660 1 1 Test http://www.w3.org/2001/DOM-Test-Suite/level3/core/nodecomparedocumentposition38 2 Status failure 3 Message nodecomparedocumentpositionIsContainsFollowing38: assertEquals failed, actual 33, expected 20. 2 Status Success -
trunk/LayoutTests/fast/dom/compare-document-position-disconnected-nodes-expected.txt
r143239 r153660 1 * Test with 2 disconnected elements 1 2 PASS a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_DISCONNECTED is Node.DOCUMENT_POSITION_DISCONNECTED 2 3 PASS b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_DISCONNECTED is Node.DOCUMENT_POSITION_DISCONNECTED … … 5 6 PASS a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_PRECEDING is not b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_PRECEDING 6 7 PASS a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING is not b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_FOLLOWING 8 PASS a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_PRECEDING || a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING is non-zero. 9 PASS b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_PRECEDING || b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_FOLLOWING is non-zero. 10 PASS a.compareDocumentPosition(b) is a.compareDocumentPosition(b) 11 PASS b.compareDocumentPosition(a) is b.compareDocumentPosition(a) 12 * Test with document and a disconnected element 13 PASS a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_DISCONNECTED is Node.DOCUMENT_POSITION_DISCONNECTED 14 PASS b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_DISCONNECTED is Node.DOCUMENT_POSITION_DISCONNECTED 15 PASS a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC is Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC 16 PASS b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC is Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC 17 PASS a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_PRECEDING is not b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_PRECEDING 18 PASS a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING is not b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_FOLLOWING 19 PASS a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_PRECEDING || a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING is non-zero. 20 PASS b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_PRECEDING || b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_FOLLOWING is non-zero. 21 PASS a.compareDocumentPosition(b) is a.compareDocumentPosition(b) 22 PASS b.compareDocumentPosition(a) is b.compareDocumentPosition(a) 23 * Test with document and a disconnected attribute 24 PASS a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_DISCONNECTED is Node.DOCUMENT_POSITION_DISCONNECTED 25 PASS b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_DISCONNECTED is Node.DOCUMENT_POSITION_DISCONNECTED 26 PASS a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC is Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC 27 PASS b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC is Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC 28 PASS a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_PRECEDING is not b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_PRECEDING 29 PASS a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING is not b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_FOLLOWING 30 PASS a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_PRECEDING || a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING is non-zero. 31 PASS b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_PRECEDING || b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_FOLLOWING is non-zero. 32 PASS a.compareDocumentPosition(b) is a.compareDocumentPosition(b) 33 PASS b.compareDocumentPosition(a) is b.compareDocumentPosition(a) 34 * Test with 2 disconnected attributes 35 PASS a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_DISCONNECTED is Node.DOCUMENT_POSITION_DISCONNECTED 36 PASS b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_DISCONNECTED is Node.DOCUMENT_POSITION_DISCONNECTED 37 PASS a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC is Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC 38 PASS b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC is Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC 39 PASS a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_PRECEDING is not b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_PRECEDING 40 PASS a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING is not b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_FOLLOWING 41 PASS a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_PRECEDING || a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING is non-zero. 42 PASS b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_PRECEDING || b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_FOLLOWING is non-zero. 43 PASS a.compareDocumentPosition(b) is a.compareDocumentPosition(b) 44 PASS b.compareDocumentPosition(a) is b.compareDocumentPosition(a) 45 * Test with disconnected attribute and element 46 PASS a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_DISCONNECTED is Node.DOCUMENT_POSITION_DISCONNECTED 47 PASS b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_DISCONNECTED is Node.DOCUMENT_POSITION_DISCONNECTED 48 PASS a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC is Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC 49 PASS b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC is Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC 50 PASS a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_PRECEDING is not b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_PRECEDING 51 PASS a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING is not b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_FOLLOWING 52 PASS a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_PRECEDING || a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING is non-zero. 53 PASS b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_PRECEDING || b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_FOLLOWING is non-zero. 54 PASS a.compareDocumentPosition(b) is a.compareDocumentPosition(b) 55 PASS b.compareDocumentPosition(a) is b.compareDocumentPosition(a) 7 56 PASS successfullyParsed is true 8 57 -
trunk/LayoutTests/fast/dom/compare-document-position-disconnected-nodes.html
r143239 r153660 4 4 <script src="../js/resources/js-test-pre.js"></script> 5 5 <script> 6 window.a = document.createElement('a');7 window.b = document.createElement('b');6 var a; 7 var b; 8 8 9 shouldBe('a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_DISCONNECTED', 'Node.DOCUMENT_POSITION_DISCONNECTED'); 10 shouldBe('b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_DISCONNECTED', 'Node.DOCUMENT_POSITION_DISCONNECTED'); 11 shouldBe('a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC', 'Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC'); 12 shouldBe('b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC', 'Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC'); 13 shouldNotBe('a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_PRECEDING', 'b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_PRECEDING'); 14 shouldNotBe('a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING', 'b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_FOLLOWING'); 9 function testElements(_a, _b) { 10 a = _a; 11 b = _b; 12 13 shouldBe('a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_DISCONNECTED', 'Node.DOCUMENT_POSITION_DISCONNECTED'); 14 shouldBe('b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_DISCONNECTED', 'Node.DOCUMENT_POSITION_DISCONNECTED'); 15 shouldBe('a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC', 'Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC'); 16 shouldBe('b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC', 'Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC'); 17 shouldNotBe('a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_PRECEDING', 'b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_PRECEDING'); 18 shouldNotBe('a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING', 'b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_FOLLOWING'); 19 shouldBeNonZero('a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_PRECEDING || a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING'); 20 shouldBeNonZero('b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_PRECEDING || b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_FOLLOWING'); 21 // Make sure the returned result is consistent. 22 shouldBe('a.compareDocumentPosition(b)', 'a.compareDocumentPosition(b)'); 23 shouldBe('b.compareDocumentPosition(a)', 'b.compareDocumentPosition(a)'); 24 } 25 26 debug("* Test with 2 disconnected elements"); 27 testElements(document.createElement('a'), document.createElement('b')); 28 debug("* Test with document and a disconnected element"); 29 testElements(document, document.createElement('b')); 30 debug("* Test with document and a disconnected attribute"); 31 testElements(document, document.createAttribute('b')); 32 debug("* Test with 2 disconnected attributes"); 33 testElements(document.createAttribute("a"), document.createAttribute("b")); 34 debug("* Test with disconnected attribute and element"); 35 testElements(document.createAttribute("a"), document.createElement("b")); 15 36 </script> 16 37 <script src="../js/resources/js-test-post.js"></script> -
trunk/LayoutTests/fast/dom/shadow/compare-document-position-expected.txt
r136090 r153660 10 10 PASS b2.compareDocumentPosition(b1) is Node.DOCUMENT_POSITION_CONTAINS | Node.DOCUMENT_POSITION_PRECEDING 11 11 PASS b2.compareDocumentPosition(b3) is Node.DOCUMENT_POSITION_FOLLOWING 12 PASS a1.compareDocumentPosition(b1) is Node.DOCUMENT_POSITION_DISCONNECTED | Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC 13 PASS b1.compareDocumentPosition(c1) is Node.DOCUMENT_POSITION_DISCONNECTED | Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC 12 PASS a1.compareDocumentPosition(b1) & Node.DOCUMENT_POSITION_PRECEDING || a1.compareDocumentPosition(b1) & Node.DOCUMENT_POSITION_FOLLOWING is non-zero. 13 PASS a1.compareDocumentPosition(b1) & Node.DOCUMENT_POSITION_DISCONNECTED is Node.DOCUMENT_POSITION_DISCONNECTED 14 PASS a1.compareDocumentPosition(b1) & Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC is Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC 15 PASS a1.compareDocumentPosition(b1) is a1.compareDocumentPosition(b1) 16 PASS b1.compareDocumentPosition(c1) & Node.DOCUMENT_POSITION_PRECEDING || b1.compareDocumentPosition(c1) & Node.DOCUMENT_POSITION_FOLLOWING is non-zero. 17 PASS b1.compareDocumentPosition(c1) & Node.DOCUMENT_POSITION_DISCONNECTED is Node.DOCUMENT_POSITION_DISCONNECTED 18 PASS b1.compareDocumentPosition(c1) & Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC is Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC 19 PASS b1.compareDocumentPosition(c1) is b1.compareDocumentPosition(c1) 14 20 PASS successfullyParsed is true 15 21 -
trunk/LayoutTests/fast/dom/shadow/compare-document-position.html
r136090 r153660 46 46 shouldBe('b2.compareDocumentPosition(b3)', 'Node.DOCUMENT_POSITION_FOLLOWING'); 47 47 48 // The current implementation does not return FOLLOWING OR PRECEDING flag. 49 // We need a stable implementation which decides the total order between nodes in different shadow trees. 50 shouldBe('a1.compareDocumentPosition(b1)', 'Node.DOCUMENT_POSITION_DISCONNECTED | Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC'); 51 shouldBe('b1.compareDocumentPosition(c1)', 'Node.DOCUMENT_POSITION_DISCONNECTED | Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC'); 48 // Nodes in different shadow trees. 49 shouldBeNonZero('a1.compareDocumentPosition(b1) & Node.DOCUMENT_POSITION_PRECEDING || a1.compareDocumentPosition(b1) & Node.DOCUMENT_POSITION_FOLLOWING'); 50 shouldBe('a1.compareDocumentPosition(b1) & Node.DOCUMENT_POSITION_DISCONNECTED', 'Node.DOCUMENT_POSITION_DISCONNECTED'); 51 shouldBe('a1.compareDocumentPosition(b1) & Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC', 'Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC'); 52 shouldBe('a1.compareDocumentPosition(b1)', 'a1.compareDocumentPosition(b1)'); 53 shouldBeNonZero('b1.compareDocumentPosition(c1) & Node.DOCUMENT_POSITION_PRECEDING || b1.compareDocumentPosition(c1) & Node.DOCUMENT_POSITION_FOLLOWING'); 54 shouldBe('b1.compareDocumentPosition(c1) & Node.DOCUMENT_POSITION_DISCONNECTED', 'Node.DOCUMENT_POSITION_DISCONNECTED'); 55 shouldBe('b1.compareDocumentPosition(c1) & Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC', 'Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC'); 56 shouldBe('b1.compareDocumentPosition(c1)', 'b1.compareDocumentPosition(c1)'); 52 57 } 53 58 -
trunk/Source/WebCore/ChangeLog
r153655 r153660 1 2013-08-02 Christophe Dumez <ch.dumez@sisa.samsung.com> 2 3 compareDocumentPosition() should report PRECEDING or FOLLOWING information even if nodes are disconnected 4 https://bugs.webkit.org/show_bug.cgi?id=119316 5 6 Reviewed by Ryosuke Niwa. 7 8 As per the latest specification, compareDocumentPosition() should report PRECEDING or FOLLOWING 9 information even if nodes are disconnected: 10 - http://dom.spec.whatwg.org/#dom-node-comparedocumentposition 11 12 This behavior is consistent with both IE10, Firefox 22 and since recently Blink. 13 14 No new tests, covered by existing tests. 15 16 * dom/Node.cpp: 17 (WebCore::compareDetachedElementsPosition): 18 (WebCore::Node::compareDocumentPosition): 19 1 20 2013-08-02 Simon Fraser <simon.fraser@apple.com> 2 21 -
trunk/Source/WebCore/dom/Node.cpp
r152353 r153660 1622 1622 } 1623 1623 1624 static inline unsigned short compareDetachedElementsPosition(Node* firstNode, Node* secondNode) 1625 { 1626 // If the 2 nodes are not in the same tree, return the result of adding DOCUMENT_POSITION_DISCONNECTED, 1627 // DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC, and either DOCUMENT_POSITION_PRECEDING or 1628 // DOCUMENT_POSITION_FOLLOWING, with the constraint that this is to be consistent. Whether to return 1629 // DOCUMENT_POSITION_PRECEDING or DOCUMENT_POSITION_FOLLOWING is implemented here via pointer 1630 // comparison. 1631 // See step 3 in http://www.w3.org/TR/2012/WD-dom-20121206/#dom-node-comparedocumentposition 1632 unsigned short direction = (firstNode > secondNode) ? Node::DOCUMENT_POSITION_PRECEDING : Node::DOCUMENT_POSITION_FOLLOWING; 1633 return Node::DOCUMENT_POSITION_DISCONNECTED | Node::DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC | direction; 1634 } 1635 1624 1636 unsigned short Node::compareDocumentPosition(Node* otherNode) 1625 1637 { … … 1640 1652 // an orphaned attribute node. 1641 1653 if (!start1 || !start2) 1642 return DOCUMENT_POSITION_DISCONNECTED | DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC;1654 return compareDetachedElementsPosition(this, otherNode); 1643 1655 1644 1656 Vector<Node*, 16> chain1; … … 1676 1688 if (start1->inDocument() != start2->inDocument() || 1677 1689 start1->treeScope() != start2->treeScope()) 1678 return DOCUMENT_POSITION_DISCONNECTED | DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC;1690 return compareDetachedElementsPosition(this, otherNode); 1679 1691 1680 1692 // We need to find a common ancestor container, and then compare the indices of the two immediate children. … … 1689 1701 1690 1702 // If the two elements don't have a common root, they're not in the same tree. 1691 if (chain1[index1 - 1] != chain2[index2 - 1]) { 1692 unsigned short direction = (start1 > start2) ? DOCUMENT_POSITION_PRECEDING : DOCUMENT_POSITION_FOLLOWING; 1693 return DOCUMENT_POSITION_DISCONNECTED | DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC | direction; 1694 } 1703 if (chain1[index1 - 1] != chain2[index2 - 1]) 1704 return compareDetachedElementsPosition(this, otherNode); 1695 1705 1696 1706 // Walk the two chains backwards and look for the first difference.
Note: See TracChangeset
for help on using the changeset viewer.