2012/8/2 Tom Van Cutsem <tomvc...@gmail.com>

> [+samth]
>
> 2012/8/2 David Bruant <bruan...@gmail.com>
>
>>
>>>  To follow-up on that part, here is a gist with the difference between
>> what the current proposal is and the alternative proposal [1]. [...]
>>
>> [1] https://gist.github.com/**3232772 <https://gist.github.com/3232772>
>>
>
> Thanks for writing up that gist. Sometimes a piece of code says more than
> a 1000 words ;-)
>
I had it clear in my mind, but felt my explanations weren't conveying it,
so writing the code sounded like the right solution :-)


> Your proposed alternative is something to consider, although I'm still
> uncomfortable with the WeakMap.prototype.has.bind mechanic.
>
I have to admit that it's a bit specific as a constraint. The problem is
that for security reasons we can't have isPrivateNameKnown to be any
function, because an attacker would just set a function and wait for it to
be called with the private name. A bound function would guarantee security.

Certainly there are other directions to explore. The goal is to have a
proxy-scoped (in "space") and potentially infinite-scoped (in time) shared
knowledge of what private names a proxy knows. The knowledge is to be
shared with the engine and no one else.

We should also reconsider the simplest alternative of just not trapping
> private names on proxies.
>
You mentionned that if private names aren't trapped, it pierces membranes,
so when you want to prevent access to objects in the membrane, you can't
for private names.
A softer option in the direction of "not trapping" would be to have a
privateNameSink for known and unknown names. It leaves the opportunity to
not pierce membranes (but I don't know if it's detrimental to other use
cases)

David
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to