<div class="gmail_quote">On 28 January 2012 22:51, Mark S. Miller <span dir="ltr"><<a href="mailto:erights@google.com">erights@google.com</a>></span> wrote:<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="gmail_quote"><div>Just because an object is provided as part of the host environment does *not* make it a host object. Given your statements above, I suspect that the Node objects you have in mind are all simply native objects provided by the Node hosting environment. If so, these are *not* host objects. </div>
</div></blockquote><div><br>I'm another person confused by the difference between host objects, native objects, and objects like "Math".  Given that I haved worked trying to define the CommonJS host environment and that I write a lot of JS objects in C with SpiderMonkey, you'd think I would know the difference, but I don't.  At least now I know I don't. I used to think I did, and that made reading the spec less useful.<br>
<br></div><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="gmail_quote">
<div>I think the least confusing way forward may be to drop the terms "host object" and "native object" completely from ES6. This isn't the first time that this list has spent many email thread time confusing "host objects" with "native objects provided by the host". By itself, this would suggest that the right terminology is "native" and   "non-native". </div>
</div></blockquote><div><br>In my opinion, we need terminology describing objects which are provided by the host environment, and those which aren't.  The language of implementation is completely irrelevant here.<br><br>
In GPSEE, we have CommonJS modules where exports can be functions implemented in JS or C -- in fact, we purposefully prototype in JS and then write C versions of "hot" library functions once code is in production.<br>
<br>Rhino embeddings can do similar things, implementing some methods in JS and others in Java. In this case, is a Java function native?<br><br>Here's something even funnier -- if you use Object.prototype.bind in SpiderMonkey (Firefox 9) on a function written in JS userland and then call .toSource() on the result, it reports that the function is native!<br>
<br>*head exploding*<br><br>Wes<br clear="all"></div></div><br>-- <br>Wesley W. Garland<br>Director, Product Development<br>PageMail, Inc.<br>+1 613 542 2787 x 102<br>