function waitForIterationChange(animation) {
  var initialIteration = animation.effect.getComputedTiming().currentIteration;
  return new Promise(resolve => {
    window.requestAnimationFrame(handleFrame = () => {
      if (animation.effect.getComputedTiming().currentIteration !=
            initialIteration) {
        resolve();
      } else {
        window.requestAnimationFrame(handleFrame);
      }
    });
  });
}