<!DOCTYPE html>
<html>
<style>
#test0 {
    -webkit-column-count:2;
    display: table-cell;
}
#test0::first-letter {
    background-size: auto;
}
#test1 {
    float: right;
}
</style>
<script>
    onload = function() {
        test0=document.createElement('div');
        test0.setAttribute('id', 'test0');
        document.body.appendChild(test0);
        test1=document.createElement('div');
        test1.setAttribute('id', 'test1');
        test0.appendChild(test1);
        test0.appendChild(document.createTextNode(unescape('%u3200A')));
        document.designMode = 'on';
        window.getSelection().setBaseAndExtent(test1, 0, test1, 0);
        document.execCommand('InsertLineBreak');
        document.execCommand('selectall');
        document.execCommand('strikethrough');
        document.execCommand('FormatBlock', false, '<'+'pre>');

        document.body.offsetTop;
        document.body.innerHTML = "PASS, if no crash or assert in debug build."

        if (window.testRunner)
            testRunner.dumpAsText();
    }
</script>
<body>
</body>
</html>
