At least in Chrome, new weirdFunction() !== iter nor does it throw a TypeError... but maybe that's a bug...
On Wed, Jul 27, 2016 at 10:12 AM, Allen Wirfs-Brock <[email protected]> wrote: > > On Jul 26, 2016, at 11:52 PM, Claude Pache <[email protected]> wrote: > > > var weirdInstance = new weirdFunction(); // what is this?? > ``` > > > My intuition says: "TypeError: weirdFunction is not a constructor”. > > > exactly, because weirdFunction is actually > https://tc39.github.io/ecma262/#sec-%iteratorprototype%-@@iterator which > is a built-in function that is not identified as a constructor. > > https://tc39.github.io/ecma262/#sec-ecmascript-standard-built-in-objects > says: > "Built-in function objects that are not identified [in this > specification] as constructors do not implement the [[Construct]] internal > method unless otherwise specified in the description of a particular > function.” > > Step 7 of https://tc39.github.io/ecma262/#sec-evaluatenew says: > If IsConstructor(*constructor*) is *false*, throw a TypeError exception. > >
_______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

