chromium/third_party/blink/web_tests/animations/stability/animation-add-events-in-handler.html

<!DOCTYPE html>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script>
var test = async_test("Ensure that adding animation events in the handler does not crash");

function touchElement(evt) {
    getComputedStyle(evt.srcElement.firstElementChild)['-webkit-animation-duration'];
    evt.srcElement.firstElementChild.style.display = 'block';
    total++;
    if (total == 500) {
        test.done();
    }
}

window.onload = test.step_func(() => {
    total = 0;
    var padding = document.getElementsByClassName("padding");
    for (var i = 0; i < padding.length; i++)
        padding[i].addEventListener('webkitAnimationIteration', test.step_func(touchElement), false, false);
});
</script>
<style>
@-webkit-keyframes keyframes {
    from { }
}

.crash {
    -webkit-animation-name: keyframes;
}

.padding {
    -webkit-animation-name: keyframes;
    -webkit-animation-iteration-count: infinite;
    -webkit-animation-duration: 0.001s;
}
</style>
<div class="padding">
<div class="padding">
<div class="padding">
<div class="padding">
<div class="padding">
<div class="padding">
<div class="padding">
<div class="padding">
<div class="padding">
<div class="padding">
<div class="padding">
<div class="padding">
<div class="padding">
<div class="padding">
<div class="padding">
<div class="padding">
<div class="padding">
<img class="crash">