mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
Fix step 14.2 of Range::ExtractContents
We need the last inclusive ancestor of start node that is not an inclusive ancestor of end node, not the first that is an inclusive ancestor of it.
This commit is contained in:
parent
be6940db59
commit
c0d79062b5
2 changed files with 3 additions and 19 deletions
|
@ -564,8 +564,9 @@ impl RangeMethods for Range {
|
|||
} else {
|
||||
// Step 14.1-2.
|
||||
let reference_node = start_node.ancestors()
|
||||
.find(|n| n.is_inclusive_ancestor_of(end_node.r()))
|
||||
.unwrap();
|
||||
.take_while(|n| !n.is_inclusive_ancestor_of(&end_node))
|
||||
.last()
|
||||
.unwrap_or(Root::from_ref(&start_node));
|
||||
// Step 14.3.
|
||||
(reference_node.GetParentNode().unwrap(), reference_node.index() + 1)
|
||||
};
|
||||
|
|
|
@ -1,17 +0,0 @@
|
|||
[Range-extractContents.html]
|
||||
type: testharness
|
||||
[Resulting cursor position for range 18 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\]]
|
||||
expected: FAIL
|
||||
|
||||
[Resulting cursor position for range 19 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\]]
|
||||
expected: FAIL
|
||||
|
||||
[Resulting cursor position for range 20 [paras[0\].firstChild, 3, paras[3\], 1\]]
|
||||
expected: FAIL
|
||||
|
||||
[Resulting cursor position for range 50 [paras[2\].firstChild, 4, comment, 2\]]
|
||||
expected: FAIL
|
||||
|
||||
[Resulting cursor position for range 51 [paras[3\], 1, comment, 8\]]
|
||||
expected: FAIL
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue