On Wed, Dec 12, 2012 at 3:44 PM, David Bruant <span dir="ltr"><<a href="mailto:bruant.d@gmail.com" target="_blank">bruant.d@gmail.com</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">

  
    
  
  <div text="#000000" bgcolor="#FFFFFF">
    <div>Le 12/12/2012 22:30, Kevin Reid a
      écrit :<br>
    </div><div class="im">
    <blockquote type="cite">
      <div style="font-family:arial,helvetica,sans-serif;font-size:10pt">
        <div dir="ltr">The JS runtime won't know that the proxy has
                anything to do with the actual Window instance. The
                Proxy's formal target will be just {};<div class="gmail_extra"><div class="gmail_quote">
            </div>
          </div>
        </div>
      </div>
    </blockquote></div>
    This target, even if dummy, is the one that will be used for
    invariants checks. You can't get away from this by design. This is
    one of the most important part of the direct proxies design.<br>
    Even if you switch of fake target, the engine will still perform
    checks on the dummy internal [[Target]].<br>
    <br>
    I feel we're cycling in what we say and I feel I can't find the
    right words to explain my point. One idea would be for you to
    implement a target-switching proxy based on direct proxies (Firefox
    has them natively or you can use Tom's shim [1]). I'm confident
    you'll understand my point through this exercise.<br></div></blockquote><div><br>David: <a href="https://gist.github.com/4279162">https://gist.github.com/4279162</a><br><br>I think this is what Kevin has in mind. Note in particular that the target of the Proxy is just a dummy object, and the handler ignores it entirely. The proxy uses it for invariant checks, but the intent is that those would always pass.<br>
<br>-j<br></div></div></div>