<!DOCTYPE html>
<html>
<body>
This test verifies that deleting DOM elements in a DOMSubtreeModified handler triggered by and execCommand('bold') does not produce a crash.
<div id="test" contenteditable style="border: 1px solid red">
<b class="x" id="inlined">
    <u></u>
    x
</b>
</div>
<script>
function treeModifiedHandler()
{
    document.removeEventListener("DOMSubtreeModified", treeModifiedHandler, false);

    var b = document.getElementById("inlined");
    b.insertBefore(document.createTextNode("test"), b.firstChild);

    var range = document.createRange();
    range.setStart(b,0);
    range.setEnd(b,2);
    range.deleteContents();
    document.body.appendChild(document.createTextNode("PASS"));
}

function runtest()
{
    var test = document.getElementById('test');
    window.getSelection().selectAllChildren(test);

    document.execCommand('bold', false, null);
    document.addEventListener("DOMSubtreeModified", treeModifiedHandler, false);
    document.execCommand('bold', false, null);
}

if (window.testRunner)
    testRunner.dumpAsText();

runtest();
</script>
</body>
</html>
