<html>
<head>
<style type="text/css">
html, table {
position: relative;
}
</style>
</head>

<body>

To reproduce this bug outside of DumpRenderTree, click the link below. If broken,
we will crash. <br>

<script>
function disappear() {
    var e = document.getElementById('foo');
    
    if(e.style.display !='none') 
        e.style.display='none'; 
    else 
        e.style.display=''; 
    
    return false;
}
</script>

<table>
<tr><td><a href="#" onclick="disappear()">link</a></td></tr>
<tr id="foo" style="">
    <td>
    <table>
        <tr><td>content<br>content<br>content<br></td></tr>
    </table>
    </td>
</tr>
</table>

<script>
    if (window.eventSender) {
        eventSender.mouseMoveTo(30,20);
        eventSender.mouseDown();
        eventSender.mouseUp();
    }
</script>

</body>
</html>
