attributes-are-nodes.html (1641B)
1 <!DOCTYPE html> 2 <meta charset="utf-8"> 3 <title>Attributes are Nodes but should not be accepted outside of the `attributes` NamedNodeMap</title> 4 <link rel=help href="https://dom.spec.whatwg.org/#dom-core-changes"> 5 <script src="/resources/testharness.js"></script> 6 <script src="/resources/testharnessreport.js"></script> 7 8 <script> 9 "use strict"; 10 11 test(() => { 12 13 const attribute = document.createAttribute("newattribute"); 14 15 assert_true(attribute instanceof Node, "attribute instances are instances of Node"); 16 assert_true(Attr.prototype instanceof Node, "attribute instances are instances of Node"); 17 18 }, "Attrs are subclasses of Nodes"); 19 20 test(() => { 21 22 const parent = document.createElement("p"); 23 24 const attribute = document.createAttribute("newattribute"); 25 assert_throws_dom("HierarchyRequestError", () => { 26 parent.appendChild(attribute); 27 }); 28 29 }, "appendChild with an attribute as the child should fail"); 30 31 test(() => { 32 33 const parent = document.createElement("p"); 34 parent.appendChild(document.createElement("span")); 35 36 const attribute = document.createAttribute("newattribute"); 37 assert_throws_dom("HierarchyRequestError", () => { 38 parent.replaceChild(attribute, parent.firstChild); 39 }); 40 41 }, "replaceChild with an attribute as the child should fail"); 42 43 test(() => { 44 45 const parent = document.createElement("p"); 46 parent.appendChild(document.createElement("span")); 47 48 const attribute = document.createAttribute("newattribute"); 49 assert_throws_dom("HierarchyRequestError", () => { 50 parent.insertBefore(attribute, parent.firstChild); 51 }); 52 53 }, "insertBefore with an attribute as the child should fail"); 54 55 </script>