<html>
    <body>
        Tests that we don't crash if we clear a transitions duration during the transition end callback. This test passes if it does not crash.
        <div id="t" style="background-color:#000">test</div>
        <script>
            if (window.testRunner) {
                testRunner.dumpAsText();
                testRunner.waitUntilDone();
            }

            // Force a layout so that changing the cssText below causes an animation.
            document.body.offsetHeight;

            var el = document.getElementById('t');
            el.addEventListener('webkitTransitionEnd', function(){
                el.style.webkitTransitionDuration = '';
                if (window.testRunner)
                    testRunner.notifyDone();
            });
            el.style.cssText += ';-webkit-transition:background-color 0.2s;background-color:#fff'
        </script>
    </body>
</html>
