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

function runTest() {
    var container = document.createElement('div');
    container.style['-webkit-column-count'] = 1;
    document.body.appendChild(container);
    var test1 = document.createElement('div');
    test1.style['-webkit-column-span'] = 'all';
    container.appendChild(test1);
    var test2 = document.createElement('span'); 
    container.appendChild(test2);
    test2.appendChild(document.createElement('div'));
    var test3 = document.createElement('div');
    test3.style.display = 'table-column';
    container.appendChild(test3);
    container.appendChild(document.createElement('div'));
}
</script>
</head>
<body onload="runTest()">
Test passes if it does not crash.
</body>
</html>
