<html>
    <head>
        <script>
            function test()
            {
                if (window.testRunner)
                    testRunner.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>
