Implement base machinery of Range

The actual boundary points are behind a Rc<_> value to let nodes be able to store
weak references to them in the future.
This commit is contained in:
Anthony Ramine 2015-04-10 00:02:00 +02:00
parent 5386cb31d0
commit 184fb7bd86
19 changed files with 521 additions and 98593 deletions

View file

@ -1166,7 +1166,7 @@ impl<'a> DocumentMethods for JSRef<'a, Document> {
// https://dom.spec.whatwg.org/#dom-document-createrange
fn CreateRange(self) -> Temporary<Range> {
Range::new(self)
Range::new_with_doc(self)
}
// https://dom.spec.whatwg.org/#dom-document-createtreewalker

View file

@ -2,44 +2,512 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use dom::bindings::codegen::Bindings::RangeBinding;
use dom::bindings::codegen::Bindings::NodeBinding::NodeConstants;
use dom::bindings::codegen::Bindings::NodeBinding::NodeMethods;
use dom::bindings::codegen::Bindings::RangeBinding::{self, RangeConstants};
use dom::bindings::codegen::Bindings::RangeBinding::RangeMethods;
use dom::bindings::codegen::Bindings::WindowBinding::WindowMethods;
use dom::bindings::error::Fallible;
use dom::bindings::codegen::InheritTypes::NodeCast;
use dom::bindings::error::{Error, ErrorResult, Fallible};
use dom::bindings::global::GlobalRef;
use dom::bindings::js::{JSRef, Rootable, Temporary};
use dom::bindings::js::{JS, JSRef, MutHeap, Rootable, Temporary};
use dom::bindings::utils::{Reflector, reflect_dom_object};
use dom::document::{Document, DocumentHelpers};
use dom::node::{Node, NodeHelpers};
use std::cell::RefCell;
use std::cmp::{Ord, Ordering, PartialEq, PartialOrd};
use std::rc::Rc;
#[dom_struct]
pub struct Range {
reflector_: Reflector
reflector_: Reflector,
inner: Rc<RefCell<RangeInner>>,
}
impl Range {
fn new_inherited() -> Range {
fn new_inherited(start_container: JSRef<Node>, start_offset: u32,
end_container: JSRef<Node>, end_offset: u32) -> Range {
Range {
reflector_: Reflector::new()
reflector_: Reflector::new(),
inner: Rc::new(RefCell::new(RangeInner::new(
BoundaryPoint::new(start_container, start_offset),
BoundaryPoint::new(end_container, end_offset)))),
}
}
pub fn new(document: JSRef<Document>) -> Temporary<Range> {
pub fn new_with_doc(document: JSRef<Document>) -> Temporary<Range> {
let root = NodeCast::from_ref(document);
Range::new(document, root, 0, root, 0)
}
pub fn new(document: JSRef<Document>,
start_container: JSRef<Node>, start_offset: u32,
end_container: JSRef<Node>, end_offset: u32)
-> Temporary<Range> {
let window = document.window().root();
reflect_dom_object(box Range::new_inherited(),
reflect_dom_object(box Range::new_inherited(start_container, start_offset,
end_container, end_offset),
GlobalRef::Window(window.r()),
RangeBinding::Wrap)
}
// https://dom.spec.whatwg.org/#dom-range
pub fn Constructor(global: GlobalRef) -> Fallible<Temporary<Range>> {
let document = global.as_window().Document().root();
Ok(Range::new(document.r()))
Ok(Range::new_with_doc(document.r()))
}
}
pub trait RangeHelpers<'a> {
fn inner(self) -> &'a Rc<RefCell<RangeInner>>;
}
impl<'a> RangeHelpers<'a> for JSRef<'a, Range> {
fn inner(self) -> &'a Rc<RefCell<RangeInner>> {
&self.extended_deref().inner
}
}
impl<'a> RangeMethods for JSRef<'a, Range> {
/// https://dom.spec.whatwg.org/#dom-range-detach
// http://dom.spec.whatwg.org/#dom-range-startcontainer
fn StartContainer(self) -> Temporary<Node> {
self.inner().borrow().start.node()
}
/// http://dom.spec.whatwg.org/#dom-range-startoffset
fn StartOffset(self) -> u32 {
self.inner().borrow().start.offset
}
/// http://dom.spec.whatwg.org/#dom-range-endcontainer
fn EndContainer(self) -> Temporary<Node> {
self.inner().borrow().end.node()
}
/// http://dom.spec.whatwg.org/#dom-range-endoffset
fn EndOffset(self) -> u32 {
self.inner().borrow().end.offset
}
// https://dom.spec.whatwg.org/#dom-range-collapsed
fn Collapsed(self) -> bool {
let inner = self.inner().borrow();
inner.start == inner.end
}
// https://dom.spec.whatwg.org/#dom-range-commonancestorcontainer
fn CommonAncestorContainer(self) -> Temporary<Node> {
self.inner().borrow().common_ancestor_container()
}
// https://dom.spec.whatwg.org/#dom-range-setstartnode-offset
fn SetStart(self, node: JSRef<Node>, offset: u32) -> ErrorResult {
if node.is_doctype() {
// Step 1.
Err(Error::InvalidNodeType)
} else if offset > node.len() {
// Step 2.
Err(Error::IndexSize)
} else {
// Step 3-4.
self.inner().borrow_mut().set_start(node, offset);
Ok(())
}
}
// https://dom.spec.whatwg.org/#dom-range-setendnode-offset
fn SetEnd(self, node: JSRef<Node>, offset: u32) -> ErrorResult {
if node.is_doctype() {
// Step 1.
Err(Error::InvalidNodeType)
} else if offset > node.len() {
// Step 2.
Err(Error::IndexSize)
} else {
// Step 3-4.
self.inner().borrow_mut().set_end(node, offset);
Ok(())
}
}
// https://dom.spec.whatwg.org/#dom-range-setstartbeforenode
fn SetStartBefore(self, node: JSRef<Node>) -> ErrorResult {
let parent = try!(node.parent_node().ok_or(Error::InvalidNodeType)).root();
self.SetStart(parent.r(), node.index())
}
// https://dom.spec.whatwg.org/#dom-range-setstartafternode
fn SetStartAfter(self, node: JSRef<Node>) -> ErrorResult {
let parent = try!(node.parent_node().ok_or(Error::InvalidNodeType)).root();
self.SetStart(parent.r(), node.index() + 1)
}
// https://dom.spec.whatwg.org/#dom-range-setendbeforenode
fn SetEndBefore(self, node: JSRef<Node>) -> ErrorResult {
let parent = try!(node.parent_node().ok_or(Error::InvalidNodeType)).root();
self.SetEnd(parent.r(), node.index())
}
// https://dom.spec.whatwg.org/#dom-range-setendafternode
fn SetEndAfter(self, node: JSRef<Node>) -> ErrorResult {
let parent = try!(node.parent_node().ok_or(Error::InvalidNodeType)).root();
self.SetEnd(parent.r(), node.index() + 1)
}
// https://dom.spec.whatwg.org/#dom-range-collapsetostart
fn Collapse(self, to_start: bool) {
self.inner().borrow_mut().collapse(to_start);
}
// https://dom.spec.whatwg.org/#dom-range-selectnodenode
fn SelectNode(self, node: JSRef<Node>) -> ErrorResult {
self.inner().borrow_mut().select_node(node)
}
// https://dom.spec.whatwg.org/#dom-range-selectnodecontentsnode
fn SelectNodeContents(self, node: JSRef<Node>) -> ErrorResult {
self.inner().borrow_mut().select_node_contents(node)
}
// https://dom.spec.whatwg.org/#dom-range-compareboundarypointshow-sourcerange
fn CompareBoundaryPoints(self, how: u16, source_range: JSRef<Range>)
-> Fallible<i16> {
if how > RangeConstants::END_TO_START {
// Step 1.
return Err(Error::NotSupported);
}
let this_inner = self.inner().borrow();
let other_inner = source_range.inner().borrow();
let this_start_node = this_inner.start.node().root();
let other_start_node = other_inner.start.node().root();
let this_root = this_start_node.r().inclusive_ancestors().last().unwrap();
let other_root = other_start_node.r().inclusive_ancestors().last().unwrap();
if this_root != other_root {
// Step 2.
return Err(Error::WrongDocument);
}
// Step 3.
let (this_point, other_point) = match how {
RangeConstants::START_TO_START => {
(&this_inner.start, &other_inner.start)
},
RangeConstants::START_TO_END => {
(&this_inner.end, &other_inner.start)
},
RangeConstants::END_TO_END => {
(&this_inner.end, &other_inner.end)
},
RangeConstants::END_TO_START => {
(&this_inner.start, &other_inner.end)
},
_ => unreachable!(),
};
// step 4.
match this_point.partial_cmp(other_point).unwrap() {
Ordering::Less => Ok(-1),
Ordering::Equal => Ok(0),
Ordering::Greater => Ok(1),
}
}
// https://dom.spec.whatwg.org/#dom-range-clonerange
fn CloneRange(self) -> Temporary<Range> {
let inner = self.inner().borrow();
let start = &inner.start;
let end = &inner.end;
let start_node = start.node().root();
let owner_doc = NodeCast::from_ref(start_node.r()).owner_doc().root();
Range::new(owner_doc.r(), start_node.r(), start.offset,
end.node().root().r(), end.offset)
}
// https://dom.spec.whatwg.org/#dom-range-ispointinrangenode-offset
fn IsPointInRange(self, node: JSRef<Node>, offset: u32) -> Fallible<bool> {
match self.inner().borrow().compare_point(node, offset) {
Ok(Ordering::Less) => Ok(false),
Ok(Ordering::Equal) => Ok(true),
Ok(Ordering::Greater) => Ok(false),
Err(Error::WrongDocument) => {
// Step 2.
Ok(false)
}
Err(error) => Err(error),
}
}
// https://dom.spec.whatwg.org/#dom-range-comparepointnode-offset
fn ComparePoint(self, node: JSRef<Node>, offset: u32) -> Fallible<i16> {
self.inner().borrow().compare_point(node, offset).map(|order| {
match order {
Ordering::Less => -1,
Ordering::Equal => 0,
Ordering::Greater => 1,
}
})
}
// https://dom.spec.whatwg.org/#dom-range-intersectsnodenode
fn IntersectsNode(self, node: JSRef<Node>) -> bool {
let inner = self.inner().borrow();
let start = &inner.start;
let start_node = start.node().root();
let start_offset = start.offset;
let start_node_root = start_node.r().inclusive_ancestors().last().unwrap().root();
let node_root = node.inclusive_ancestors().last().unwrap().root();
if start_node_root.r() != node_root.r() {
// Step 1.
return false;
}
let parent = match node.parent_node() {
Some(parent) => parent,
None => {
// Step 3.
return true;
},
}.root();
// Step 4.
let offset = node.index();
let end = &inner.end;
let end_node = end.node().root();
let end_offset = end.offset;
match (bp_position(parent.r(), offset + 1, start_node.r(), start_offset).unwrap(),
bp_position(parent.r(), offset, end_node.r(), end_offset).unwrap()) {
(Ordering::Greater, Ordering::Less) => {
// Step 5.
true
},
_ => {
// Step 6.
false
}
}
}
// http://dom.spec.whatwg.org/#dom-range-detach
fn Detach(self) {
// This method intentionally left blank.
}
}
#[jstraceable]
#[must_root]
#[privatize]
pub struct RangeInner {
start: BoundaryPoint,
end: BoundaryPoint,
}
impl RangeInner {
fn new(start: BoundaryPoint, end: BoundaryPoint) -> RangeInner {
RangeInner { start: start, end: end }
}
// https://dom.spec.whatwg.org/#dom-range-commonancestorcontainer
fn common_ancestor_container(&self) -> Temporary<Node> {
let start_container = self.start.node().root();
let end_container = self.end.node().root();
// Step 1.
for container in start_container.r().inclusive_ancestors() {
// Step 2.
if container.root().r().is_inclusive_ancestor_of(end_container.r()) {
// Step 3.
return container;
}
}
unreachable!();
}
// https://dom.spec.whatwg.org/#concept-range-bp-set
pub fn set_start(&mut self, bp_node: JSRef<Node>, bp_offset: u32) {
// Steps 1-3 handled in Range caller.
let end_node = self.end.node().root();
let end_offset = self.end.offset;
match bp_position(bp_node, bp_offset, end_node.r(), end_offset) {
None | Some(Ordering::Greater) => {
// Step 4-1.
self.end.set(bp_node, bp_offset);
},
_ => {},
};
// Step 4-2.
self.start.set(bp_node, bp_offset);
}
// https://dom.spec.whatwg.org/#concept-range-bp-set
pub fn set_end(&mut self, bp_node: JSRef<Node>, bp_offset: u32) {
// Steps 1-3 handled in Range caller.
let start_node = self.start.node().root();
let start_offset = self.start.offset;
match bp_position(bp_node, bp_offset, start_node.r(), start_offset) {
None | Some(Ordering::Less) => {
// Step 4-1.
self.start.set(bp_node, bp_offset);
},
_ => {},
};
// Step 4-2.
self.end.set(bp_node, bp_offset);
}
// https://dom.spec.whatwg.org/#dom-range-collapsetostart
fn collapse(&mut self, to_start: bool) {
if to_start {
let start_node = self.start.node().root();
self.end.set(start_node.r(), self.start.offset);
} else {
let end_node = self.end.node().root();
self.start.set(end_node.r(), self.end.offset);
}
}
// https://dom.spec.whatwg.org/#dom-range-selectnodenode
fn select_node(&mut self, node: JSRef<Node>) -> ErrorResult {
// Steps 1, 2.
let parent = try!(node.parent_node().ok_or(Error::InvalidNodeType)).root();
// Step 3.
let index = node.index();
// Step 4.
self.start.set(parent.r(), index);
// Step 5.
self.end.set(parent.r(), index + 1);
Ok(())
}
// https://dom.spec.whatwg.org/#dom-range-selectnodecontentsnode
fn select_node_contents(&mut self, node: JSRef<Node>) -> ErrorResult {
if node.is_doctype() {
// Step 1.
return Err(Error::InvalidNodeType);
}
// Step 2.
let length = node.len();
// Step 3.
self.start.set(node, 0);
// Step 4.
self.end.set(node, length);
Ok(())
}
// https://dom.spec.whatwg.org/#dom-range-comparepointnode-offset
fn compare_point(&self, node: JSRef<Node>, offset: u32) -> Fallible<Ordering> {
let start = &self.start;
let start_node = start.node().root();
let start_offset = start.offset;
let start_node_root = start_node.r().inclusive_ancestors().last().unwrap().root();
let node_root = node.inclusive_ancestors().last().unwrap().root();
if start_node_root.r() != node_root.r() {
// Step 1.
return Err(Error::WrongDocument);
}
if node.is_doctype() {
// Step 2.
return Err(Error::InvalidNodeType);
}
if offset > node.len() {
// Step 3.
return Err(Error::IndexSize);
}
if let Ordering::Less = bp_position(node, offset, start_node.r(), start_offset).unwrap() {
// Step 4.
return Ok(Ordering::Less);
}
let end = &self.end;
let end_node = end.node().root();
let end_offset = end.offset;
if let Ordering::Greater = bp_position(node, offset, end_node.r(), end_offset).unwrap() {
// Step 5.
return Ok(Ordering::Greater);
}
// Step 6.
Ok(Ordering::Equal)
}
}
#[jstraceable]
#[must_root]
#[privatize]
pub struct BoundaryPoint {
node: MutHeap<JS<Node>>,
offset: u32,
}
impl BoundaryPoint {
fn new(node: JSRef<Node>, offset: u32) -> BoundaryPoint {
debug_assert!(!node.is_doctype());
debug_assert!(offset <= node.len());
BoundaryPoint {
node: MutHeap::new(JS::from_rooted(node)),
offset: offset,
}
}
pub fn node(&self) -> Temporary<Node> {
Temporary::from_rooted(self.node.get())
}
pub fn offset(&self) -> u32 {
self.offset
}
fn set(&mut self, node: JSRef<Node>, offset: u32) {
debug_assert!(!node.is_doctype());
debug_assert!(offset <= node.len());
self.node.set(JS::from_rooted(node));
self.offset = offset;
}
}
#[allow(unrooted_must_root)]
impl PartialOrd for BoundaryPoint {
fn partial_cmp(&self, other: &Self) -> Option<Ordering> {
bp_position(self.node().root().r(), self.offset,
other.node().root().r(), other.offset)
}
}
#[allow(unrooted_must_root)]
impl PartialEq for BoundaryPoint {
fn eq(&self, other: &Self) -> bool {
self.node().root().r() == other.node().root().r() &&
self.offset == other.offset
}
}
// https://dom.spec.whatwg.org/#concept-range-bp-position
fn bp_position(a_node: JSRef<Node>, a_offset: u32,
b_node: JSRef<Node>, b_offset: u32)
-> Option<Ordering> {
if a_node == b_node {
// Step 1.
return Some(a_offset.cmp(&b_offset));
}
let position = b_node.CompareDocumentPosition(a_node);
if position & NodeConstants::DOCUMENT_POSITION_DISCONNECTED != 0 {
// No order is defined for nodes not in the same tree.
None
} else if position & NodeConstants::DOCUMENT_POSITION_FOLLOWING != 0 {
// Step 2.
match bp_position(b_node, b_offset, a_node, a_offset).unwrap() {
Ordering::Less => Some(Ordering::Greater),
Ordering::Greater => Some(Ordering::Less),
Ordering::Equal => unreachable!(),
}
} else if position & NodeConstants::DOCUMENT_POSITION_CONTAINS != 0 {
// Step 3-1, 3-2.
let b_ancestors = b_node.inclusive_ancestors();
let ref child = b_ancestors.map(|child| child.root()).find(|child| {
child.r().parent_node().unwrap().root().r() == a_node
}).unwrap();
// Step 3-3.
if child.r().index() < a_offset {
Some(Ordering::Greater)
} else {
// Step 4.
Some(Ordering::Less)
}
} else {
// Step 4.
Some(Ordering::Less)
}
}

View file

@ -9,76 +9,71 @@
* http://dvcs.w3.org/hg/csswg/raw-file/tip/cssom-view/Overview.html#extensions-to-the-range-interface
*/
[Constructor]
[Constructor /*, Exposed=Window */]
interface Range {
// [Throws]
// readonly attribute Node startContainer;
// [Throws]
// readonly attribute unsigned long startOffset;
// [Throws]
// readonly attribute Node endContainer;
// [Throws]
// readonly attribute unsigned long endOffset;
// readonly attribute boolean collapsed;
// [Throws]
// readonly attribute Node commonAncestorContainer;
readonly attribute Node startContainer;
readonly attribute unsigned long startOffset;
readonly attribute Node endContainer;
readonly attribute unsigned long endOffset;
readonly attribute boolean collapsed;
readonly attribute Node commonAncestorContainer;
// [Throws]
// void setStart(Node refNode, unsigned long offset);
// [Throws]
// void setEnd(Node refNode, unsigned long offset);
// [Throws]
// void setStartBefore(Node refNode);
// [Throws]
// void setStartAfter(Node refNode);
// [Throws]
// void setEndBefore(Node refNode);
// [Throws]
// void setEndAfter(Node refNode);
// void collapse(optional boolean toStart = false);
// [Throws]
// void selectNode(Node refNode);
// [Throws]
// void selectNodeContents(Node refNode);
[Throws]
void setStart(Node refNode, unsigned long offset);
[Throws]
void setEnd(Node refNode, unsigned long offset);
[Throws]
void setStartBefore(Node refNode);
[Throws]
void setStartAfter(Node refNode);
[Throws]
void setEndBefore(Node refNode);
[Throws]
void setEndAfter(Node refNode);
void collapse(optional boolean toStart = false);
[Throws]
void selectNode(Node refNode);
[Throws]
void selectNodeContents(Node refNode);
// const unsigned short START_TO_START = 0;
// const unsigned short START_TO_END = 1;
// const unsigned short END_TO_END = 2;
// const unsigned short END_TO_START = 3;
// [Throws]
// short compareBoundaryPoints(unsigned short how, Range sourceRange);
const unsigned short START_TO_START = 0;
const unsigned short START_TO_END = 1;
const unsigned short END_TO_END = 2;
const unsigned short END_TO_START = 3;
[Throws]
short compareBoundaryPoints(unsigned short how, Range sourceRange);
// [Throws]
// void deleteContents();
// [Throws]
// [NewObject, Throws]
// DocumentFragment extractContents();
// [Throws]
// [NewObject, Throws]
// DocumentFragment cloneContents();
// [Throws]
// void insertNode(Node node);
// [Throws]
// void surroundContents(Node newParent);
// Range cloneRange();
[NewObject]
Range cloneRange();
void detach();
// [Throws]
// boolean isPointInRange(Node node, unsigned long offset);
// [Throws]
// short comparePoint(Node node, unsigned long offset);
[Throws]
boolean isPointInRange(Node node, unsigned long offset);
[Throws]
short comparePoint(Node node, unsigned long offset);
// [Throws]
// boolean intersectsNode(Node node);
boolean intersectsNode(Node node);
// stringifier;
};
// https://domparsing.spec.whatwg.org/#dom-range-createcontextualfragment
// https://dvcs.w3.org/hg/innerhtml/raw-file/tip/index.html#extensions-to-the-range-interface
partial interface Range {
// [Throws]
// [NewObject, Throws]
// DocumentFragment createContextualFragment(DOMString fragment);
};//
//// http://dvcs.w3.org/hg/csswg/raw-file/tip/cssom-view/Overview.html#extensions-to-the-range-interface
// http://dev.w3.org/csswg/cssom-view/#extensions-to-the-range-interface
partial interface Range {
// DOMRectList? getClientRects();
// DOMRect getBoundingClientRect();

View file

@ -384,84 +384,9 @@
[CharacterData interface: calling after([object Object\],[object Object\]) on document.createComment("abc") with too few arguments must throw TypeError]
expected: FAIL
[CharacterData interface: calling replaceWith([object Object\],[object Object\]) on document.createComment("abc") with too few arguments must throw TypeError]
expected: FAIL
[Range interface object length]
expected: FAIL
[Range interface: attribute startContainer]
expected: FAIL
[Range interface: attribute startOffset]
expected: FAIL
[Range interface: attribute endContainer]
expected: FAIL
[Range interface: attribute endOffset]
expected: FAIL
[Range interface: attribute collapsed]
expected: FAIL
[Range interface: attribute commonAncestorContainer]
expected: FAIL
[Range interface: operation setStart(Node,unsigned long)]
expected: FAIL
[Range interface: operation setEnd(Node,unsigned long)]
expected: FAIL
[Range interface: operation setStartBefore(Node)]
expected: FAIL
[Range interface: operation setStartAfter(Node)]
expected: FAIL
[Range interface: operation setEndBefore(Node)]
expected: FAIL
[Range interface: operation setEndAfter(Node)]
expected: FAIL
[Range interface: operation collapse(boolean)]
expected: FAIL
[Range interface: operation selectNode(Node)]
expected: FAIL
[Range interface: operation selectNodeContents(Node)]
expected: FAIL
[Range interface: constant START_TO_START on interface object]
expected: FAIL
[Range interface: constant START_TO_START on interface prototype object]
expected: FAIL
[Range interface: constant START_TO_END on interface object]
expected: FAIL
[Range interface: constant START_TO_END on interface prototype object]
expected: FAIL
[Range interface: constant END_TO_END on interface object]
expected: FAIL
[Range interface: constant END_TO_END on interface prototype object]
expected: FAIL
[Range interface: constant END_TO_START on interface object]
expected: FAIL
[Range interface: constant END_TO_START on interface prototype object]
expected: FAIL
[Range interface: operation compareBoundaryPoints(unsigned short,Range)]
expected: FAIL
[Range interface: operation deleteContents()]
expected: FAIL
@ -477,111 +402,9 @@
[Range interface: operation surroundContents(Node)]
expected: FAIL
[Range interface: operation cloneRange()]
expected: FAIL
[Range interface: operation isPointInRange(Node,unsigned long)]
expected: FAIL
[Range interface: operation comparePoint(Node,unsigned long)]
expected: FAIL
[Range interface: operation intersectsNode(Node)]
expected: FAIL
[Range interface: stringifier]
expected: FAIL
[Range interface: document.createRange() must inherit property "startContainer" with the proper type (0)]
expected: FAIL
[Range interface: document.createRange() must inherit property "startOffset" with the proper type (1)]
expected: FAIL
[Range interface: document.createRange() must inherit property "endContainer" with the proper type (2)]
expected: FAIL
[Range interface: document.createRange() must inherit property "endOffset" with the proper type (3)]
expected: FAIL
[Range interface: document.createRange() must inherit property "collapsed" with the proper type (4)]
expected: FAIL
[Range interface: document.createRange() must inherit property "commonAncestorContainer" with the proper type (5)]
expected: FAIL
[Range interface: document.createRange() must inherit property "setStart" with the proper type (6)]
expected: FAIL
[Range interface: calling setStart(Node,unsigned long) on document.createRange() with too few arguments must throw TypeError]
expected: FAIL
[Range interface: document.createRange() must inherit property "setEnd" with the proper type (7)]
expected: FAIL
[Range interface: calling setEnd(Node,unsigned long) on document.createRange() with too few arguments must throw TypeError]
expected: FAIL
[Range interface: document.createRange() must inherit property "setStartBefore" with the proper type (8)]
expected: FAIL
[Range interface: calling setStartBefore(Node) on document.createRange() with too few arguments must throw TypeError]
expected: FAIL
[Range interface: document.createRange() must inherit property "setStartAfter" with the proper type (9)]
expected: FAIL
[Range interface: calling setStartAfter(Node) on document.createRange() with too few arguments must throw TypeError]
expected: FAIL
[Range interface: document.createRange() must inherit property "setEndBefore" with the proper type (10)]
expected: FAIL
[Range interface: calling setEndBefore(Node) on document.createRange() with too few arguments must throw TypeError]
expected: FAIL
[Range interface: document.createRange() must inherit property "setEndAfter" with the proper type (11)]
expected: FAIL
[Range interface: calling setEndAfter(Node) on document.createRange() with too few arguments must throw TypeError]
expected: FAIL
[Range interface: document.createRange() must inherit property "collapse" with the proper type (12)]
expected: FAIL
[Range interface: calling collapse(boolean) on document.createRange() with too few arguments must throw TypeError]
expected: FAIL
[Range interface: document.createRange() must inherit property "selectNode" with the proper type (13)]
expected: FAIL
[Range interface: calling selectNode(Node) on document.createRange() with too few arguments must throw TypeError]
expected: FAIL
[Range interface: document.createRange() must inherit property "selectNodeContents" with the proper type (14)]
expected: FAIL
[Range interface: calling selectNodeContents(Node) on document.createRange() with too few arguments must throw TypeError]
expected: FAIL
[Range interface: document.createRange() must inherit property "START_TO_START" with the proper type (15)]
expected: FAIL
[Range interface: document.createRange() must inherit property "START_TO_END" with the proper type (16)]
expected: FAIL
[Range interface: document.createRange() must inherit property "END_TO_END" with the proper type (17)]
expected: FAIL
[Range interface: document.createRange() must inherit property "END_TO_START" with the proper type (18)]
expected: FAIL
[Range interface: document.createRange() must inherit property "compareBoundaryPoints" with the proper type (19)]
expected: FAIL
[Range interface: calling compareBoundaryPoints(unsigned short,Range) on document.createRange() with too few arguments must throw TypeError]
expected: FAIL
[Range interface: document.createRange() must inherit property "deleteContents" with the proper type (20)]
expected: FAIL
@ -603,117 +426,6 @@
[Range interface: calling surroundContents(Node) on document.createRange() with too few arguments must throw TypeError]
expected: FAIL
[Range interface: document.createRange() must inherit property "cloneRange" with the proper type (25)]
expected: FAIL
[Range interface: document.createRange() must inherit property "isPointInRange" with the proper type (27)]
expected: FAIL
[Range interface: calling isPointInRange(Node,unsigned long) on document.createRange() with too few arguments must throw TypeError]
expected: FAIL
[Range interface: document.createRange() must inherit property "comparePoint" with the proper type (28)]
expected: FAIL
[Range interface: calling comparePoint(Node,unsigned long) on document.createRange() with too few arguments must throw TypeError]
expected: FAIL
[Range interface: document.createRange() must inherit property "intersectsNode" with the proper type (29)]
expected: FAIL
[Range interface: calling intersectsNode(Node) on document.createRange() with too few arguments must throw TypeError]
expected: FAIL
[Range interface: detachedRange must inherit property "startContainer" with the proper type (0)]
expected: FAIL
[Range interface: detachedRange must inherit property "startOffset" with the proper type (1)]
expected: FAIL
[Range interface: detachedRange must inherit property "endContainer" with the proper type (2)]
expected: FAIL
[Range interface: detachedRange must inherit property "endOffset" with the proper type (3)]
expected: FAIL
[Range interface: detachedRange must inherit property "collapsed" with the proper type (4)]
expected: FAIL
[Range interface: detachedRange must inherit property "commonAncestorContainer" with the proper type (5)]
expected: FAIL
[Range interface: detachedRange must inherit property "setStart" with the proper type (6)]
expected: FAIL
[Range interface: calling setStart(Node,unsigned long) on detachedRange with too few arguments must throw TypeError]
expected: FAIL
[Range interface: detachedRange must inherit property "setEnd" with the proper type (7)]
expected: FAIL
[Range interface: calling setEnd(Node,unsigned long) on detachedRange with too few arguments must throw TypeError]
expected: FAIL
[Range interface: detachedRange must inherit property "setStartBefore" with the proper type (8)]
expected: FAIL
[Range interface: calling setStartBefore(Node) on detachedRange with too few arguments must throw TypeError]
expected: FAIL
[Range interface: detachedRange must inherit property "setStartAfter" with the proper type (9)]
expected: FAIL
[Range interface: calling setStartAfter(Node) on detachedRange with too few arguments must throw TypeError]
expected: FAIL
[Range interface: detachedRange must inherit property "setEndBefore" with the proper type (10)]
expected: FAIL
[Range interface: calling setEndBefore(Node) on detachedRange with too few arguments must throw TypeError]
expected: FAIL
[Range interface: detachedRange must inherit property "setEndAfter" with the proper type (11)]
expected: FAIL
[Range interface: calling setEndAfter(Node) on detachedRange with too few arguments must throw TypeError]
expected: FAIL
[Range interface: detachedRange must inherit property "collapse" with the proper type (12)]
expected: FAIL
[Range interface: calling collapse(boolean) on detachedRange with too few arguments must throw TypeError]
expected: FAIL
[Range interface: detachedRange must inherit property "selectNode" with the proper type (13)]
expected: FAIL
[Range interface: calling selectNode(Node) on detachedRange with too few arguments must throw TypeError]
expected: FAIL
[Range interface: detachedRange must inherit property "selectNodeContents" with the proper type (14)]
expected: FAIL
[Range interface: calling selectNodeContents(Node) on detachedRange with too few arguments must throw TypeError]
expected: FAIL
[Range interface: detachedRange must inherit property "START_TO_START" with the proper type (15)]
expected: FAIL
[Range interface: detachedRange must inherit property "START_TO_END" with the proper type (16)]
expected: FAIL
[Range interface: detachedRange must inherit property "END_TO_END" with the proper type (17)]
expected: FAIL
[Range interface: detachedRange must inherit property "END_TO_START" with the proper type (18)]
expected: FAIL
[Range interface: detachedRange must inherit property "compareBoundaryPoints" with the proper type (19)]
expected: FAIL
[Range interface: calling compareBoundaryPoints(unsigned short,Range) on detachedRange with too few arguments must throw TypeError]
expected: FAIL
[Range interface: detachedRange must inherit property "deleteContents" with the proper type (20)]
expected: FAIL
@ -735,30 +447,6 @@
[Range interface: calling surroundContents(Node) on detachedRange with too few arguments must throw TypeError]
expected: FAIL
[Range interface: detachedRange must inherit property "cloneRange" with the proper type (25)]
expected: FAIL
[Range interface: detachedRange must inherit property "isPointInRange" with the proper type (27)]
expected: FAIL
[Range interface: calling isPointInRange(Node,unsigned long) on detachedRange with too few arguments must throw TypeError]
expected: FAIL
[Range interface: detachedRange must inherit property "comparePoint" with the proper type (28)]
expected: FAIL
[Range interface: calling comparePoint(Node,unsigned long) on detachedRange with too few arguments must throw TypeError]
expected: FAIL
[Range interface: detachedRange must inherit property "intersectsNode" with the proper type (29)]
expected: FAIL
[Range interface: calling intersectsNode(Node) on detachedRange with too few arguments must throw TypeError]
expected: FAIL
[NodeIterator interface object length]
expected: FAIL
[NodeIterator interface: attribute root]
expected: FAIL

View file

@ -42,27 +42,15 @@
[characterData Comment: data mutations]
expected: FAIL
[Range (r70) is created]
expected: FAIL
[characterData Range.deleteContents: child and data removal mutation]
expected: FAIL
[Range (r71) is created]
expected: FAIL
[characterData Range.deleteContents: child and data removal mutation (2)]
expected: FAIL
[Range (r80) is created]
expected: FAIL
[characterData Range.extractContents: child and data removal mutation]
expected: FAIL
[Range (r81) is created]
expected: FAIL
[characterData Range.extractContents: child and data removal mutation (2)]
expected: FAIL

View file

@ -69,45 +69,24 @@
[childList Node.removeChild: removal mutation]
expected: FAIL
[Range (r70) is created]
expected: FAIL
[childList Range.deleteContents: child removal mutation]
expected: FAIL
[Range (r71) is created]
expected: FAIL
[childList Range.deleteContents: child and data removal mutation]
expected: FAIL
[Range (r80) is created]
expected: FAIL
[childList Range.extractContents: child removal mutation]
expected: FAIL
[Range (r81) is created]
expected: FAIL
[childList Range.extractContents: child and data removal mutation]
expected: FAIL
[Range (r90) is created]
expected: FAIL
[childList Range.insertNode: child insertion mutation]
expected: FAIL
[Range (r91) is created]
expected: FAIL
[childList Range.insertNode: children insertion mutation]
expected: FAIL
[Range (r100) is created]
expected: FAIL
[childList Range.surroundContents: children removal and addition mutation]
expected: FAIL

View file

@ -1,5 +0,0 @@
[Range-attributes.html]
type: testharness
[Range attributes]
expected: FAIL

View file

@ -1,179 +0,0 @@
[Range-cloneRange.html]
type: testharness
[Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]]
expected: FAIL
[Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]]
expected: FAIL
[Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\]]
expected: FAIL
[Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\]]
expected: FAIL
[Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\]]
expected: FAIL
[Range 5 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\]]
expected: FAIL
[Range 6 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]]
expected: FAIL
[Range 7 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\]]
expected: FAIL
[Range 8 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\]]
expected: FAIL
[Range 9 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\]]
expected: FAIL
[Range 10 [document.documentElement, 0, document.documentElement, 1\]]
expected: FAIL
[Range 11 [document.documentElement, 0, document.documentElement, 2\]]
expected: FAIL
[Range 12 [document.documentElement, 1, document.documentElement, 2\]]
expected: FAIL
[Range 13 [document.head, 1, document.head, 1\]]
expected: FAIL
[Range 14 [document.body, 4, document.body, 5\]]
expected: FAIL
[Range 15 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\]]
expected: FAIL
[Range 16 [paras[0\], 0, paras[0\], 1\]]
expected: FAIL
[Range 17 [detachedPara1, 0, detachedPara1, 1\]]
expected: FAIL
[Range 18 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\]]
expected: FAIL
[Range 19 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\]]
expected: FAIL
[Range 20 [paras[0\].firstChild, 3, paras[3\], 1\]]
expected: FAIL
[Range 21 [paras[0\], 0, paras[0\].firstChild, 7\]]
expected: FAIL
[Range 22 [testDiv, 2, paras[4\], 1\]]
expected: FAIL
[Range 23 [document, 0, document, 1\]]
expected: FAIL
[Range 24 [document, 0, document, 2\]]
expected: FAIL
[Range 25 [comment, 2, comment, 3\]]
expected: FAIL
[Range 26 [testDiv, 0, comment, 5\]]
expected: FAIL
[Range 27 [foreignDoc, 1, foreignComment, 2\]]
expected: FAIL
[Range 28 [foreignDoc.body, 0, foreignTextNode, 36\]]
expected: FAIL
[Range 29 [xmlDoc, 1, xmlComment, 0\]]
expected: FAIL
[Range 30 [detachedTextNode, 0, detachedTextNode, 8\]]
expected: FAIL
[Range 31 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\]]
expected: FAIL
[Range 32 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\]]
expected: FAIL
[Range 33 [detachedComment, 3, detachedComment, 4\]]
expected: FAIL
[Range 34 [detachedForeignComment, 0, detachedForeignComment, 1\]]
expected: FAIL
[Range 35 [detachedXmlComment, 2, detachedXmlComment, 6\]]
expected: FAIL
[Range 36 [docfrag, 0, docfrag, 0\]]
expected: FAIL
[Range 37 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\]]
expected: FAIL
[Range 38 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\]]
expected: FAIL
[Range 39 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\]]
expected: FAIL
[Range 40 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\]]
expected: FAIL
[Range 41 [foreignDoc.head, 1, foreignDoc.head, 1\]]
expected: FAIL
[Range 42 [foreignDoc.body, 0, foreignDoc.body, 0\]]
expected: FAIL
[Range 43 [paras[0\], 0, paras[0\], 0\]]
expected: FAIL
[Range 44 [detachedPara1, 0, detachedPara1, 0\]]
expected: FAIL
[Range 45 [testDiv, 1, paras[2\].firstChild, 5\]]
expected: FAIL
[Range 46 [document.documentElement, 1, document.body, 0\]]
expected: FAIL
[Range 47 [foreignDoc.documentElement, 1, foreignDoc.body, 0\]]
expected: FAIL
[Range 48 [document, 1, document, 2\]]
expected: FAIL
[Range 49 [paras[2\].firstChild, 4, comment, 2\]]
expected: FAIL
[Range 50 [paras[3\], 1, comment, 8\]]
expected: FAIL
[Range 51 [foreignDoc, 0, foreignDoc, 0\]]
expected: FAIL
[Range 52 [xmlDoc, 0, xmlDoc, 0\]]
expected: FAIL
[Range 53 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\]]
expected: FAIL
[Range 54 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\]]
expected: FAIL
[Range 55 [detachedComment, 5, detachedComment, 5\]]
expected: FAIL
[Range 56 [detachedForeignComment, 4, detachedForeignComment, 4\]]
expected: FAIL
[Range 57 [foreignDocfrag, 0, foreignDocfrag, 0\]]
expected: FAIL
[Range 58 [xmlDocfrag, 0, xmlDocfrag, 0\]]
expected: FAIL

