- From: Brendan Eich <brendan@mozilla.com>
- Date: Sun, 27 Sep 2009 11:14:58 -0700
- To: es-discuss@mozilla.org
- Cc: public-webapps@w3.org, HTML WG <public-html@w3.org>
On Sep 27, 2009, at 10:41 AM, David-Sarah Hopwood wrote:
> Brendan Eich wrote:
>> On Sep 26, 2009, at 6:08 PM, Maciej Stachowiak wrote:
>>
>>> This may provide a way to implement some of these behaviors in pure
>>> ECMAScript. The current proposal does allow [[Construct]] without
>>> [[Call]], but not [[Call]] and [[Construct]] that both exist but
>>> with
>>> different behavior.
>>
>> Date needs the latter.
>
> That can already be done in ES5. As I've previously suggested:
>
> function Date(yearOrValue, month, date, hours, minutes, seconds,
> ms) {
> "use strict";
> if (this === undefined) {
> return TimeToString(CurrentTime());
> }
> // constructor behaviour
> ...
> }
Of course, a variation on "the idiom".
This is similar to what many implementations do too, rather than the
implementation providing analogues of [[Call]] and [[Construct]]
internal method on a non-function Date object. It works for Boolean,
Number, String, and RegExp too.
But it is just a bit unsightly!
/be
Received on Sunday, 27 September 2009 18:15:48 UTC