<!DOCTYPE html>
<html>
<script>
if (window.testRunner)
    testRunner.dumpAsText();

function handler() {
    var element = event.srcElement;
    document.execCommand('Undo', false, false);
    element.parentNode.removeChild(element);
    var em = document.getElementById('em');
    var span = document.getElementById('span');
    em.insertBefore(element, span);
    document.execCommand('JustifyFull', false, false);
}
document.addEventListener("DOMCharacterDataModified", handler, true);

window.onload = function() {
    var selection = window.getSelection();
    document.execCommand("SelectAll", false, false)
    var element = document.getElementById("ruby");
    element.innerHTML = "<em id='em'>^x?x<span id='span'>x&'x";
    selection.deleteFromDocument();
    selection.deleteFromDocument();
    document.designMode = "on";
    document.execCommand('JustifyRight', false, false);
    document.execCommand('InsertHorizontalRule', false, '');
    document.documentElement.innerHTML = "PASS. WebKit didn't crash.";
};
</script>
<ruby id="ruby">
<a>A</a>
</ruby>
</html>
