<html>
<head>
<script>
function doit()
{
    var B = document.getElementById("span-B");
    B.customProperty = "B";
    B.parentNode.customProperty = "A";
    B.firstChild.customProperty = "C";

    document.getElementById("div").innerHTML = "<span>replacement content</span>";

    // create lots of objects to force a garbage collection
    var i = 0;
    var s;
    while (i < 5000) {
        i = i+1.11;
	s = s + " ";
    }

    var output= document.getElementById("output");

    output.innerHTML += B.customProperty + "<BR>";
    if (B.parentNode) {
        output.innerHTML += B.parentNode.customProperty + "<BR>";
    }
    if (B.firstChild) {
        output.innerHTML += B.firstChild.customProperty + "<BR>";
    }
}

if (window.layoutTestController) {
    layoutTestController.dumpAsText();
}

</script>
</head>

<body onload="doit()">
<div style="border: 1px solid red">
<p>
This test verifies that JavaScript wrappers for DOM nodes are
protected against garbage collection for node trees that are outside
the document, so long as there's a reference to at least one node in
the tree.
</p>
<p>
The output should be the following pieces of text on lines by themselves: "replacement content", "B", "A", "C".
</p>
</div>
<div id="div">
<span id="span-A"><span id="span-B"><span id="span-C">original span</span></span></span>
</div>
<div id="output">
</div>
</body>
</html>