<html>
<head>
<script src="../../resources/js-test.js"></script>
<script src="xpath-test-pre.js"></script>
</head>
<body>
<script>
description("Test that iterators are invalidated even if the original context is detached.");
var doc = document.implementation.createDocument(null, "doc", null);
var root = doc.createElement("div");
root.appendChild(doc.createElement("span"));
root.appendChild(doc.createElement("p"));

var result = doc.evaluate(".//*", root, null, XPathResult.ORDERED_NODE_ITERATOR_TYPE, null);
shouldBe("result.invalidIteratorState", "false");
shouldBe("result.iterateNext().tagName", "'span'");

debug("Modifying the document...");
doc.documentElement.setAttribute("foo", "bar");

shouldBe("result.invalidIteratorState", "true");
shouldThrow("result.iterateNext()");

</script>
</body>
</html>
