Must built-in prototypes also be valid instances? (Was: Why DataView.prototype object's [[Class]] is "Object"?)

Brendan Eich brendan at
Sun Sep 30 09:47:59 PDT 2012

Brendan Eich wrote:
> The main thing I missed there is the prefixing of "~" on any tag 
> naming a core language built-in constructor. What's this for? Why not 
> for DOM built-ins too?

This step:

v. If tag is any of "Arguments", "Array", "Boolean", "Date", "Error", 
"Function", "JSON", "Math", "Number", "Object", "RegExp", or "String" 
then let tag be the string value "~" concatenated with the current value 
of tag.

Also: why no Error subclasses, e.g. SyntaxError?


More information about the es-discuss mailing list