W3C home > Mailing lists > Public > public-webapps@w3.org > January to March 2009

Re: DOMTimeStamp binding

From: Kartikaya Gupta <lists.webapps@stakface.com>
Date: Thu, 12 Feb 2009 15:08:59 +0000
To: Darin Adler <darin@apple.com>
Cc: whatwg@whatwg.org, public-webapps@w3.org
Message-ID: <E1LXdBv-00089T-Vj@maggie.w3.org>

On Wed, 11 Feb 2009 15:03:01 -0800, Darin Adler <darin@apple.com> wrote:
> On Feb 11, 2009, at 12:14 PM, Kartikaya Gupta wrote:
> > I updated to Safari 3.2 on Windows (which looks it also has WebKit  
> > 525.27.1) and you're right, it is now showing "number" instead of  
> > "object". I guess this was changed not too long ago. So then my  
> > question is: why was it changed?
> No, this was not changed.
> I don't understand why you were getting that strange result, but  
> WebKit has always shown "number" for this. I went back to old  
> versions, including digging out a copy of Safari 2 and every version I  
> tested yields a number. There was never any code that attempted to  
> return anything except a number.

Well, I don't know what to tell you. Latest version of Chrome is still giving me a Date object. I don't know what version of WebKit it's using.

> More to the point, there's also a false premise in the specification's  
> claim that this should be a Date. The Date class in JavaScript boils  
> down to a double for its internal representation; I believe that's by  
> design and not just a detail of the WebKit implementation. So the  
> claim that a number, also a double, can't handle the entire range of  
> DOMTimestamp, but the Date class can is probably incorrect. Maybe  
> someone can give a specific example with details of how this would go  
> wrong — I don’t think there is any such example.

The DOM 3 Core actually says that an "integer type" in ECMAScript is too small. The ECMA-262 spec doesn't say anything about an "integer" type; all numbers are doubles, so I have no idea what the DOM spec is referring to. However, note that section of ECMA-262 does says that the valid range for a Date object is slightly smaller than that representable by a double (8,640,000,000,000,000 milliseconds on either side of epoch, instead of 9,007,199,254,740,991), so there is a slight difference between returning a number and returning a Date. However, in practice it's unlikely those scenarios will be hit.

Received on Thursday, 12 February 2009 15:09:42 UTC

This archive was generated by hypermail 2.3.1 : Friday, 27 October 2017 07:26:14 UTC