<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script src="../../resources/js-test.js"></script>
</head>
<body>
<script>
<![CDATA[
description("Test that ProcessingInstruction inherits from CharacterData");

shouldBe("ProcessingInstruction.__proto__", "CharacterData");
shouldBe("ProcessingInstruction.prototype.__proto__", "CharacterData.prototype");

var processingInstruction = document.createProcessingInstruction("target", "data");
shouldBe("processingInstruction.__proto__.__proto__", "CharacterData.prototype");

shouldBeEqualToString("processingInstruction.target", "target");
shouldBeEqualToString("processingInstruction.data", "data");
shouldBe("processingInstruction.length", "4");

processingInstruction.data = null;
shouldBeEqualToString("processingInstruction.data", "");
shouldBe("processingInstruction.length", "0");
]]>
</script>
</body>
</html>
