- 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