<div dir="ltr">I can confirm:<div><br></div><div><font face="courier new, monospace">npm install harmony-reflect</font></div><div><font face="courier new, monospace">node --harmony</font></div><div><font face="courier new, monospace">> require('harmony-reflect')<br>

</font></div><div><br></div><div>and I'm good to go with ES6 proxy syntax</div><div><br></div><div>thanks all!</div><div class="gmail_extra"><br clear="all"><div><div dir="ltr">@angustweets</div></div>
<br><br><div class="gmail_quote">On Fri, Oct 18, 2013 at 7:49 AM, Angus Croll <span dir="ltr"><<a href="mailto:anguscroll@gmail.com" target="_blank">anguscroll@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

<div bgcolor="#FFFFFF"><div>Great info thanks (and Tom and Domenic)</div><div><br></div><div>A note on MDN confirming that direct proxy adhered to the new spec (and a similar one on old proxy saying it didn't) would probably be immensely helpful to other people who had the same question I had.</div>

<div><br></div><div>Also (to all) deleting or marking as obsolete all wiki-harmony docs that no longer meet the standard would save a lot of wasted hours</div><div><br></div><div>thanks!</div><div><div class="h5"><div><br>

</div><div><br><br><br></div><div><br>On Oct 18, 2013, at 6:17, David Bruant <<a href="mailto:bruant.d@gmail.com" target="_blank">bruant.d@gmail.com</a>> wrote:<br><br></div><div></div><blockquote type="cite"><div>

  
    
  
  
    <div>Le 18/10/2013 07:19, Angus Croll a
      écrit :<br>
    </div>
    <blockquote type="cite">
      <div dir="ltr">
        <div>I couldn't find a commitment to a specific syntax in the
          latest ES6 standard <br>
        </div>
      </div>
    </blockquote>
    The latest official news is in the May 2013 TC39 notes:<br>
<a href="https://github.com/rwaldron/tc39-notes/blob/master/es6/2013-05/may-21.md#44-proxies" target="_blank">https://github.com/rwaldron/tc39-notes/blob/master/es6/2013-05/may-21.md#44-proxies</a><br>
    The final design of proxies is the "direct proxies" design. As Tom
    said, a proxy is now created doing:<br>
        var p = Proxy(target, handler)<br>
    <br>
    Proxy.create and Proxy.createFunction are aimed at disappearing.<br>
    <br>
    <blockquote type="cite">
      <div dir="ltr">
        <div>Gecko, chrome experimental, traceur and 'node
          --harmony-proxies' support the <font face="courier new,
            monospace">Proxy.create</font> syntax (detailed in <a href="http://wiki.ecmascript.org/doku.php?id=harmony:proxies" target="_blank">http://wiki.ecmascript.org/doku.php?id=harmony:proxies</a>)<br>
        </div>
        <div><br>
        </div>
        <div>e.g.</div>
        <div>
          <div><font face="courier new, monospace">var proxy =
              Proxy.create({</font></div>
          <div><font face="courier new, monospace"> get: function(p, n)
              {</font></div>
          <div><font face="courier new, monospace">  return 'Hello ' +
              n;</font></div>
          <div><font face="courier new, monospace"> }</font></div>
          <div><font face="courier new, monospace">});</font></div>
          <div><font face="courier new, monospace">proxy.World //</font><span style="font-family:'courier new',monospace">'Hello World'</span></div>
        </div>
      </div>
    </blockquote>
    On the SpiderMonkey (Gecko implements the DOM and other platform
    APIs and SpiderMonkey is the part that implement ECMAScript) side, I
    filed a bug to get rid of these as it's indeed confusing to have
    both APIs exposed in web pages:<br>
    <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=892903" target="_blank">https://bugzilla.mozilla.org/show_bug.cgi?id=892903</a><br>
    <br>
    IIRC, the V8 team had started implementing something (behind a
    flag), and then wars on Proxy design happened, so they chose to wait
    for the design to stabilize. Now may be a good time to restart<br>
    <br>
    <blockquote type="cite">
      <div dir="ltr">
        <div>
        </div>
        <div><span style="font-family:'courier new',monospace"></span>However
          MDN calls the above the 'Old Proxy API'. <br>
        </div>
      </div>
    </blockquote>
    I'm glad I succeeded in, at least, making people wonder what that
    was all about :-)<br>
    <br>
    Since I've been following closely the design of proxies, I
    documented them on MDN. Especially after the implementation of
    direct proxies in Firefox (where I moved the documentation of the
    previous API to its own page and try to explain the best I could
    that people should not use it). I'm happy to improve the doc if
    something isn't clear (on the feature itself or clarify the current
    technico-social mess of different APIs in the wild).<br>
    <br>
    As a side note, to my knowledge, the only native implementation of
    direct proxies is in Firefox, but it's incomplete and has known
    bugs. You can see the known limitations and bugs here:
    <a href="https://bugzilla.mozilla.org/showdependencytree.cgi?id=703537&hide_resolved=1" target="_blank">https://bugzilla.mozilla.org/showdependencytree.cgi?id=703537&hide_resolved=1</a>
    ("depends on" section. Bug 787710 is particularly funny :-)).<br>
    <br>
    If you want to play with proxies, I think that the most
    faithful-to-the-spec implementation is Tom's polyfill:
    <a href="https://github.com/tvcutsem/harmony-reflect/blob/master/reflect.js" target="_blank">https://github.com/tvcutsem/harmony-reflect/blob/master/reflect.js</a>
    where he's using the old API where available to implement the new
    one.<br>
    <br>
    David<br>
  

</div></blockquote></div></div></div></blockquote></div><br></div></div>