<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">Hi Ben,<br>
      <br>
      Sorry for the very late response.<br>
      This is quite an interesting work, thanks for sharing!<br>
      I'm particularly interested in your test suite [1] which is
      impressive.<br>
      <br>
      This is making me realize that generators are fully compilable
      (efficiently from what I can see) into ES5 and makes me wonder if
      the current generators specificities are worth it. Very
      specifically, do we really need Generator.prototype [
      @@toStringTag ] === "Generator" ?<br>
      From an author point of view, I don't really see in which
      situation this information could matter. As a comparison,
      functions generated after the class syntax do not have an
      @@toStringTag to "Class".<br>
      Generators would just be sugar to write iterators (+ .throw)<br>
      <br>
      <br>
      Le 03/11/2013 21:55, Ben Newman a écrit :<br>
    </div>
    <blockquote
cite="mid:CACvS7uSn8NM-hHx3gODmksQHBTZmaVy3FWONH20UgsEBnT5rCg@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div>
          <ul>
            <li>Given that this tool will become obsolete as more and
              more engines implement ES6 generator functions, how can we
              maximize its value in the meantime? Are there grey areas
              in the draft spec that can be illuminated? Should I spend
              my time implementing (or getting others to implement) <font
                face="courier new, monospace">await</font> syntax and/or
              control-flow libraries that leverage generator syntax?<br>
            </li>
          </ul>
        </div>
      </div>
    </blockquote>
    You can most certainly experiment with await syntax and share what
    you've learned.<br>
    Are there any test cases that you've written and you feel like the
    expected spec behavior is odd or unintuitive in some aspect?<br>
    <br>
    <blockquote
cite="mid:CACvS7uSn8NM-hHx3gODmksQHBTZmaVy3FWONH20UgsEBnT5rCg@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div>
          <ul>
            <li>How would you design a system that selectively delivers
              transpiled code to ES5-capable browsers and native
              generator code to ES6-capable browsers, so that end users
              will benefit immediately when they upgrade to a browser
              with native support for generators?</li>
          </ul>
        </div>
      </div>
    </blockquote>
    Since there is no semantic difference between the ES6 and your
    compiled version, it's unlikely the users will see a difference at
    all (not even sure the perf is that much different).<br>
    <br>
    But if you really want to try there are different options with
    different  downsides.<br>
    1) Server-side UA sniffing. You get the User-Agent header, infer
    which browser it is and decide which version you should be sending.
    Send the ES5 version when you don't know the UA (safe default)<br>
    <br>
    Downsides:<br>
    * if a browser changes its header, you may be sending the wrong
    version. This is a problem when you're sending the ES6 version to a
    non-ES6 browser (which admittedly should be a very rare case)<br>
    * You need to update the list of ES6 User-Agent strings as new
    browsers arrive<br>
    <br>
    2) Send a feature-detection JS snippet on the client which will
    decide which version to load.<br>
    <br>
    Downside:<br>
    * having to wait until this snippet is executed to start code
    download (or one extra round-trip if code was originally inlined)<br>
    <br>
    3) send compiler to the client-side<br>
    <br>
    Downside:<br>
    * more code <br>
    <br>
    Personally, I'd go for sending the ES5 version to everyone. My
    second choice would be 1), but I guess it depends on the
    requirements.<br>
    <br>
    David<br>
    <br>
    [1]
    <a class="moz-txt-link-freetext" href="https://github.com/facebook/regenerator/blob/master/test/tests.es6.js">https://github.com/facebook/regenerator/blob/master/test/tests.es6.js</a><br>
  </body>
</html>