View file

@ -1,533 +0,0 @@
[Range-collapse.html]
type: testharness
[Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\], toStart true]
expected: FAIL
[Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\], toStart false]
expected: FAIL
[Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\], toStart omitted]
expected: FAIL
[Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\], toStart true]
expected: FAIL
[Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\], toStart false]
expected: FAIL
[Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\], toStart omitted]
expected: FAIL
[Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\], toStart true]
expected: FAIL
[Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\], toStart false]
expected: FAIL
[Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\], toStart omitted]
expected: FAIL
[Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\], toStart true]
expected: FAIL
[Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\], toStart false]
expected: FAIL
[Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\], toStart omitted]
expected: FAIL
[Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\], toStart true]
expected: FAIL
[Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\], toStart false]
expected: FAIL
[Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\], toStart omitted]
expected: FAIL
[Range 5 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\], toStart true]
expected: FAIL
[Range 5 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\], toStart false]
expected: FAIL
[Range 5 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\], toStart omitted]
expected: FAIL
[Range 6 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\], toStart true]
expected: FAIL
[Range 6 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\], toStart false]
expected: FAIL
[Range 6 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\], toStart omitted]
expected: FAIL
[Range 7 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\], toStart true]
expected: FAIL
[Range 7 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\], toStart false]
expected: FAIL
[Range 7 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\], toStart omitted]
expected: FAIL
[Range 8 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\], toStart true]
expected: FAIL
[Range 8 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\], toStart false]
expected: FAIL
[Range 8 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\], toStart omitted]
expected: FAIL
[Range 9 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\], toStart true]
expected: FAIL
[Range 9 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\], toStart false]
expected: FAIL
[Range 9 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\], toStart omitted]
expected: FAIL
[Range 10 [document.documentElement, 0, document.documentElement, 1\], toStart true]
expected: FAIL
[Range 10 [document.documentElement, 0, document.documentElement, 1\], toStart false]
expected: FAIL
[Range 10 [document.documentElement, 0, document.documentElement, 1\], toStart omitted]
expected: FAIL
[Range 11 [document.documentElement, 0, document.documentElement, 2\], toStart true]
expected: FAIL
[Range 11 [document.documentElement, 0, document.documentElement, 2\], toStart false]
expected: FAIL
[Range 11 [document.documentElement, 0, document.documentElement, 2\], toStart omitted]
expected: FAIL
[Range 12 [document.documentElement, 1, document.documentElement, 2\], toStart true]
expected: FAIL
[Range 12 [document.documentElement, 1, document.documentElement, 2\], toStart false]
expected: FAIL
[Range 12 [document.documentElement, 1, document.documentElement, 2\], toStart omitted]
expected: FAIL
[Range 13 [document.head, 1, document.head, 1\], toStart true]
expected: FAIL
[Range 13 [document.head, 1, document.head, 1\], toStart false]
expected: FAIL
[Range 13 [document.head, 1, document.head, 1\], toStart omitted]
expected: FAIL
[Range 14 [document.body, 4, document.body, 5\], toStart true]
expected: FAIL
[Range 14 [document.body, 4, document.body, 5\], toStart false]
expected: FAIL
[Range 14 [document.body, 4, document.body, 5\], toStart omitted]
expected: FAIL
[Range 15 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\], toStart true]
expected: FAIL
[Range 15 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\], toStart false]
expected: FAIL
[Range 15 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\], toStart omitted]
expected: FAIL
[Range 16 [paras[0\], 0, paras[0\], 1\], toStart true]
expected: FAIL
[Range 16 [paras[0\], 0, paras[0\], 1\], toStart false]
expected: FAIL
[Range 16 [paras[0\], 0, paras[0\], 1\], toStart omitted]
expected: FAIL
[Range 17 [detachedPara1, 0, detachedPara1, 1\], toStart true]
expected: FAIL
[Range 17 [detachedPara1, 0, detachedPara1, 1\], toStart false]
expected: FAIL
[Range 17 [detachedPara1, 0, detachedPara1, 1\], toStart omitted]
expected: FAIL
[Range 18 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\], toStart true]
expected: FAIL
[Range 18 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\], toStart false]
expected: FAIL
[Range 18 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\], toStart omitted]
expected: FAIL
[Range 19 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\], toStart true]
expected: FAIL
[Range 19 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\], toStart false]
expected: FAIL
[Range 19 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\], toStart omitted]
expected: FAIL
[Range 20 [paras[0\].firstChild, 3, paras[3\], 1\], toStart true]
expected: FAIL
[Range 20 [paras[0\].firstChild, 3, paras[3\], 1\], toStart false]
expected: FAIL
[Range 20 [paras[0\].firstChild, 3, paras[3\], 1\], toStart omitted]
expected: FAIL
[Range 21 [paras[0\], 0, paras[0\].firstChild, 7\], toStart true]
expected: FAIL
[Range 21 [paras[0\], 0, paras[0\].firstChild, 7\], toStart false]
expected: FAIL
[Range 21 [paras[0\], 0, paras[0\].firstChild, 7\], toStart omitted]
expected: FAIL
[Range 22 [testDiv, 2, paras[4\], 1\], toStart true]
expected: FAIL
[Range 22 [testDiv, 2, paras[4\], 1\], toStart false]
expected: FAIL
[Range 22 [testDiv, 2, paras[4\], 1\], toStart omitted]
expected: FAIL
[Range 23 [document, 0, document, 1\], toStart true]
expected: FAIL
[Range 23 [document, 0, document, 1\], toStart false]
expected: FAIL
[Range 23 [document, 0, document, 1\], toStart omitted]
expected: FAIL
[Range 24 [document, 0, document, 2\], toStart true]
expected: FAIL
[Range 24 [document, 0, document, 2\], toStart false]
expected: FAIL
[Range 24 [document, 0, document, 2\], toStart omitted]
expected: FAIL
[Range 25 [comment, 2, comment, 3\], toStart true]
expected: FAIL
[Range 25 [comment, 2, comment, 3\], toStart false]
expected: FAIL
[Range 25 [comment, 2, comment, 3\], toStart omitted]
expected: FAIL
[Range 26 [testDiv, 0, comment, 5\], toStart true]
expected: FAIL
[Range 26 [testDiv, 0, comment, 5\], toStart false]
expected: FAIL
[Range 26 [testDiv, 0, comment, 5\], toStart omitted]
expected: FAIL
[Range 27 [foreignDoc, 1, foreignComment, 2\], toStart true]
expected: FAIL
[Range 27 [foreignDoc, 1, foreignComment, 2\], toStart false]
expected: FAIL
[Range 27 [foreignDoc, 1, foreignComment, 2\], toStart omitted]
expected: FAIL
[Range 28 [foreignDoc.body, 0, foreignTextNode, 36\], toStart true]
expected: FAIL
[Range 28 [foreignDoc.body, 0, foreignTextNode, 36\], toStart false]
expected: FAIL
[Range 28 [foreignDoc.body, 0, foreignTextNode, 36\], toStart omitted]
expected: FAIL
[Range 29 [xmlDoc, 1, xmlComment, 0\], toStart true]
expected: FAIL
[Range 29 [xmlDoc, 1, xmlComment, 0\], toStart false]
expected: FAIL
[Range 29 [xmlDoc, 1, xmlComment, 0\], toStart omitted]
expected: FAIL
[Range 30 [detachedTextNode, 0, detachedTextNode, 8\], toStart true]
expected: FAIL
[Range 30 [detachedTextNode, 0, detachedTextNode, 8\], toStart false]
expected: FAIL
[Range 30 [detachedTextNode, 0, detachedTextNode, 8\], toStart omitted]
expected: FAIL
[Range 31 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\], toStart true]
expected: FAIL
[Range 31 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\], toStart false]
expected: FAIL
[Range 31 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\], toStart omitted]
expected: FAIL
[Range 32 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\], toStart true]
expected: FAIL
[Range 32 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\], toStart false]
expected: FAIL
[Range 32 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\], toStart omitted]
expected: FAIL
[Range 33 [detachedComment, 3, detachedComment, 4\], toStart true]
expected: FAIL
[Range 33 [detachedComment, 3, detachedComment, 4\], toStart false]
expected: FAIL
[Range 33 [detachedComment, 3, detachedComment, 4\], toStart omitted]
expected: FAIL
[Range 34 [detachedForeignComment, 0, detachedForeignComment, 1\], toStart true]
expected: FAIL
[Range 34 [detachedForeignComment, 0, detachedForeignComment, 1\], toStart false]
expected: FAIL
[Range 34 [detachedForeignComment, 0, detachedForeignComment, 1\], toStart omitted]
expected: FAIL
[Range 35 [detachedXmlComment, 2, detachedXmlComment, 6\], toStart true]
expected: FAIL
[Range 35 [detachedXmlComment, 2, detachedXmlComment, 6\], toStart false]
expected: FAIL
[Range 35 [detachedXmlComment, 2, detachedXmlComment, 6\], toStart omitted]
expected: FAIL
[Range 36 [docfrag, 0, docfrag, 0\], toStart true]
expected: FAIL
[Range 36 [docfrag, 0, docfrag, 0\], toStart false]
expected: FAIL
[Range 36 [docfrag, 0, docfrag, 0\], toStart omitted]
expected: FAIL
[Range 37 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\], toStart true]
expected: FAIL
[Range 37 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\], toStart false]
expected: FAIL
[Range 37 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\], toStart omitted]
expected: FAIL
[Range 38 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\], toStart true]
expected: FAIL
[Range 38 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\], toStart false]
expected: FAIL
[Range 38 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\], toStart omitted]
expected: FAIL
[Range 39 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\], toStart true]
expected: FAIL
[Range 39 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\], toStart false]
expected: FAIL
[Range 39 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\], toStart omitted]
expected: FAIL
[Range 40 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\], toStart true]
expected: FAIL
[Range 40 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\], toStart false]
expected: FAIL
[Range 40 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\], toStart omitted]
expected: FAIL
[Range 41 [foreignDoc.head, 1, foreignDoc.head, 1\], toStart true]
expected: FAIL
[Range 41 [foreignDoc.head, 1, foreignDoc.head, 1\], toStart false]
expected: FAIL
[Range 41 [foreignDoc.head, 1, foreignDoc.head, 1\], toStart omitted]
expected: FAIL
[Range 42 [foreignDoc.body, 0, foreignDoc.body, 0\], toStart true]
expected: FAIL
[Range 42 [foreignDoc.body, 0, foreignDoc.body, 0\], toStart false]
expected: FAIL
[Range 42 [foreignDoc.body, 0, foreignDoc.body, 0\], toStart omitted]
expected: FAIL
[Range 43 [paras[0\], 0, paras[0\], 0\], toStart true]
expected: FAIL
[Range 43 [paras[0\], 0, paras[0\], 0\], toStart false]
expected: FAIL
[Range 43 [paras[0\], 0, paras[0\], 0\], toStart omitted]
expected: FAIL
[Range 44 [detachedPara1, 0, detachedPara1, 0\], toStart true]
expected: FAIL
[Range 44 [detachedPara1, 0, detachedPara1, 0\], toStart false]
expected: FAIL
[Range 44 [detachedPara1, 0, detachedPara1, 0\], toStart omitted]
expected: FAIL
[Range 45 [testDiv, 1, paras[2\].firstChild, 5\], toStart true]
expected: FAIL
[Range 45 [testDiv, 1, paras[2\].firstChild, 5\], toStart false]
expected: FAIL
[Range 45 [testDiv, 1, paras[2\].firstChild, 5\], toStart omitted]
expected: FAIL
[Range 46 [document.documentElement, 1, document.body, 0\], toStart true]
expected: FAIL
[Range 46 [document.documentElement, 1, document.body, 0\], toStart false]
expected: FAIL
[Range 46 [document.documentElement, 1, document.body, 0\], toStart omitted]
expected: FAIL
[Range 47 [foreignDoc.documentElement, 1, foreignDoc.body, 0\], toStart true]
expected: FAIL
[Range 47 [foreignDoc.documentElement, 1, foreignDoc.body, 0\], toStart false]
expected: FAIL
[Range 47 [foreignDoc.documentElement, 1, foreignDoc.body, 0\], toStart omitted]
expected: FAIL
[Range 48 [document, 1, document, 2\], toStart true]
expected: FAIL
[Range 48 [document, 1, document, 2\], toStart false]
expected: FAIL
[Range 48 [document, 1, document, 2\], toStart omitted]
expected: FAIL
[Range 49 [paras[2\].firstChild, 4, comment, 2\], toStart true]
expected: FAIL
[Range 49 [paras[2\].firstChild, 4, comment, 2\], toStart false]
expected: FAIL
[Range 49 [paras[2\].firstChild, 4, comment, 2\], toStart omitted]
expected: FAIL
[Range 50 [paras[3\], 1, comment, 8\], toStart true]
expected: FAIL
[Range 50 [paras[3\], 1, comment, 8\], toStart false]
expected: FAIL
[Range 50 [paras[3\], 1, comment, 8\], toStart omitted]
expected: FAIL
[Range 51 [foreignDoc, 0, foreignDoc, 0\], toStart true]
expected: FAIL
[Range 51 [foreignDoc, 0, foreignDoc, 0\], toStart false]
expected: FAIL
[Range 51 [foreignDoc, 0, foreignDoc, 0\], toStart omitted]
expected: FAIL
[Range 52 [xmlDoc, 0, xmlDoc, 0\], toStart true]
expected: FAIL
[Range 52 [xmlDoc, 0, xmlDoc, 0\], toStart false]
expected: FAIL
[Range 52 [xmlDoc, 0, xmlDoc, 0\], toStart omitted]
expected: FAIL
[Range 53 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\], toStart true]
expected: FAIL
[Range 53 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\], toStart false]
expected: FAIL
[Range 53 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\], toStart omitted]
expected: FAIL
[Range 54 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\], toStart true]
expected: FAIL
[Range 54 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\], toStart false]
expected: FAIL
[Range 54 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\], toStart omitted]
expected: FAIL
[Range 55 [detachedComment, 5, detachedComment, 5\], toStart true]
expected: FAIL
[Range 55 [detachedComment, 5, detachedComment, 5\], toStart false]
expected: FAIL
[Range 55 [detachedComment, 5, detachedComment, 5\], toStart omitted]
expected: FAIL
[Range 56 [detachedForeignComment, 4, detachedForeignComment, 4\], toStart true]
expected: FAIL
[Range 56 [detachedForeignComment, 4, detachedForeignComment, 4\], toStart false]
expected: FAIL
[Range 56 [detachedForeignComment, 4, detachedForeignComment, 4\], toStart omitted]
expected: FAIL
[Range 57 [foreignDocfrag, 0, foreignDocfrag, 0\], toStart true]
expected: FAIL
[Range 57 [foreignDocfrag, 0, foreignDocfrag, 0\], toStart false]
expected: FAIL
[Range 57 [foreignDocfrag, 0, foreignDocfrag, 0\], toStart omitted]
expected: FAIL
[Range 58 [xmlDocfrag, 0, xmlDocfrag, 0\], toStart true]
expected: FAIL
[Range 58 [xmlDocfrag, 0, xmlDocfrag, 0\], toStart false]
expected: FAIL
[Range 58 [xmlDocfrag, 0, xmlDocfrag, 0\], toStart omitted]
expected: FAIL

