<html>
    <head>
        <script>
            function test()
            {
                if (window.layoutTestController)
                    layoutTestController.dumpAsText();
                var sl = document.getElementById('sl');
                var event = document.createEvent("MouseEvent");
                event.initMouseEvent("mousedown", true, true, window, 1, sl.offsetLeft, sl.offsetTop, sl.offsetLeft, sl.offsetTop, false, false, false, false, 0, document);
                sl.dispatchEvent(event);
            }
        </script>
    </head>
    <body onload="test()">
        This tests that we don't crash if a menu list's renderer is destroyed during the mouse down event.
        <br>
        <select id="sl" onmousedown="this.style.display='none'"><option>test</select>
    </body>
</html>
