On Thu, Dec 10, 2009 at 1:21 PM, Brendan Eich <[email protected]> wrote:
> > To avoid some "climbing meta ladder" issues, we purposely distinguish >> between what we consider base-level operations, such as x.foo, and >> meta-level operations, such as Object.getOwnProperty(x, 'foo'). We attempt >> to be as fully transparent (leak free) as reasonably possible at >> virtualizing base level operations. We attempt to be fully non-transparent >> (leak like a firehose) to meta-level operations. Some of our classification >> may seem weird: Object.prototype.toString() is meta-level. It can be used to >> reveal that an object is a trapping proxy. Object.getOwnPropertyNames() is >> meta-level. Object.keys() is base level. >> > > You're right, some of this is weird :-P. Any detailed rationale? > We don't have a solid rationale. We summarized the interactions between these methods and proxies in a separate section: < http://wiki.ecmascript.org/doku.php?id=strawman:proxies#interaction_of_external_methods_and_proxies > The split between "base" and "meta" methods is certainly open for discussion. Cheers, Tom
_______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

