<p dir="ltr">Is a proxy a valid proxy target? If that's the case, then the indirection should allow you to do what you're doing. The outer proxy could freeze and let the inner proxy know it shouldn't extend anything anymore, without actually freezing it. The inner proxy can handle the rest of the actual logic in the membrane. </p>
<br><div class="gmail_quote"><div dir="ltr">On Sun, Sep 4, 2016, 17:06 Oriol Bugzilla <<a href="mailto:oriol-bugzilla@hotmail.com">oriol-bugzilla@hotmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div style="font-size:12pt;color:#000000;background-color:#ffffff;font-family:Calibri,Arial,Helvetica,sans-serif">
<span>> Could there be a Proxy.hasBeenRevoked(proxy) method?</span><br>
<br>
</div></div><div dir="ltr"><div style="font-size:12pt;color:#000000;background-color:#ffffff;font-family:Calibri,Arial,Helvetica,sans-serif"><p>The Proxy constructor only accepts targets and handlers when they are objects and are not revoked proxies.</p>
<p>I wonder what's the point of not allowing revoked proxies but allow revocable proxies which may be revoked later.</p>
<p><br>
</p>
<p>Anyways, this allows you to check if a value is a revoked proxy: you only need to ensure that it's an object but makes Proxy throw.</p>
<p><span>I think something</span> like this should work:</p>
<p><br>
</p>
<p><span>```javascript</span><br>
</p>
<p><span>Proxy.hasBeenRevoked</span> = function(value) {</p>
<p>  if(Object(<span>value</span>) !== value) {</p>
<p>    return false; // Primitive value</p>
<p>  }<br>
</p>
<p>  try {</p>
<p>    new Proxy(value, value);</p>
<p>    return false;<span> // Either non-proxy object or non-revoked proxy</span></p>
<p>  } catch(err) {</p>
<p>    return true; // Revoked proxy<br>
</p>
<p>  }<br>
</p>
<p>};</p>
<p>```</p>
</div>
</div>

_______________________________________________<br>
es-discuss mailing list<br>
<a href="mailto:es-discuss@mozilla.org" target="_blank">es-discuss@mozilla.org</a><br>
<a href="https://mail.mozilla.org/listinfo/es-discuss" rel="noreferrer" target="_blank">https://mail.mozilla.org/listinfo/es-discuss</a><br>
</blockquote></div>