<body>
<p>This tests for a bug where empty table rows well after the selection to delete were removed.  There should be five rows in the table below, before and after the deletion.</p>
<div contenteditable="true">
<table border="1" cellpadding="5">
<tr><td id="start">foo</td><td>bar</td><td id="end">baz</td></tr>
<tr><td>foo</td><td>bar</td><td>baz</td></tr>
<tr><td><br></td><td><br></td><td><br></td></tr>
<tr><td><br></td><td><br></td><td><br></td></tr>
</table>
</div>

<script>
start = document.getElementById("start");
end = document.getElementById("end");

window.getSelection().setBaseAndExtent(start, 0, end, end.childNodes.length);
document.execCommand("Delete");
</script>

</body>
