On Oct 1, 2012, at 2:44 PM, Norbert Lindenberg wrote: > It might be useful to list all the observable features to which "valid > instance of" might lead for a built-in BuiltIn.prototype, and check whether > we want them for new built-ins: > > 1) Object.prototype.toString.call(BuiltIn.prototype) returns "[object > BuiltIn]". > > True for ES5 objects, currently not true for ES Internationalization objects. > Discussion so far inconclusive.
Also not true for: EvalError, RangeError, ReferenceError, SyntaxError, TypeError, and URIError they are all spec'd to return "[object Error]" from toString > > 2) BuiltIn.prototype has state that lets BuiltIn methods successfully operate > on the object, at least as long as they don't modify the state. > > True for ES5 objects, currently also true for ES Internationalization > objects. This means Intl.Collator.prototype can be used as a Collator with > default properties, which applications might find useful. Discussion so far > inconclusive. > > 3) The state mentioned in 2) is modifiable. > > True for some ES5 objects (Array, Date, RegExp), not true for ES > Internationalization objects. The discussion seems to conclude that > modifiable prototype objects are a bad idea. > > 4) Object.getPrototypeOf(BuiltIn.prototype) returns BuiltIn.prototype. > > False for ES5 objects and ES Internationalization objects. This would lead to > infinite loops when looking up properties that don't exist, and we probably > don't want that. > > 5) BuiltIn.prototype instanceof BuiltIn evaluates to true. > > False for ES5 objects and ES Internationalization objects. The ES5 spec for > instanceof relies on 4). > > Any observable features I missed? The relationship between the constructor and the prototype. EG: Builtin.prototype.constructor === Builtin > > Norbert > > _______________________________________________ > es-discuss mailing list > es-discuss@mozilla.org > https://mail.mozilla.org/listinfo/es-discuss > _______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss