<html>
<head>
    <script>
        if (window.testRunner)
            testRunner.dumpAsText();

        log = function(msg)
        {
            document.getElementById('console').appendChild(document.createTextNode(msg + "\n"));
        }
    
        onload = function()
        {
            if (!document.doctype)
                log("PASS: a doctype at the end of the document was ignored.");
            else
                log("FAIL: a doctype at the end of the document was not ignored.");
        }
    </script>
</head>
<body>
    This tests the behavior of a Doctype at the end of the document.
    <pre id="console"></pre>
</body>
</html>
<!DOCTYPE HTML>
