- 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:41 UTC