<script>

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

function runTest() {
    window.getSelection().setBaseAndExtent(start, 0, null, 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>
