<!DOCTYPE html>
<script src="../resources/runner.js"></script>
<div id="container" style="background-color:lime;" contenteditable></div>
<script>
var div = document.querySelector('div');
div.focus();

PerfTestRunner.measureRunsPerSecond({
    description: "Measures performance of adding new lines to an editable div using document.execCommand, then clearing it.",
    run: function() {
        for (var i = 0; i < 500; ++i)
            document.execCommand('InsertLineBreak');
        for (var i = 0; i < 500; ++i)
            document.execCommand('Delete');

        for (var i = 0; i < 500; ++i)
            document.execCommand('InsertLineBreak');
        // Move cursor to the beginning of div.
        var range = document.createRange();
        range.selectNodeContents(div);
        range.collapse(true);
        getSelection().removeAllRanges();
        getSelection().addRange(range);
        for (var i = 0; i < 500; ++i)
            document.execCommand('ForwardDelete');
    }
});
</script>