View file

@ -1,17 +0,0 @@
[Range-commonAncestorContainer-2.html]
type: testharness
[Detached Range]
expected: FAIL
[Range.commonAncestorContainer]
expected: FAIL
[Range.commonAncestorContainer 1]
expected: FAIL
[Range.commonAncestorContainer 2]
expected: FAIL
[Range.commonAncestorContainer 3]
expected: FAIL

View file

@ -1,179 +0,0 @@
[Range-commonAncestorContainer.html]
type: testharness
[1: range [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]]
expected: FAIL
[2: range [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]]
expected: FAIL
[3: range [paras[0\].firstChild, 2, paras[0\].firstChild, 8\]]
expected: FAIL
[4: range [paras[0\].firstChild, 2, paras[0\].firstChild, 9\]]
expected: FAIL
[5: range [paras[1\].firstChild, 0, paras[1\].firstChild, 0\]]
expected: FAIL
[6: range [paras[1\].firstChild, 2, paras[1\].firstChild, 9\]]
expected: FAIL
[7: range [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]]
expected: FAIL
[8: range [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\]]
expected: FAIL
[9: range [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\]]
expected: FAIL
[10: range [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\]]
expected: FAIL
[11: range [document.documentElement, 0, document.documentElement, 1\]]
expected: FAIL
[12: range [document.documentElement, 0, document.documentElement, 2\]]
expected: FAIL
[13: range [document.documentElement, 1, document.documentElement, 2\]]
expected: FAIL
[14: range [document.head, 1, document.head, 1\]]
expected: FAIL
[15: range [document.body, 4, document.body, 5\]]
expected: FAIL
[16: range [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\]]
expected: FAIL
[17: range [paras[0\], 0, paras[0\], 1\]]
expected: FAIL
[18: range [detachedPara1, 0, detachedPara1, 1\]]
expected: FAIL
[19: range [paras[0\].firstChild, 0, paras[1\].firstChild, 0\]]
expected: FAIL
[20: range [paras[0\].firstChild, 0, paras[1\].firstChild, 8\]]
expected: FAIL
[21: range [paras[0\].firstChild, 3, paras[3\], 1\]]
expected: FAIL
[22: range [paras[0\], 0, paras[0\].firstChild, 7\]]
expected: FAIL
[23: range [testDiv, 2, paras[4\], 1\]]
expected: FAIL
[24: range [document, 0, document, 1\]]
expected: FAIL
[25: range [document, 0, document, 2\]]
expected: FAIL
[26: range [comment, 2, comment, 3\]]
expected: FAIL
[27: range [testDiv, 0, comment, 5\]]
expected: FAIL
[28: range [foreignDoc, 1, foreignComment, 2\]]
expected: FAIL
[29: range [foreignDoc.body, 0, foreignTextNode, 36\]]
expected: FAIL
[30: range [xmlDoc, 1, xmlComment, 0\]]
expected: FAIL
[31: range [detachedTextNode, 0, detachedTextNode, 8\]]
expected: FAIL
[32: range [detachedForeignTextNode, 0, detachedForeignTextNode, 8\]]
expected: FAIL
[33: range [detachedXmlTextNode, 0, detachedXmlTextNode, 8\]]
expected: FAIL
[34: range [detachedComment, 3, detachedComment, 4\]]
expected: FAIL
[35: range [detachedForeignComment, 0, detachedForeignComment, 1\]]
expected: FAIL
[36: range [detachedXmlComment, 2, detachedXmlComment, 6\]]
expected: FAIL
[37: range [docfrag, 0, docfrag, 0\]]
expected: FAIL
[38: range [paras[1\].firstChild, 0, paras[1\].firstChild, 1\]]
expected: FAIL
[39: range [paras[1\].firstChild, 2, paras[1\].firstChild, 8\]]
expected: FAIL
[40: range [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\]]
expected: FAIL
[41: range [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\]]
expected: FAIL
[42: range [foreignDoc.head, 1, foreignDoc.head, 1\]]
expected: FAIL
[43: range [foreignDoc.body, 0, foreignDoc.body, 0\]]
expected: FAIL
[44: range [paras[0\], 0, paras[0\], 0\]]
expected: FAIL
[45: range [detachedPara1, 0, detachedPara1, 0\]]
expected: FAIL
[46: range [testDiv, 1, paras[2\].firstChild, 5\]]
expected: FAIL
[47: range [document.documentElement, 1, document.body, 0\]]
expected: FAIL
[48: range [foreignDoc.documentElement, 1, foreignDoc.body, 0\]]
expected: FAIL
[49: range [document, 1, document, 2\]]
expected: FAIL
[50: range [paras[2\].firstChild, 4, comment, 2\]]
expected: FAIL
[51: range [paras[3\], 1, comment, 8\]]
expected: FAIL
[52: range [foreignDoc, 0, foreignDoc, 0\]]
expected: FAIL
[53: range [xmlDoc, 0, xmlDoc, 0\]]
expected: FAIL
[54: range [detachedForeignTextNode, 7, detachedForeignTextNode, 7\]]
expected: FAIL
[55: range [detachedXmlTextNode, 7, detachedXmlTextNode, 7\]]
expected: FAIL
[56: range [detachedComment, 5, detachedComment, 5\]]
expected: FAIL
[57: range [detachedForeignComment, 4, detachedForeignComment, 4\]]
expected: FAIL
[58: range [foreignDocfrag, 0, foreignDocfrag, 0\]]
expected: FAIL
[59: range [xmlDocfrag, 0, xmlDocfrag, 0\]]
expected: FAIL

