On Sep 27, 2009, at 11:14 AM, Brendan Eich wrote:
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!
Will this do the right thing if you explicitly bind Date to a "this"
value, for example, by calling it as window.Date(), or using call,
apply, or function.bind, or by storing Date as the property of another
random object?
Regards,
Maciej
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss