<script>

if (window.testRunner)
    testRunner.dumpAsText();

function runTest() {
    window.getSelection().setBaseAndExtent(start, 0, start, 0);
    document.execCommand("Indent");
    document.body.innerHTML = "PASS. WebKit didn't crash.";
}
</script>
<body onload="runTest();">
  <defs contenteditable="true" id="start">
  <rt id="rt">A

<script>
document.write("text");
try {
    elem = document.getElementById("rt");
    var new_elem = document.createElement("ruby");
    new_elem.innerHTML = elem.innerHTML;
    elem.parentNode.insertBefore(new_elem, elem);
} catch (e) {}
</script>
