Re: [WebIDL] interface objects with [Constructor] and [[Call]]

On Jun 11, 2010, at 3:34 PM, Brendan Eich wrote:

> On Jun 11, 2010, at 11:31 PM, James Graham wrote:
> 
>> 
>> 
>> On Fri, 11 Jun 2010, Maciej Stachowiak wrote:
>>> 
>>> Another possibility when there are no legacy constraints is to not implement [[Call]], so that there is only one way to invoke the constructor. For vanilla JS functions, calling them with and without "new" has quite different behavior. And for many builtins, calling with and without "new" actually does subtly different things. Thus, I don't think we want to encourage developers to mix and match.
>>> 
>> 
>> Fair enough, unless the legacy points us strongly in the other direction.
> 
> For XMLHttpRequest, Travis claimed legacy is in the other direction.

We definitely shouldn't change XMLHttpRequest itself. This would be an open question for new Webbish APIs that expose constructors, such as WebSocket or Worker.

> 
> JS is not a B&D language, so I'm more in favor of [[Call]] == [[Construct]]. Unless there is future-proofing benefit in reserving [[Call]]. And the horses are not already out of the barn.

I don't feel very strongly about this either way.

Regards,
Maciej

Received on Friday, 11 June 2010 23:42:37 UTC