<body>
<script>
if (window.layoutTestController) {
    layoutTestController.dumpAsText();
    layoutTestController.waitUntilDone();
}

function gc()
{
    if (window.GCController)
        return GCController.collect();

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

// Reload multiple times, to make crashing more likely.
var iterationsLeft = 50;
function test()
{
    if (--iterationsLeft) {
        frames[0].history.go(0);
    } else {
        gc();
        document.getElementById("result").innerText = frames[0].document.body.textContent;
        if (window.layoutTestController)
            layoutTestController.notifyDone();
    }
}
</script>
<div id="result">FAIL</div>
<iframe src="resources/createDocument-with-used-doctype-frame.html" onload="test()"></iframe>
</body>
