<html>
<head>
    <script src="resources/print.js"></script>
    <script>
        if (window.layoutTestController)
            layoutTestController.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>
