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

Reply via email to