<!DOCTYPE html>
<html>
<span id=span1></span><button id=button1>button</button>
<style>
        .embedStyle { min-height: 13pc; -webkit-transition: 10s; }
</style>
<script>
    function runTest() {
        div1 = document.createElement("div");
        document.body.appendChild(div1);
        embed1 = document.createElementNS("http://www.w3.org/1999/xhtml", "embed");
        document.body.offsetTop;
        embed1.setAttribute("class", "embedStyle");
        span1.appendChild(embed1);
        embed1.setAttribute("type", "block");
        document.body.offsetTop;
        r = document.createRange();
        r.setStart(button1, 0);
        r.setEnd(div1, div1.childNodes.length);
        window.getSelection().addRange(r);
        o = r.extractContents();
        document.body.appendChild(o);
        window.getSelection().modify("move", "Right", "character");

        if (window.testRunner) testRunner.dumpAsText();
    }
    document.addEventListener("DOMContentLoaded", runTest, false);
</script>PASS, if no crash or assert in debug
</html>
