<!DOCTYPE html>
<style> 
* {    
    -webkit-columns: 2;
    display: table-cell;
}
</style>
<script>
if (window.testRunner)
    testRunner.dumpAsText();

function crash()
{
    if (window.eventSender) {
        eventSender.mouseDown();

        // Clean text output.
        var script = document.getElementsByTagName("script")[0];
        script.parentNode.removeChild(script);
        var style = document.getElementsByTagName("style")[0];
        style.parentNode.removeChild(style);
    }
}
window.addEventListener("load", crash, false);
</script>
This test should not hit an ASSERT.
To test it in the browser, just change the focus by clicking anywhere on the page.
<link></link>
<textarea autofocus>
