<html>
<head>
<script>
    function timeoutHandler() {
            // Invoke it a few times so that we get the nesting
            count++;
            
            if (count > 10)  {
                clearInterval(intervalID);
                
                if (window.layoutTestController)
                    layoutTestController.notifyDone();
            }
        }

    var intervalID;
    var count = 0;

    function runTests() {
        if (window.layoutTestController) {
            layoutTestController.dumpAsText()
            layoutTestController.waitUntilDone();
        }
            
        intervalID = setInterval(timeoutHandler, 1);
    }
    </script>
</head>
<body onload="runTests()">
    This tests that removing an interval timer inside of its timeout handler does not cause a crash. Success, didn't crash!
</body>
</html>
