> 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

Reply via email to