> On Jul 26, 2016, at 11:52 PM, Claude Pache <claude.pa...@gmail.com> 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 <https://tc39.github.io/ecma262/#sec-%25iteratorprototype%25-@@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 <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 <https://tc39.github.io/ecma262/#sec-evaluatenew> says: If IsConstructor(constructor) is false, throw a TypeError exception.
_______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss