47 lines
1.7 KiB
HTML
47 lines
1.7 KiB
HTML
<html><head>
|
|
<script>
|
|
if (window.testRunner)
|
|
testRunner.dumpAsText();
|
|
|
|
// ANY_ORDERED_NODE_TYPE should be the last item in the array so that
|
|
// there is only one node that can match (thus it does not tie us to any
|
|
// specific ordering in the nodeset).
|
|
var types = [ XPathResult.FIRST_ORDERED_NODE_TYPE, XPathResult.ANY_UNORDERED_NODE_TYPE ];
|
|
|
|
function gc()
|
|
{
|
|
if (window.GCController)
|
|
return GCController.collect();
|
|
|
|
for (var i = 0; i < 10000; i++) { // > force garbage collection (FF requires about 9K allocations before a collect)
|
|
var s = new String("abc");
|
|
}
|
|
}
|
|
|
|
function test(type)
|
|
{
|
|
document.getElementsByTagName("span")[0].foo = "PASS";
|
|
var result = document.evaluate("//span", document.documentElement, null, type, null);
|
|
document.body.removeChild(document.getElementsByTagName("span")[0]);
|
|
gc();
|
|
var console = document.getElementById("console");
|
|
console.appendChild(document.createTextNode(result.singleNodeValue.foo));
|
|
console.appendChild(document.createElement("br"));
|
|
}
|
|
|
|
function tests()
|
|
{
|
|
while (types.length) {
|
|
test(types.pop());
|
|
}
|
|
}
|
|
</script>
|
|
</head>
|
|
<body onload="tests()">
|
|
<span></span>
|
|
<span></span>
|
|
<div> Test for bug <a href="https://bugs.webkit.org/show_bug.cgi?id=34231">34231</a>: Nodes in XPath result snapshots should keep JS wrappers alive.</div>
|
|
<div> For this test to PASS you should see 2 PASS below.</div><br>
|
|
<div id="console"></div>
|
|
</body></html>
|