Fabrício Matté wrote:
I agree with Frankie. Assume a developer who has never seen this `new.target` construct before.
In general, ES6 has new syntax, so this is a "learn it and use it" bump, one of many.
They will first think that this is an invalid expression, as `new` is an operator. Then, upon seeing this code execute, the natural question is "What is `new`? Is it an identifier injected into Environment Records created by [[Call]] and [[Construct]]? Does this identifier resolve to an object (so that the MemberExpression would make sense)?"]
new.target in the proposal (which does not yet have consensus) evaluates to an object, but (new) is a syntax error as in ES1-5.
Yeah, it's a bit odd to grab new.identifier syntax-space and start by defining only new.target. Alternatives welcome. new^ already got an anti-grawlix reaction, new? did too (perhaps less but still).
/be _______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

