<div class="gmail_quote">2012/10/11 Andreas Rossberg <span dir="ltr"><<a href="mailto:rossberg@google.com" target="_blank">rossberg@google.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="HOEnZb"><div class="h5">On 11 October 2012 13:41, Mark S. Miller <<a href="mailto:erights@google.com">erights@google.com</a>> wrote:<br>
> How does the target get dropped? Remember, this all started with David's<br>
> observation that without some additional magic, we have an unsolvable GC<br>
> problem. This is still true.<br>
<br>
</div></div>Ah, right. If revoke also froze the handler object, then it could<br>
delete the target, because it will never be observable again. Would<br>
that be too magic?<br></blockquote><div><br></div><div>You're assuming that from the handler you can access the proxy with which it's associated, but there is no such explicit link. You might keep track of the link purely at the implementation level, but then what to do with one-to-many relationships as David pointed out.</div>
<div><br></div><div>I think the additional Proxy.revocable constructor is fine. It doesn't introduce the combinatorial explosion problem I mentioned earlier for branded proxies since Proxy.revocable takes exactly the same arguments as the Proxy constructor. Only the return value is different.</div>
<div><br></div><div>Cheers,</div><div>Tom</div></div>