<!DOCTYPE html>
<html>
<head>
<style>

#target {
    position: absolute;
    left: 0;
    top: 0;
    width: 100px;
    height: 100px;
    background-color: black;
}

</style>
</head>
<body>
<div id="target"></div>
<script>

if (window.testRunner)
    testRunner.waitUntilDone();

const animation = document.getElementById("target").animate({ transform: ["translateX(0)", "translateX(100px)"] }, 1000);

animation.ready.then(() => {
    // Ensure accelerated animations have been commmitted by waiting for the next frame.
    requestAnimationFrame(() => {
        // We pause the animation right away.
        animation.pause();

        // Then on the next frame, we change its delay to seek it to its mid-point.
        requestAnimationFrame(() => {
            const effect = animation.effect;
            const duration = effect.getTiming().duration;
            const delay = animation.currentTime - 0.5 * duration;
            animation.effect.updateTiming({ delay });

            // Then wait another frame to ensure the seek was committed.
            if (window.testRunner)
                requestAnimationFrame(() => testRunner.notifyDone());
        });
    });
});

</script>
</body>
</html>
