web-animations/web-animations-js — pull request #466 by steveblock (2013-08-29 06:10:31+00:00)
Title: For a TimedItem with infinte duration, the transformed time should should be equal to the directed time

Currently, in order to calculate the transformed time from the directed time,
we divide by the duration to get the time fraction, apply the timing function,
then multiply the result by the duration. This means that if the duration is
infinity, the transformed time is always zero, so the TimedItem's effect or
children will not play.

For a group, this behavior is probably unexpected. Consider the following
example ...

document.timeline.play(new ParGroup([
new Animation(foo, bar, {iterations: Infinity, duration: 2}),
new Animation(foo, bar, {iterations: Infinity, duration: 3}),
]));

A reasonable expectation is that both animations will repeat inefinitely, but
currently, neither will play. Note that in this example, the
'iterations: Infinity' can't easily be moved to the ParGroup because the
animations have different durations.

Instead, if the duration is infinity, we should set the transformed time to the
directed time. This means that the childrens' inherited times will progress as
expected, so they will play.

Note that the time fraction will remain zero, so an Animation with infinite
duration will still not play.