[[Class]] Property of Host Object

Mark S. Miller erights at google.com
Sun Jul 18 21:28:24 PDT 2010

On Sun, Jul 18, 2010 at 5:58 PM, Allen Wirfs-Brock <
Allen.Wirfs-Brock at microsoft.com> wrote:

>  So essentially, they are two kinds of host objects: native host objects
> and non-native host objects.  The spec. doesn’t explicitly talk about native
> host objects because their hostness is semantically irrelevant if they are
> also native.  Hence, when the spec. talks about “host objects” in most cases
> it is really talking about non-native host objects in order to impose
> specific sematic constraints upon them.  I believe that in most cases in the
> ES5 spec,  “host object” should be read as meaning “non-native host object”.
> Is the following one of those cases:

| The value of the [[Class]] internal property of a host object
| may be any String value except one of "Arguments", "Array",
| "Boolean", "Date", "Error", "Function", "JSON", "Math", "Number",
| "Object", "RegExp", and "String"

If so, then I think we may simply have a term rotation. Everytime I say
"host object", and AFAICT every time the spec says "host object" other than
the definition (4.3.8), both I and it mean what you refer to above as a
"non-native host object". Also, by your clarification above, a "native host
object" seems indistinguishable from any other "native object", so I'm not
sure what purpose the distinction has.

In any case, we clearly have a disagreement about our memory of what we took
these terms to mean. Anyone else who was there, care to weigh in?

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

More information about the es-discuss mailing list