- From: Boris Zbarsky <bzbarsky@MIT.EDU>
- Date: Wed, 16 Apr 2014 01:49:05 -0400
- To: public-fx@w3.org
There are actually several issues here:
1) (AnimationEffect or EffectCallback or OneOrMoreKeyframes) is not a
valid WebIDL union, because EffectCallback is a callback type an
OneOrMoreKeyframes is a union of a dictionary type (ish) and a sequence
type. But callbacks and dictionaries are not distinguishable, so can't
be used in the same union.
2) The "KeyFrame" not-really-a-dictionary thing doesn't have a clear
processing model defined. Specifically:
a) In section 5.14.6 step 7 there is no definition of what "Iterate
over the properties of keyframe input." means. There are several
possible definitions, which lead to different observable behavior.
b) Step 7 talks about setting properties of keyframe input, which
doesn't make sense. Does it mean to talk about setting properties
of keyframe result?
c) Nothing seems to define _when_ the algorithm of section 5.14.6 is
invoked. For example, when animate() is called with two arguments,
the first of which is a sequence, is that algorithm performed on
elements of the sequence before the second argument is coerced to
(double or TimingInput)? This matters, because that coercion can
have side-effects, as can the algorithm in question, and the
ordering needs to be defined.
It seems like what's really wanted here is to define the first argument
of animate() to be "object?" and then in the prose for the method define
the actual processing model for determining which sort of thing it
should be. That would solve problems (1) and (2c) above. (2a) and (2b)
would need to be addressed separately...
-Boris
Received on Wednesday, 16 April 2014 05:49:34 UTC