> > It doesn’t seem right that you should have to introduce an observable > prototype property just to get [[Call]] behavior. (Or a constructor > property, if you change the syntax to `static [Symbol.call]() { … }`.) > > And it raises the question of what happens when I add a [Symbol.call] > property to other objects. What does it even mean? If I do `var obj = { > prototype: { [Symbol.call]() { console.log("foo"); } } }`, can I now call > `obj()`? Is `typeof obj === "function"`? Very strange stuff. Presumably not > very VM-friendly either, but that's just a guess. >
I'd imagine that you'd re-spec [[Call]] for class constructors to basically do `this[Symbol.call](...args)` instead of just throw. It would therefore only have an effect within class constructors. Is that still weird? Kevin
_______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss