<html>
<head>
<script src=../../resources/dump-as-markup.js language="JavaScript" type="text/JavaScript" ></script>
<script src=../editing.js language="JavaScript" type="text/JavaScript" ></script>
<script>
function runTest()
{
    br = document.getElementById("lastBR");
    sel = window.getSelection();
    sel.setBaseAndExtent(br, 0, br, 0);
    deleteCommand();
}
</script>
</head>

<body>
<p><a href="https://bugs.webkit.org/show_bug.cgi?id=35369">Bug 35369</a> and <a href="https://bugs.webkit.org/show_bug.cgi?id=35632">Bug 35632</a></p>
<p>Executing a delete command when positioned before a BR in a table cell (esp. the last)</p>
<div contenteditable>
<table id="table"><tr><td>1</td><td>2</td></tr><tr><td>3</td><td>4<br><br id="lastBR"></td></tr></table>
</div>
<script>
runTest();
</script>
</body>
</html>
