<html>
<body>
    <p>Test for bug <a href="https://bugs.webkit.org/show_bug.cgi?id=62384">62384</a>: WebCore::WebKitCSSKeyframesRuleInternal::nameAttrSetter() - crash</p>
    <p>This test passed if it did not crash</p>
    <p id="console">FAILED (test not run)</p>
    <script>
        if (window.testRunner)
            testRunner.dumpAsText();

        function main(){
            var e = window.document.styleSheets[0].cssRules[0];
            e.cssRules.item().parentStyleSheet.removeRule();
            e.name = 'bar';
            document.getElementById('console').innerHTML = "PASSED";
        }
        window.onload = main;
    </script>
    <style>
        @-webkit-keyframes foo {
            0% {foo: bar;}
        }
    </style>
</body>
</html>
