Let's kill terms "native" and "host"

Allen Wirfs-Brock allen at wirfs-brock.com
Fri Apr 6 14:29:45 PDT 2012


On Apr 6, 2012, at 2:14 PM, David Bruant wrote:

> Le 06/04/2012 21:19, Allen Wirfs-Brock a écrit :
>> 
>> object: An runtime entity that has identity and exposes properties (via implementations of the required "internal methods"  specified in chapter 8)
>> mundane object: An object that that uses only default behaviors for the required internal methods as specified in chapter 8. [and currently elsewhere until I do some reorganizing]
>> exotic object: An object that provides non-default behavior for at least one of the required internal methods.
> What are arrays? mundane or exotic? Based on the definition, it seems it would be exotic, but it depends on whether you intend to move array internal method definitions to chapter 8.

exotic...it only think that I would move into chapter 8 (at least by reference) would be the default definition for thinks like  [[Call]] and [[Construct]] that are currently scattered around the specification.. 

> 
>> (...)
>> 
>> Function terminology:
>> 
>> function - An object that exposes the [[Call]] internal method.
>> ECMAScript function - A function whose invocation result and side-effects is proved by evaluating ECMAScript code.
>> alien function - A function whose invocation result and side-effects  is provided in some manner other than by evaluating ECMAScript code.
>> standard function - a function whose invocation result and side-effects  defined by the ECMAScript specification (mostly chapter 15)
>> 
>> An ECMAScript function might be either a mundane or an exotic object. An alien function is always an exotic object because the default [[Call]] internal method produces the invocation result and side-effects by evaluating ECMAScript code. A standard function can potentially be implemented either as an ECMAScript function or an alien function.
> Currently, parseInt.toString() results in "function parseInt() { [native code] }" on Firefox (and other browsers I think), so it might be more suitable to rename "alien functions" to "native functions" for the sake of consistency.

Yes, but that meaning of "native" is different from the meaning "native" used in ES5 (4.3.6) so is likely to also be confusing.  The multiple common meanings of "native" is one reason I avoid that term for this go around.

Allen



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20120406/efc92238/attachment-0001.html>


More information about the es-discuss mailing list