On 11/14/11 3:01 PM, Allen Wirfs-Brock wrote:
On Nov 14, 2011, at 2:01 PM, Brendan Eich wrote:
On Nov 14, 2011, at 12:16 PM, Allen Wirfs-Brock wrote:
let Point = {
x:0,
y,0,
constructor(x,y} {
this.x=x;
this.y=y;
}
}.constructor; //<----------- note added property reference
let p = new Point(1,2); //new operator applied to a constructible
function
So can you spec operator new a bit? It tries [[Construct]] and if
missing, tries for a .constructor property that it calls on a fresh
instance of Object whose [[Prototype]] is the exemplar?
Yup, that's essentially the semantics. I'm going to write up the
object exemplar strawman which will cover this (and also instanceof).
So if the new operator will work correctly with both object and function
exemplars, then what do we need the class operator for? Given an object
exemplar C, will 'new C()' and 'new class C()' do exactly the same
thing? That seems bad. Sorry if I'm being obtuse, but I can't see why
we need both new semantics for 'new' and a 'class' operator.
David
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss