<!doctype HTML>
<style>
.div { content: url(); }
.option { -webkit-transition: -webkit-transform 30s, vertical-align 0s;  -webkit-transform: scale(0.5, 0.5); }
</style>
<script>
    if (window.testRunner) {
        testRunner.waitUntilDone();
        testRunner.dumpAsText();
    }

    function boom() {
        div = document.getElementById("div");
        setTimeout("div.setAttribute('class', 'div');", 50);

        option = document.createElement('option');
        setTimeout("option.setAttribute('class', 'option');", 0);

        aside = document.createElement('aside');
        aside.appendChild(option);
        blockquote = document.getElementById('blockquote');
        blockquote.appendChild(aside);
        setTimeout("testRunner.notifyDone();",50);
    }
    window.onload = boom;
</script>
<div id="div"><blockquote id="blockquote"></blockquote></div>
