| <!DOCTYPE html> |
| <script src="../../../resources/js-test.js"></script> |
| <script> |
| |
| description("This tests the prototype chain of DOMException objects.") |
| |
| var e; |
| try { |
| document.appendChild(document); |
| // raises a HIERARCHY_REQUEST_ERR |
| } catch (err) { |
| e = err; |
| } |
| |
| shouldBeEqualToString("e.toString()", "HierarchyRequestError: Failed to execute 'appendChild' on 'Node': Nodes of type '#document' may not be inserted inside nodes of type '#document'."); |
| shouldBeEqualToString("Object.prototype.toString.call(e)", "[object DOMException]"); |
| shouldBeEqualToString("Object.prototype.toString.call(e.__proto__)", "[object DOMExceptionPrototype]"); |
| shouldBeEqualToString("Object.prototype.toString.call(e.__proto__.__proto__)", "[object Object]"); |
| shouldBeEqualToString("e.constructor.toString()", "function DOMException() { [native code] }"); |
| shouldBeTrue("e instanceof DOMException"); |
| shouldBeTrue("e instanceof Error"); |
| shouldBe("e.constructor", "window.DOMException"); |
| shouldBe("e.HIERARCHY_REQUEST_ERR", "e.constructor.HIERARCHY_REQUEST_ERR"); |
| shouldBe("e.HIERARCHY_REQUEST_ERR", "3"); |
| shouldBe("e.code", "3"); |
| shouldBeEqualToString("e.name", "HierarchyRequestError"); |
| shouldBeEqualToString("e.message", "Failed to execute 'appendChild' on 'Node': Nodes of type '#document' may not be inserted inside nodes of type '#document'."); |
| </script> |