<!DOCTYPE html>
<html>
Test passes if it does crash.
<style>
.b1 { display: block; -webkit-column-width: 100px; }
.d1 { -webkit-column-span: all; }
</style>
<script>
if (window.testRunner)
    testRunner.dumpAsText();

function runTest() {
div1 = document.createElement('div');
div1.setAttribute('class', 'd1');
button1 = document.createElement('button');
button1.setAttribute('class', 'b1');
document.documentElement.appendChild(button1);
document.documentElement.offsetTop;
button1.appendChild(div1);
document.documentElement.offsetTop;
document.documentElement.innerHTML = "PASS";
}
window.onload = runTest;
</script>
</html>
