<!DOCTYPE html>
<html>
<body>
<div id="console"></div>
<style>
div { -webkit-column-count: 1; }
h2 { -webkit-column-span: all; }
</style>
<script src="../../resources/js-test-pre.js"></script>
<script>
if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.waitUntilDone();
}

function runTest()
{
    document.body.offsetTop;
    child = document.getElementById('test');
    child.parentNode.removeChild(child);
    child = document.getElementById('anything');
    gc();
    document.body.innerHTML = "PASS";

    if (window.testRunner)
        testRunner.notifyDone();
}

onload = function() { setTimeout(runTest, 0); }
</script>
<script src="../../resources/js-test-post.js"></script>
<div>
<span id="test"><h2></span>
</div>
</body>
</html>