View file

@ -1,8 +0,0 @@
[Range-comparePoint-2.html]
type: testharness
[Range.comparePoint]
expected: FAIL
[Range.comparePoint 2]
expected: FAIL

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,482 +0,0 @@
[Range-selectNode.html]
type: testharness
[ current doc: #document node, current doc\'s range, type 9]
expected: FAIL
[ current doc: #document node, foreign doc\'s range, type 9]
expected: FAIL
[ current doc: #document node, XML doc\'s range, type 9]
expected: FAIL
[ current doc: #document node, detached range, type 9]
expected: FAIL
[** current doc: html node, current doc\'s range, type 10]
expected: FAIL
[** current doc: html node, foreign doc\'s range, type 10]
expected: FAIL
[** current doc: html node, XML doc\'s range, type 10]
expected: FAIL
[** current doc: html node, detached range, type 10]
expected: FAIL
[** current doc: html node, current doc\'s range, type 1]
expected: FAIL
[** current doc: html node, foreign doc\'s range, type 1]
expected: FAIL
[** current doc: html node, XML doc\'s range, type 1]
expected: FAIL
[** current doc: html node, detached range, type 1]
expected: FAIL
[**** current doc: head node, current doc\'s range, type 1]
expected: FAIL
[**** current doc: head node, foreign doc\'s range, type 1]
expected: FAIL
[**** current doc: head node, XML doc\'s range, type 1]
expected: FAIL
[**** current doc: head node, detached range, type 1]
expected: FAIL
[****** current doc: title node, current doc\'s range, type 1]
expected: FAIL
[****** current doc: title node, foreign doc\'s range, type 1]
expected: FAIL
[****** current doc: title node, XML doc\'s range, type 1]
expected: FAIL
[****** current doc: title node, detached range, type 1]
expected: FAIL
[******** current doc: #text node, current doc\'s range, type 3]
expected: FAIL
[******** current doc: #text node, foreign doc\'s range, type 3]
expected: FAIL
[******** current doc: #text node, XML doc\'s range, type 3]
expected: FAIL
[******** current doc: #text node, detached range, type 3]
expected: FAIL
[****** current doc: #text node, current doc\'s range, type 3]
expected: FAIL
[****** current doc: #text node, foreign doc\'s range, type 3]
expected: FAIL
[****** current doc: #text node, XML doc\'s range, type 3]
expected: FAIL
[****** current doc: #text node, detached range, type 3]
expected: FAIL
[****** current doc: link node, current doc\'s range, type 1]
expected: FAIL
[****** current doc: link node, foreign doc\'s range, type 1]
expected: FAIL
[****** current doc: link node, XML doc\'s range, type 1]
expected: FAIL
[****** current doc: link node, detached range, type 1]
expected: FAIL
[****** current doc: meta node, current doc\'s range, type 1]
expected: FAIL
[****** current doc: meta node, foreign doc\'s range, type 1]
expected: FAIL
[****** current doc: meta node, XML doc\'s range, type 1]
expected: FAIL
[****** current doc: meta node, detached range, type 1]
expected: FAIL
[**** current doc: body node, current doc\'s range, type 1]
expected: FAIL
[**** current doc: body node, foreign doc\'s range, type 1]
expected: FAIL
[**** current doc: body node, XML doc\'s range, type 1]
expected: FAIL
[**** current doc: body node, detached range, type 1]
expected: FAIL
[****** current doc: div node, current doc\'s range, type 1]
expected: FAIL
[****** current doc: div node, foreign doc\'s range, type 1]
expected: FAIL
[****** current doc: div node, XML doc\'s range, type 1]
expected: FAIL
[****** current doc: div node, detached range, type 1]
expected: FAIL
[******** current doc: p node, current doc\'s range, type 1]
expected: FAIL
[******** current doc: p node, foreign doc\'s range, type 1]
expected: FAIL
[******** current doc: p node, XML doc\'s range, type 1]
expected: FAIL
[******** current doc: p node, detached range, type 1]
expected: FAIL
[********** current doc: #text node, current doc\'s range, type 3]
expected: FAIL
[********** current doc: #text node, foreign doc\'s range, type 3]
expected: FAIL
[********** current doc: #text node, XML doc\'s range, type 3]
expected: FAIL
[********** current doc: #text node, detached range, type 3]
expected: FAIL
[******** current doc: #comment node, current doc\'s range, type 8]
expected: FAIL
[******** current doc: #comment node, foreign doc\'s range, type 8]
expected: FAIL
[******** current doc: #comment node, XML doc\'s range, type 8]
expected: FAIL
[******** current doc: #comment node, detached range, type 8]
expected: FAIL
[****** current doc: script node, current doc\'s range, type 1]
expected: FAIL
[****** current doc: script node, foreign doc\'s range, type 1]
expected: FAIL
[****** current doc: script node, XML doc\'s range, type 1]
expected: FAIL
[****** current doc: script node, detached range, type 1]
expected: FAIL
[ foreign doc: #document node, current doc\'s range, type 9]
expected: FAIL
[ foreign doc: #document node, foreign doc\'s range, type 9]
expected: FAIL
[ foreign doc: #document node, XML doc\'s range, type 9]
expected: FAIL
[ foreign doc: #document node, detached range, type 9]
expected: FAIL
[** foreign doc: html node, current doc\'s range, type 10]
expected: FAIL
[** foreign doc: html node, foreign doc\'s range, type 10]
expected: FAIL
[** foreign doc: html node, XML doc\'s range, type 10]
expected: FAIL
[** foreign doc: html node, detached range, type 10]
expected: FAIL
[** foreign doc: html node, current doc\'s range, type 1]
expected: FAIL
[** foreign doc: html node, foreign doc\'s range, type 1]
expected: FAIL
[** foreign doc: html node, XML doc\'s range, type 1]
expected: FAIL
[** foreign doc: html node, detached range, type 1]
expected: FAIL
[**** foreign doc: head node, current doc\'s range, type 1]
expected: FAIL
[**** foreign doc: head node, foreign doc\'s range, type 1]
expected: FAIL
[**** foreign doc: head node, XML doc\'s range, type 1]
expected: FAIL
[**** foreign doc: head node, detached range, type 1]
expected: FAIL
[****** foreign doc: title node, current doc\'s range, type 1]
expected: FAIL
[****** foreign doc: title node, foreign doc\'s range, type 1]
expected: FAIL
[****** foreign doc: title node, XML doc\'s range, type 1]
expected: FAIL
[****** foreign doc: title node, detached range, type 1]
expected: FAIL
[******** foreign doc: #text node, current doc\'s range, type 3]
expected: FAIL
[******** foreign doc: #text node, foreign doc\'s range, type 3]
expected: FAIL
[******** foreign doc: #text node, XML doc\'s range, type 3]
expected: FAIL
[******** foreign doc: #text node, detached range, type 3]
expected: FAIL
[**** foreign doc: body node, current doc\'s range, type 1]
expected: FAIL
[**** foreign doc: body node, foreign doc\'s range, type 1]
expected: FAIL
[**** foreign doc: body node, XML doc\'s range, type 1]
expected: FAIL
[**** foreign doc: body node, detached range, type 1]
expected: FAIL
[****** foreign doc: p node, current doc\'s range, type 1]
expected: FAIL
[****** foreign doc: p node, foreign doc\'s range, type 1]
expected: FAIL
[****** foreign doc: p node, XML doc\'s range, type 1]
expected: FAIL
[****** foreign doc: p node, detached range, type 1]
expected: FAIL
[****** foreign doc: #text node, current doc\'s range, type 3]
expected: FAIL
[****** foreign doc: #text node, foreign doc\'s range, type 3]
expected: FAIL
[****** foreign doc: #text node, XML doc\'s range, type 3]
expected: FAIL
[****** foreign doc: #text node, detached range, type 3]
expected: FAIL
[** foreign doc: #comment node, current doc\'s range, type 8]
expected: FAIL
[** foreign doc: #comment node, foreign doc\'s range, type 8]
expected: FAIL
[** foreign doc: #comment node, XML doc\'s range, type 8]
expected: FAIL
[** foreign doc: #comment node, detached range, type 8]
expected: FAIL
[ detached div in current doc: div node, current doc\'s range, type 1]
expected: FAIL
[ detached div in current doc: div node, foreign doc\'s range, type 1]
expected: FAIL
[ detached div in current doc: div node, XML doc\'s range, type 1]
expected: FAIL
[ detached div in current doc: div node, detached range, type 1]
expected: FAIL
[** detached div in current doc: p node, current doc\'s range, type 1]
expected: FAIL
[** detached div in current doc: p node, foreign doc\'s range, type 1]
expected: FAIL
[** detached div in current doc: p node, XML doc\'s range, type 1]
expected: FAIL
[** detached div in current doc: p node, detached range, type 1]
expected: FAIL
[**** detached div in current doc: #text node, current doc\'s range, type 3]
expected: FAIL
[**** detached div in current doc: #text node, foreign doc\'s range, type 3]
expected: FAIL
[**** detached div in current doc: #text node, XML doc\'s range, type 3]
expected: FAIL
[**** detached div in current doc: #text node, detached range, type 3]
expected: FAIL
[ #document node, current doc\'s range, type 9]
expected: FAIL
[ #document node, foreign doc\'s range, type 9]
expected: FAIL
[ #document node, XML doc\'s range, type 9]
expected: FAIL
[ #document node, detached range, type 9]
expected: FAIL
[** qorflesnorf node, current doc\'s range, type 10]
expected: FAIL
[** qorflesnorf node, foreign doc\'s range, type 10]
expected: FAIL
[** qorflesnorf node, XML doc\'s range, type 10]
expected: FAIL
[** qorflesnorf node, detached range, type 10]
expected: FAIL
[** igiveuponcreativenames node, current doc\'s range, type 1]
expected: FAIL
[** igiveuponcreativenames node, foreign doc\'s range, type 1]
expected: FAIL
[** igiveuponcreativenames node, XML doc\'s range, type 1]
expected: FAIL
[** igiveuponcreativenames node, detached range, type 1]
expected: FAIL
[**** #text node, current doc\'s range, type 3]
expected: FAIL
[**** #text node, foreign doc\'s range, type 3]
expected: FAIL
[**** #text node, XML doc\'s range, type 3]
expected: FAIL
[**** #text node, detached range, type 3]
expected: FAIL
[** somepi node, current doc\'s range, type 7]
expected: FAIL
[** somepi node, foreign doc\'s range, type 7]
expected: FAIL
[** somepi node, XML doc\'s range, type 7]
expected: FAIL
[** somepi node, detached range, type 7]
expected: FAIL
[** #comment node, current doc\'s range, type 8]
expected: FAIL
[** #comment node, foreign doc\'s range, type 8]
expected: FAIL
[** #comment node, XML doc\'s range, type 8]
expected: FAIL
[** #comment node, detached range, type 8]
expected: FAIL
[ igiveuponcreativenames node, current doc\'s range, type 1]
expected: FAIL
[ igiveuponcreativenames node, foreign doc\'s range, type 1]
expected: FAIL
[ igiveuponcreativenames node, XML doc\'s range, type 1]
expected: FAIL
[ igiveuponcreativenames node, detached range, type 1]
expected: FAIL
[** #text node, current doc\'s range, type 3]
expected: FAIL
[** #text node, foreign doc\'s range, type 3]
expected: FAIL
[** #text node, XML doc\'s range, type 3]
expected: FAIL
[** #text node, detached range, type 3]
expected: FAIL
[ #text node, current doc\'s range, type 3]
expected: FAIL
[ #text node, foreign doc\'s range, type 3]
expected: FAIL
[ #text node, XML doc\'s range, type 3]
expected: FAIL
[ #text node, detached range, type 3]
expected: FAIL
[ somepi node, current doc\'s range, type 7]
expected: FAIL
[ somepi node, foreign doc\'s range, type 7]
expected: FAIL
[ somepi node, XML doc\'s range, type 7]
expected: FAIL
[ somepi node, detached range, type 7]
expected: FAIL
[ #comment node, current doc\'s range, type 8]
expected: FAIL
[ #comment node, foreign doc\'s range, type 8]
expected: FAIL
[ #comment node, XML doc\'s range, type 8]
expected: FAIL
[ #comment node, detached range, type 8]
expected: FAIL
[ #document-fragment node, current doc\'s range, type 11]
expected: FAIL
[ #document-fragment node, foreign doc\'s range, type 11]
expected: FAIL
[ #document-fragment node, XML doc\'s range, type 11]
expected: FAIL
[ #document-fragment node, detached range, type 11]
expected: FAIL

File diff suppressed because it is too large Load diff