<script>
if (window.testRunner)
    testRunner.dumpAsText();

function runTest() {
    window.getSelection().setBaseAndExtent(start, 0, start, 0);
    document.execCommand("Indent");

    document.writeln('execCommand("Indent") was crashing if the top element to be formatted is actually not an element.<br>');
    document.writeln('The test has passed if it does not crash.<br><br>')
    document.writeln('PASS');
}
</script>
<body onLoad="runTest();">
    ><defs contenteditable="true" id="start">
        <rt>AAAAAAA0A0AAAA00
