Re: [cssom-view] unrestricted double in ScrollToOptions

On Mon, Mar 2, 2015 at 8:10 AM, Simon Pieters <simonp@opera.com> wrote:

> On Fri, 27 Feb 2015 10:25:17 +0100, Simon Pieters <simonp@opera.com>
> wrote:
>
>  The CSSOM View spec uses `double` in ScrollToOptions top/left dictionary
>> members, which means that non-finite numbers throw TypeError per WebIDL.
>>
>> http://dev.w3.org/csswg/cssom-view/#dictdef-scrolltooptions
>>
>> The spec uses `unrestricted double` (and converts non-finite numbers to
>> zero) for the arguments that were traditionally `long`, since it matches
>> the traditional `long` behavior.
>>
>> Example: scrollTo(0, NaN); // same as x.scrollTo(0, 0);
>>
>> The ScrollToOptions dictionary is new so there is no Web compat to worry
>> about.
>>
>> Example: scrollTo({top: NaN}); // throws TypeError per spec
>>
>> However, in Gecko and Blink they are implemented as `unrestricted
>> double`; non-finite numbers do not throw TypeError. (Blink doesn't convert
>> Infinity to zero, this is a known bug.) Should we change the spec to make
>> ScrollToOptions top/left `unrestricted double`, so that the dictionary
>> behaves more like the old arguments? Or do people think it is more useful
>> to throw for non-finite numbers in the dictionary?
>>
>
> kip, ajuma, any opinions?
>

Consistency with the existing scrolling methods seems like a good reason to
make ScrollToOptions top/left 'unrestricted double'. But I don't feel
super-strongly about this, so if others feel that the value of throwing on
non-finite numbers here outweighs the value of consistency, I'd be fine
with that too.

Received on Monday, 2 March 2015 15:40:09 UTC