diff --git a/components/script/dom/characterdata.rs b/components/script/dom/characterdata.rs index bc1106f94cc..4f10e7d39f4 100644 --- a/components/script/dom/characterdata.rs +++ b/components/script/dom/characterdata.rs @@ -8,6 +8,7 @@ use dom::bindings::cell::DOMRefCell; use dom::bindings::codegen::Bindings::CharacterDataBinding::CharacterDataMethods; use dom::bindings::codegen::InheritTypes::{CharacterDataDerived, ElementCast}; use dom::bindings::codegen::InheritTypes::NodeCast; +use dom::bindings::codegen::UnionTypes::NodeOrString; use dom::bindings::error::{Fallible, ErrorResult}; use dom::bindings::error::Error::IndexSize; use dom::bindings::js::{JSRef, LayoutJS, Temporary}; @@ -118,6 +119,21 @@ impl<'a> CharacterDataMethods for JSRef<'a, CharacterData> { Ok(()) } + // https://dom.spec.whatwg.org/#dom-childnode-before + fn Before(self, nodes: Vec) -> ErrorResult { + NodeCast::from_ref(self).before(nodes) + } + + // https://dom.spec.whatwg.org/#dom-childnode-after + fn After(self, nodes: Vec) -> ErrorResult { + NodeCast::from_ref(self).after(nodes) + } + + // https://dom.spec.whatwg.org/#dom-childnode-replacewith + fn ReplaceWith(self, nodes: Vec) -> ErrorResult { + NodeCast::from_ref(self).replace_with(nodes) + } + // https://dom.spec.whatwg.org/#dom-childnode-remove fn Remove(self) { let node: JSRef = NodeCast::from_ref(self); diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs index bff8ea0cdba..bab20db68ca 100644 --- a/components/script/dom/document.rs +++ b/components/script/dom/document.rs @@ -19,6 +19,7 @@ use dom::bindings::codegen::InheritTypes::{HTMLAnchorElementDerived, HTMLAppletE use dom::bindings::codegen::InheritTypes::{HTMLAreaElementDerived, HTMLEmbedElementDerived}; use dom::bindings::codegen::InheritTypes::{HTMLFormElementDerived, HTMLImageElementDerived}; use dom::bindings::codegen::InheritTypes::{HTMLScriptElementDerived, CharacterDataCast}; +use dom::bindings::codegen::UnionTypes::NodeOrString; use dom::bindings::error::{ErrorResult, Fallible}; use dom::bindings::error::Error::{NotSupported, InvalidCharacter, Security}; use dom::bindings::error::Error::HierarchyRequest; @@ -223,6 +224,8 @@ pub trait DocumentHelpers<'a> { button: MouseButton, point: Point2D); fn dispatch_key_event(self, key: Key, state: KeyState, modifiers: KeyModifiers, compositor: &mut Box); + fn node_from_nodes_and_strings(self, nodes: Vec) + -> Fallible>; /// Handles a mouse-move event coming from the compositor. fn handle_mouse_move_event(self, @@ -702,6 +705,34 @@ impl<'a> DocumentHelpers<'a> for JSRef<'a, Document> { window.r().reflow(ReflowGoal::ForDisplay, ReflowQueryType::NoQuery, ReflowReason::KeyEvent); } + fn node_from_nodes_and_strings(self, nodes: Vec) + -> Fallible> { + if nodes.len() == 1 { + match nodes.into_iter().next().unwrap() { + NodeOrString::eNode(node) => Ok(Temporary::from_unrooted(node)), + NodeOrString::eString(string) => { + Ok(NodeCast::from_temporary(self.CreateTextNode(string))) + }, + } + } else { + let fragment = NodeCast::from_temporary(self.CreateDocumentFragment()).root(); + for node in nodes.into_iter() { + match node { + NodeOrString::eNode(node) => { + try!(fragment.r().AppendChild(node.root().r())); + }, + NodeOrString::eString(string) => { + let node = NodeCast::from_temporary(self.CreateTextNode(string)).root(); + // No try!() here because appending a text node + // should not fail. + fragment.r().AppendChild(node.r()).unwrap(); + } + } + } + Ok(Temporary::from_rooted(fragment.r())) + } + } + fn set_current_script(self, script: Option>) { self.current_script.assign(script); } @@ -1377,6 +1408,16 @@ impl<'a> DocumentMethods for JSRef<'a, Document> { NodeCast::from_ref(self).child_elements().count() as u32 } + // https://dom.spec.whatwg.org/#dom-parentnode-prepend + fn Prepend(self, nodes: Vec) -> ErrorResult { + NodeCast::from_ref(self).prepend(nodes) + } + + // https://dom.spec.whatwg.org/#dom-parentnode-append + fn Append(self, nodes: Vec) -> ErrorResult { + NodeCast::from_ref(self).append(nodes) + } + // https://dom.spec.whatwg.org/#dom-parentnode-queryselector fn QuerySelector(self, selectors: DOMString) -> Fallible>> { let root: JSRef = NodeCast::from_ref(self); diff --git a/components/script/dom/documentfragment.rs b/components/script/dom/documentfragment.rs index 43af033a0fb..51f7fa48571 100644 --- a/components/script/dom/documentfragment.rs +++ b/components/script/dom/documentfragment.rs @@ -7,8 +7,9 @@ use dom::bindings::codegen::Bindings::DocumentFragmentBinding::DocumentFragmentM use dom::bindings::codegen::Bindings::WindowBinding::WindowMethods; use dom::bindings::codegen::InheritTypes::DocumentFragmentDerived; use dom::bindings::codegen::InheritTypes::{ElementCast, NodeCast}; +use dom::bindings::codegen::UnionTypes::NodeOrString; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::error::Fallible; +use dom::bindings::error::{ErrorResult, Fallible}; use dom::bindings::global::GlobalRef; use dom::document::Document; use dom::element::Element; @@ -73,6 +74,16 @@ impl<'a> DocumentFragmentMethods for JSRef<'a, DocumentFragment> { NodeCast::from_ref(self).child_elements().count() as u32 } + // https://dom.spec.whatwg.org/#dom-parentnode-prepend + fn Prepend(self, nodes: Vec) -> ErrorResult { + NodeCast::from_ref(self).prepend(nodes) + } + + // https://dom.spec.whatwg.org/#dom-parentnode-append + fn Append(self, nodes: Vec) -> ErrorResult { + NodeCast::from_ref(self).append(nodes) + } + // https://dom.spec.whatwg.org/#dom-parentnode-queryselector fn QuerySelector(self, selectors: DOMString) -> Fallible>> { let root: JSRef = NodeCast::from_ref(self); diff --git a/components/script/dom/documenttype.rs b/components/script/dom/documenttype.rs index c8e3dfaa40e..b5fd4300b70 100644 --- a/components/script/dom/documenttype.rs +++ b/components/script/dom/documenttype.rs @@ -5,6 +5,8 @@ use dom::bindings::codegen::Bindings::DocumentTypeBinding; use dom::bindings::codegen::Bindings::DocumentTypeBinding::DocumentTypeMethods; use dom::bindings::codegen::InheritTypes::{DocumentTypeDerived, NodeCast}; +use dom::bindings::codegen::UnionTypes::NodeOrString; +use dom::bindings::error::ErrorResult; use dom::bindings::js::{JSRef, Temporary}; use dom::document::Document; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -87,6 +89,21 @@ impl<'a> DocumentTypeMethods for JSRef<'a, DocumentType> { self.system_id.clone() } + // https://dom.spec.whatwg.org/#dom-childnode-before + fn Before(self, nodes: Vec) -> ErrorResult { + NodeCast::from_ref(self).before(nodes) + } + + // https://dom.spec.whatwg.org/#dom-childnode-after + fn After(self, nodes: Vec) -> ErrorResult { + NodeCast::from_ref(self).after(nodes) + } + + // https://dom.spec.whatwg.org/#dom-childnode-replacewith + fn ReplaceWith(self, nodes: Vec) -> ErrorResult { + NodeCast::from_ref(self).replace_with(nodes) + } + // https://dom.spec.whatwg.org/#dom-childnode-remove fn Remove(self) { let node: JSRef = NodeCast::from_ref(self); diff --git a/components/script/dom/element.rs b/components/script/dom/element.rs index f4f70020cde..24eda14cab5 100644 --- a/components/script/dom/element.rs +++ b/components/script/dom/element.rs @@ -23,6 +23,7 @@ use dom::bindings::codegen::InheritTypes::{HTMLTableElementDerived, HTMLTableCel use dom::bindings::codegen::InheritTypes::{HTMLTableRowElementDerived, HTMLTextAreaElementDerived}; use dom::bindings::codegen::InheritTypes::{HTMLTableSectionElementDerived, NodeCast}; use dom::bindings::codegen::InheritTypes::HTMLAnchorElementCast; +use dom::bindings::codegen::UnionTypes::NodeOrString; use dom::bindings::error::{ErrorResult, Fallible}; use dom::bindings::error::Error::{InvalidCharacter, Syntax}; use dom::bindings::error::Error::NoModificationAllowed; @@ -1292,6 +1293,16 @@ impl<'a> ElementMethods for JSRef<'a, Element> { NodeCast::from_ref(self).child_elements().count() as u32 } + // https://dom.spec.whatwg.org/#dom-parentnode-prepend + fn Prepend(self, nodes: Vec) -> ErrorResult { + NodeCast::from_ref(self).prepend(nodes) + } + + // https://dom.spec.whatwg.org/#dom-parentnode-append + fn Append(self, nodes: Vec) -> ErrorResult { + NodeCast::from_ref(self).append(nodes) + } + // https://dom.spec.whatwg.org/#dom-parentnode-queryselector fn QuerySelector(self, selectors: DOMString) -> Fallible>> { let root: JSRef = NodeCast::from_ref(self); @@ -1304,6 +1315,21 @@ impl<'a> ElementMethods for JSRef<'a, Element> { root.query_selector_all(selectors) } + // https://dom.spec.whatwg.org/#dom-childnode-before + fn Before(self, nodes: Vec) -> ErrorResult { + NodeCast::from_ref(self).before(nodes) + } + + // https://dom.spec.whatwg.org/#dom-childnode-after + fn After(self, nodes: Vec) -> ErrorResult { + NodeCast::from_ref(self).after(nodes) + } + + // https://dom.spec.whatwg.org/#dom-childnode-replacewith + fn ReplaceWith(self, nodes: Vec) -> ErrorResult { + NodeCast::from_ref(self).replace_with(nodes) + } + // https://dom.spec.whatwg.org/#dom-childnode-remove fn Remove(self) { let node: JSRef = NodeCast::from_ref(self); diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs index 9d7c8b7e6e1..ca7d7598480 100644 --- a/components/script/dom/node.rs +++ b/components/script/dom/node.rs @@ -19,8 +19,9 @@ use dom::bindings::codegen::InheritTypes::{ElementCast, NodeCast, ElementDerived use dom::bindings::codegen::InheritTypes::{HTMLLegendElementDerived, HTMLFieldSetElementDerived}; use dom::bindings::codegen::InheritTypes::{HTMLOptGroupElementDerived, NodeBase, NodeDerived}; use dom::bindings::codegen::InheritTypes::{ProcessingInstructionCast, TextCast}; +use dom::bindings::codegen::UnionTypes::NodeOrString; use dom::bindings::conversions; -use dom::bindings::error::Fallible; +use dom::bindings::error::{ErrorResult, Fallible}; use dom::bindings::error::Error::{NotFound, HierarchyRequest, Syntax}; use dom::bindings::global::GlobalRef; use dom::bindings::js::{JS, JSRef, LayoutJS, RootedReference, Temporary, Root, Unrooted}; @@ -500,6 +501,12 @@ pub trait NodeHelpers { fn get_bounding_content_box(self) -> Rect; fn get_content_boxes(self) -> Vec>; + fn before(self, nodes: Vec) -> ErrorResult; + fn after(self, nodes: Vec) -> ErrorResult; + fn replace_with(self, nodes: Vec) -> ErrorResult; + fn prepend(self, nodes: Vec) -> ErrorResult; + fn append(self, nodes: Vec) -> ErrorResult; + fn query_selector(self, selectors: DOMString) -> Fallible>>; #[allow(unsafe_code)] unsafe fn query_selector_iter(self, selectors: DOMString) -> Fallible; @@ -513,6 +520,7 @@ pub trait NodeHelpers { fn teardown(self); fn parse_fragment(self, markup: DOMString) -> Fallible>; + } impl<'a> NodeHelpers for JSRef<'a, Node> { @@ -803,6 +811,80 @@ impl<'a> NodeHelpers for JSRef<'a, Node> { window_from_node(self).root().r().content_boxes_query(self.to_trusted_node_address()) } + // https://dom.spec.whatwg.org/#dom-childnode-before + fn before(self, nodes: Vec) -> ErrorResult { + match self.parent_node().root() { + None => { + // Step 1. + Ok(()) + }, + Some(ref parent_node) => { + // Step 2. + let doc = self.owner_doc().root(); + let node = try!(doc.r().node_from_nodes_and_strings(nodes)).root(); + // Step 3. + Node::pre_insert(node.r(), parent_node.r(), + Some(self)).map(|_| ()) + }, + } + } + + // https://dom.spec.whatwg.org/#dom-childnode-after + fn after(self, nodes: Vec) -> ErrorResult { + match self.parent_node().root() { + None => { + // Step 1. + Ok(()) + }, + Some(ref parent_node) => { + // Step 2. + let doc = self.owner_doc().root(); + let node = try!(doc.r().node_from_nodes_and_strings(nodes)).root(); + // Step 3. + // FIXME(https://github.com/servo/servo/issues/5720) + let next_sibling = self.next_sibling().root(); + Node::pre_insert(node.r(), parent_node.r(), + next_sibling.r()).map(|_| ()) + }, + } + } + + // https://dom.spec.whatwg.org/#dom-childnode-replacewith + fn replace_with(self, nodes: Vec) -> ErrorResult { + match self.parent_node().root() { + None => { + // Step 1. + Ok(()) + }, + Some(ref parent_node) => { + // Step 2. + let doc = self.owner_doc().root(); + let node = try!(doc.r().node_from_nodes_and_strings(nodes)).root(); + // Step 3. + parent_node.r().ReplaceChild(node.r(), self).map(|_| ()) + }, + } + } + + // https://dom.spec.whatwg.org/#dom-parentnode-prepend + fn prepend(self, nodes: Vec) -> ErrorResult { + // Step 1. + let doc = self.owner_doc().root(); + let node = try!(doc.r().node_from_nodes_and_strings(nodes)).root(); + // Step 2. + let first_child = self.first_child().root(); + Node::pre_insert(node.r(), self, first_child.r()).map(|_| ()) + } + + // https://dom.spec.whatwg.org/#dom-parentnode-append + fn append(self, nodes: Vec) -> ErrorResult { + // Step 1. + let doc = self.owner_doc().root(); + let node = try!(doc.r().node_from_nodes_and_strings(nodes)).root(); + // Step 2. + self.AppendChild(node.r()).map(|_| ()) + } + // https://dom.spec.whatwg.org/#dom-parentnode-queryselector fn query_selector(self, selectors: DOMString) -> Fallible>> { // Step 1. diff --git a/components/script/dom/webidls/ChildNode.webidl b/components/script/dom/webidls/ChildNode.webidl index de8d8271537..7205d08b05e 100644 --- a/components/script/dom/webidls/ChildNode.webidl +++ b/components/script/dom/webidls/ChildNode.webidl @@ -9,10 +9,12 @@ [NoInterfaceObject] interface ChildNode { -// Not implemented yet: -// void before((Node or DOMString)... nodes); -// void after((Node or DOMString)... nodes); -// void replace((Node or DOMString)... nodes); + [Throws] + void before((Node or DOMString)... nodes); + [Throws] + void after((Node or DOMString)... nodes); + [Throws] + void replaceWith((Node or DOMString)... nodes); void remove(); }; diff --git a/components/script/dom/webidls/ParentNode.webidl b/components/script/dom/webidls/ParentNode.webidl index 6d1d3037265..c7dc425a1fd 100644 --- a/components/script/dom/webidls/ParentNode.webidl +++ b/components/script/dom/webidls/ParentNode.webidl @@ -18,9 +18,10 @@ interface ParentNode { [Pure] readonly attribute unsigned long childElementCount; - // Not implemented yet - // void prepend((Node or DOMString)... nodes); - // void append((Node or DOMString)... nodes); + [Throws] + void prepend((Node or DOMString)... nodes); + [Throws] + void append((Node or DOMString)... nodes); //Element? query(DOMString relativeSelectors); //[NewObject] diff --git a/tests/wpt/metadata/dom/interfaces.html.ini b/tests/wpt/metadata/dom/interfaces.html.ini index 5edc29ea9a4..5d8828faeb0 100644 --- a/tests/wpt/metadata/dom/interfaces.html.ini +++ b/tests/wpt/metadata/dom/interfaces.html.ini @@ -96,12 +96,6 @@ [Document interface: operation createTreeWalker(Node,unsigned long,NodeFilter)] expected: FAIL - [Document interface: operation prepend([object Object\],[object Object\])] - expected: FAIL - - [Document interface: operation append([object Object\],[object Object\])] - expected: FAIL - [Document interface: operation query(DOMString)] expected: FAIL @@ -156,12 +150,6 @@ [DocumentFragment interface: operation getElementById(DOMString)] expected: FAIL - [DocumentFragment interface: operation prepend([object Object\],[object Object\])] - expected: FAIL - - [DocumentFragment interface: operation append([object Object\],[object Object\])] - expected: FAIL - [DocumentFragment interface: operation query(DOMString)] expected: FAIL @@ -174,15 +162,9 @@ [DocumentFragment interface: calling getElementById(DOMString) on document.createDocumentFragment() with too few arguments must throw TypeError] expected: FAIL - [DocumentFragment interface: document.createDocumentFragment() must inherit property "prepend" with the proper type (5)] - expected: FAIL - [DocumentFragment interface: calling prepend([object Object\],[object Object\]) on document.createDocumentFragment() with too few arguments must throw TypeError] expected: FAIL - [DocumentFragment interface: document.createDocumentFragment() must inherit property "append" with the proper type (6)] - expected: FAIL - [DocumentFragment interface: calling append([object Object\],[object Object\]) on document.createDocumentFragment() with too few arguments must throw TypeError] expected: FAIL @@ -198,21 +180,9 @@ [DocumentFragment interface: calling queryAll(DOMString) on document.createDocumentFragment() with too few arguments must throw TypeError] expected: FAIL - [DocumentType interface: operation before([object Object\],[object Object\])] - expected: FAIL - - [DocumentType interface: operation after([object Object\],[object Object\])] - expected: FAIL - - [DocumentType interface: document.doctype must inherit property "before" with the proper type (3)] - expected: FAIL - [DocumentType interface: calling before([object Object\],[object Object\]) on document.doctype with too few arguments must throw TypeError] expected: FAIL - [DocumentType interface: document.doctype must inherit property "after" with the proper type (4)] - expected: FAIL - [DocumentType interface: calling after([object Object\],[object Object\]) on document.doctype with too few arguments must throw TypeError] expected: FAIL @@ -234,24 +204,12 @@ [Element interface: operation removeAttributeNode(Attr)] expected: FAIL - [Element interface: operation prepend([object Object\],[object Object\])] - expected: FAIL - - [Element interface: operation append([object Object\],[object Object\])] - expected: FAIL - [Element interface: operation query(DOMString)] expected: FAIL [Element interface: operation queryAll(DOMString)] expected: FAIL - [Element interface: operation before([object Object\],[object Object\])] - expected: FAIL - - [Element interface: operation after([object Object\],[object Object\])] - expected: FAIL - [Element interface: element must inherit property "hasAttributes" with the proper type (7)] expected: FAIL @@ -285,15 +243,9 @@ [Element interface: calling removeAttributeNode(Attr) on element with too few arguments must throw TypeError] expected: FAIL - [Element interface: element must inherit property "prepend" with the proper type (31)] - expected: FAIL - [Element interface: calling prepend([object Object\],[object Object\]) on element with too few arguments must throw TypeError] expected: FAIL - [Element interface: element must inherit property "append" with the proper type (32)] - expected: FAIL - [Element interface: calling append([object Object\],[object Object\]) on element with too few arguments must throw TypeError] expected: FAIL @@ -309,15 +261,9 @@ [Element interface: calling queryAll(DOMString) on element with too few arguments must throw TypeError] expected: FAIL - [Element interface: element must inherit property "before" with the proper type (39)] - expected: FAIL - [Element interface: calling before([object Object\],[object Object\]) on element with too few arguments must throw TypeError] expected: FAIL - [Element interface: element must inherit property "after" with the proper type (40)] - expected: FAIL - [Element interface: calling after([object Object\],[object Object\]) on element with too few arguments must throw TypeError] expected: FAIL @@ -327,12 +273,6 @@ [NamedNodeMap interface: operation setNamedItemNS(Attr)] expected: FAIL - [CharacterData interface: operation before([object Object\],[object Object\])] - expected: FAIL - - [CharacterData interface: operation after([object Object\],[object Object\])] - expected: FAIL - [Text interface object length] expected: FAIL @@ -345,42 +285,24 @@ [Text interface: calling splitText(unsigned long) on document.createTextNode("abc") with too few arguments must throw TypeError] expected: FAIL - [CharacterData interface: document.createTextNode("abc") must inherit property "before" with the proper type (9)] - expected: FAIL - [CharacterData interface: calling before([object Object\],[object Object\]) on document.createTextNode("abc") with too few arguments must throw TypeError] expected: FAIL - [CharacterData interface: document.createTextNode("abc") must inherit property "after" with the proper type (10)] - expected: FAIL - [CharacterData interface: calling after([object Object\],[object Object\]) on document.createTextNode("abc") with too few arguments must throw TypeError] expected: FAIL - [CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "before" with the proper type (9)] - expected: FAIL - [CharacterData interface: calling before([object Object\],[object Object\]) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError] expected: FAIL - [CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "after" with the proper type (10)] - expected: FAIL - [CharacterData interface: calling after([object Object\],[object Object\]) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError] expected: FAIL [Comment interface object length] expected: FAIL - [CharacterData interface: document.createComment("abc") must inherit property "before" with the proper type (9)] - expected: FAIL - [CharacterData interface: calling before([object Object\],[object Object\]) on document.createComment("abc") with too few arguments must throw TypeError] expected: FAIL - [CharacterData interface: document.createComment("abc") must inherit property "after" with the proper type (10)] - expected: FAIL - [CharacterData interface: calling after([object Object\],[object Object\]) on document.createComment("abc") with too few arguments must throw TypeError] expected: FAIL @@ -885,12 +807,6 @@ [Document interface: xmlDoc must inherit property "createNodeIterator" with the proper type (25)] expected: FAIL - [Document interface: xmlDoc must inherit property "prepend" with the proper type (32)] - expected: FAIL - - [Document interface: xmlDoc must inherit property "append" with the proper type (33)] - expected: FAIL - [Document interface: xmlDoc must inherit property "query" with the proper type (34)] expected: FAIL @@ -927,42 +843,18 @@ [Comment interface: existence and properties of interface object] expected: FAIL - [DocumentType interface: operation replaceWith([object Object\],[object Object\])] - expected: FAIL - - [DocumentType interface: document.doctype must inherit property "replaceWith" with the proper type (5)] - expected: FAIL - [DocumentType interface: calling replaceWith([object Object\],[object Object\]) on document.doctype with too few arguments must throw TypeError] expected: FAIL - [Element interface: operation replaceWith([object Object\],[object Object\])] - expected: FAIL - - [Element interface: element must inherit property "replaceWith" with the proper type (41)] - expected: FAIL - [Element interface: calling replaceWith([object Object\],[object Object\]) on element with too few arguments must throw TypeError] expected: FAIL - [CharacterData interface: operation replaceWith([object Object\],[object Object\])] - expected: FAIL - - [CharacterData interface: document.createTextNode("abc") must inherit property "replaceWith" with the proper type (11)] - expected: FAIL - [CharacterData interface: calling replaceWith([object Object\],[object Object\]) on document.createTextNode("abc") with too few arguments must throw TypeError] expected: FAIL - [CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "replaceWith" with the proper type (11)] - expected: FAIL - [CharacterData interface: calling replaceWith([object Object\],[object Object\]) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError] expected: FAIL - [CharacterData interface: document.createComment("abc") must inherit property "replaceWith" with the proper type (11)] - expected: FAIL - [CharacterData interface: calling replaceWith([object Object\],[object Object\]) on document.createComment("abc") with too few arguments must throw TypeError] expected: FAIL diff --git a/tests/wpt/metadata/html/dom/interfaces.html.ini b/tests/wpt/metadata/html/dom/interfaces.html.ini index 2e2eeeca4cf..a254db3f69b 100644 --- a/tests/wpt/metadata/html/dom/interfaces.html.ini +++ b/tests/wpt/metadata/html/dom/interfaces.html.ini @@ -1185,15 +1185,9 @@ [Document interface: document.implementation.createDocument(null, "", null) must inherit property "all" with the proper type (81)] expected: FAIL - [Document interface: document.implementation.createDocument(null, "", null) must inherit property "prepend" with the proper type (87)] - expected: FAIL - [Document interface: calling prepend([object Object\],[object Object\]) on document.implementation.createDocument(null, "", null) with too few arguments must throw TypeError] expected: FAIL - [Document interface: document.implementation.createDocument(null, "", null) must inherit property "append" with the proper type (88)] - expected: FAIL - [Document interface: calling append([object Object\],[object Object\]) on document.implementation.createDocument(null, "", null) with too few arguments must throw TypeError] expected: FAIL @@ -2190,15 +2184,9 @@ [Element interface: calling removeAttributeNode(Attr) on document.createElement("noscript") with too few arguments must throw TypeError] expected: FAIL - [Element interface: document.createElement("noscript") must inherit property "prepend" with the proper type (31)] - expected: FAIL - [Element interface: calling prepend([object Object\],[object Object\]) on document.createElement("noscript") with too few arguments must throw TypeError] expected: FAIL - [Element interface: document.createElement("noscript") must inherit property "append" with the proper type (32)] - expected: FAIL - [Element interface: calling append([object Object\],[object Object\]) on document.createElement("noscript") with too few arguments must throw TypeError] expected: FAIL @@ -2214,15 +2202,9 @@ [Element interface: calling queryAll(DOMString) on document.createElement("noscript") with too few arguments must throw TypeError] expected: FAIL - [Element interface: document.createElement("noscript") must inherit property "before" with the proper type (39)] - expected: FAIL - [Element interface: calling before([object Object\],[object Object\]) on document.createElement("noscript") with too few arguments must throw TypeError] expected: FAIL - [Element interface: document.createElement("noscript") must inherit property "after" with the proper type (40)] - expected: FAIL - [Element interface: calling after([object Object\],[object Object\]) on document.createElement("noscript") with too few arguments must throw TypeError] expected: FAIL @@ -9519,9 +9501,6 @@ [HTMLFontElement interface: document.createElement("font") must inherit property "size" with the proper type (2)] expected: FAIL - [Element interface: document.createElement("noscript") must inherit property "replaceWith" with the proper type (41)] - expected: FAIL - [Element interface: calling replaceWith([object Object\],[object Object\]) on document.createElement("noscript") with too few arguments must throw TypeError] expected: FAIL