<!DOCTYPE html>
<html>
<head>
<script src="../../../resources/js-test-pre.js"></script>
</head>
<body>
<div id="test">
    <div id="console"></div>
</body>
<script>
window.jsTestIsAsync = true;

var select, doc1, doc2, str;

window.onload = function()
{
    select = document.createElement("select");
    var option = select.appendChild(document.createElement("option"));
    option.id = "option";

    doc1 = document.implementation.createHTMLDocument();
    doc2 = document.implementation.createHTMLDocument();

    doc1.body.appendChild(select);
    select.options.namedItem("option");

    select.removeChild(option);
    option = null;

    gc();
    setTimeout(step2, 100);
}

function step2()
{
    doc1.body.removeChild(select);
    doc2.body.appendChild(select);
    shouldBeNull("select.options.namedItem('option')");
    finishJSTest();
}
</script>
<script src="../../../resources/js-test-post.js"></script>
</html>
