<html>
<head>
    <script src="resources/print.js"></script>
    <script>
        if (window.testRunner)
            testRunner.dumpAsText();

        document.addEventListener("beforeload", function(event) {
            var scriptElement = document.getElementById("toremove");
            if (scriptElement) {
                scriptElement.parentElement.removeChild(scriptElement);
                event.preventDefault();
            }
        }, true);
    </script>
</head>
<body>
    <p>This page tests that you can correctly remove a script element in its beforeload listener without causing a crash.</p>
    <script id="toremove" src="resources/fail.js"></script>
    <div id="console"></div>
    <script>
        if (document.getElementById("toremove"))
            print("FAIL", "red");
        else
            print("PASS", "green");
    </script>
</body>
</html>
