<!DOCTYPE html><!-- webkit-test-runner [ enableKeygenElement=true ] -->
<html>
    <head>
        <script src="../../resources/js-test-pre.js"></script>
        <script>
            window.jsTestIsAsync = true;

            function test()
            {
                description("Test MutationObserver not dispatched for a parentless element with no listeners");

                document.body.addEventListener('DOMSubtreeModified', function(){ }, true);
                
                // HTMLKeygenElement creates a <select> element, which sets its 'pseudo' attribute
                // in the constructor.
                var keygen = document.createElement('keygen');
                setTimeout(finish, 0);
            }

            function finish()
            {
                testPassed("Test passed, no crash.");
                finishJSTest();
            }

        </script>
    </head>
    <body onload="test()">
        <script src="../../resources/js-test-post.js"></script>
    </body>
</html>
