<p>Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=26402">bug 26402<a/>: Crashes when using a detached DocumentType node.</p>
<p>PASS if no crash.</p>
<SCRIPT>
function gc()
{
    if (window.GCController)
        return GCController.collect();

    for (var i = 0; i < 10000; i++)
        var s = new String("");
}

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

var o = document.implementation.createDocumentType('x', null, null);
var doc = document.implementation.createDocument("doc", null, 0);
for (i in o) {
    try { o[i]; } catch (e) {}
    try { o[i](); } catch (e) {}
}
o.addEventListener("click", function() {}, true);
o.removeEventListener("click", function() {}, true);
o.childNodes;
o.childNodes.item(0);
o.firstChild;
gc();
document.write("DONE");
</SCRIPT>
