<div dir="ltr">I think you just described Dart runtime ... :-)<div><br></div><div style>I was thinking about transpilers since that is the TypeScript way which is a better one over CoffeeScript in my opinion but then generated code will be as slow as Dart JS runtime on mobile (specially Android 2.X hardware/software)</div>
<div style><br></div><div style>But if you guys draft stuff that cannot be even transpiled, how develoeprs are suppose to serve one or another file?</div><div style><br></div><div style><script type="application/es6"></script></div>
<div style><br></div><div style>?</div><div style><br></div><div style><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Mar 8, 2013 at 4:15 PM, Brandon Benvie <span dir="ltr"><<a href="mailto:bbenvie@mozilla.com" target="_blank">bbenvie@mozilla.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div text="#000000" bgcolor="#FFFFFF"><div><div class="h5">
    <div>On 3/8/2013 4:03 PM, Andrea Giammarchi
      wrote:<br>
    </div>
    <blockquote type="cite">
      <div dir="ltr"><span style="font-family:arial,sans-serif;font-size:13px">getOwnPropertyKeys
          isn't shimmable, since there's no way to understand a symbol
          in ES5, correct? In that case Object.keys() ain't mixin
          enough, getOwnPropertyNames looks like the best option (which
          AFAIT will act as </span><span style="font-family:arial,sans-serif;font-size:13px">getOwnPropertyKeys
          where only </span><span style="font-family:arial,sans-serif;font-size:13px">getOwnPropertyNames
          is available since Symbols won't be implemented</span><span style="font-family:arial,sans-serif;font-size:13px">)</span><br>
        <div><span style="font-family:arial,sans-serif;font-size:13px"><br>
          </span></div>
        <div><span style="font-family:arial,sans-serif;font-size:13px">Same
            stuff is the super, I cannot simulate without `caller` that,
            I did successfully with (the name might mislead) poo.js
            though:</span></div>
        <div><font face="arial, sans-serif"><a href="https://github.com/WebReflection/poo#poojs" target="_blank">https://github.com/WebReflection/poo#poojs</a></font><br>
        </div>
        <div><font face="arial, sans-serif"><br>
          </font></div>
        <div>
          <font face="arial, sans-serif">Too bad I cannot have caller
            and I wonder how transpilers gonna implement that since it's
            needed at runtime.</font></div>
        <div><font face="arial, sans-serif"><br>
          </font></div>
        <div>
          <font face="arial, sans-serif">Thanks Again, please correct me
            everywhere I am wrong if you have time</font></div>
      </div>
      <div class="gmail_extra"><br>
        <br>
        <div class="gmail_quote">On Fri, Mar 8, 2013 at 3:55 PM, Allen
          Wirfs-Brock <span dir="ltr"><<a href="mailto:allen@wirfs-brock.com" target="_blank">allen@wirfs-brock.com</a>></span>
          wrote:<br>
          <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
            <div style="word-wrap:break-word">not exactly, you'd have to
              use getOwnPropertyKeys rather than getOwnPropertyNames.
               Also it "rebinds" super references to from source object
              to target objects.
              <div>
                <div><br>
                  <div>
                    <div>On Mar 8, 2013, at 3:26 PM, Andrea Giammarchi
                      wrote:</div>
                    <br>
                    <blockquote type="cite">
                      <div dir="ltr">am I understanding mixin correctly?
                        <div><br>
                        </div>
                        <div>
                          <div>'mixin' in Object || (Object.mixin =
                            function mixin(</div>
                          <div>  target, source</div>
                          <div>) {</div>
                          <div>  for(var</div>
                          <div>    keys =
                            Object.getOwnPropertyNames(source),</div>
                          <div>    i = keys.length; i--;
                            Object.defineProperty(</div>
                          <div>      target,</div>
                          <div>      keys[i],</div>
                          <div>      Object.getOwnPropertyDescriptor(</div>
                          <div>        source,</div>
                          <div>        keys[i]</div>
                          <div>      )</div>
                          <div>    )</div>
                          <div>  );</div>
                          <div>  return target;</div>
                          <div>});</div>
                        </div>
                        <div><br>
                        </div>
                        <div>thanks</div>
                      </div>
                      <div class="gmail_extra"><br>
                        <br>
                        <div class="gmail_quote">On Fri, Mar 8, 2013 at
                          2:35 PM, Allen Wirfs-Brock <span dir="ltr"><<a href="mailto:allen@wirfs-brock.com" target="_blank">allen@wirfs-brock.com</a>></span>
                          wrote:<br>
                          <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                            <div style="word-wrap:break-word">The March
                              8, 2013 Rev 14 draft is now available at
                              the usual place: <a href="http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts" target="_blank">http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts</a> 
                              <div>
                                <br>
                              </div>
                              <div>
                                <p>Changes include:
                                </p>
                                <ul>
                                  <li>
                                    <div> Class bodies are now always
                                      string</div>
                                  </li>
                                  <li>
                                    <div> <strong>static</strong>
                                      methods may now be defined in <em>ClassBody</em></div>
                                  </li>
                                  <li>
                                    <div> Updated comprehension syntax
                                      to use left-to-right order</div>
                                  </li>
                                  <li>
                                    <div> Eliminated <strong>is</strong>
                                      and <strong>isnt</strong>
                                      operators</div>
                                  </li>
                                  <li>
                                    <div> added grammar productions to
                                      allow unqualified super to be used
                                      after new operator</div>
                                  </li>
                                  <li>
                                    <div> expression to the right of <strong>of</strong>
                                      in <strong>for-of</strong> now
                                      restricted to being <em>AssignmentExpression</em></div>
                                  </li>
                                  <li>
                                    <div> Almost all Chapter 15
                                      constructors are now specified to
                                      have an @@create methid and are
                                      initialized in a manner that
                                      supports subclassing. (still need
                                      to work on Function)</div>
                                  </li>
                                  <li>
                                    <div> Added
                                      Object.getOwnPropertyKeys function</div>
                                  </li>
                                  <li>
                                    <div> Added <a href="http://Object.is/" target="_blank">Object.is</a>
                                      function</div>
                                  </li>
                                  <li>
                                    <div> Tentatively added Object.mixin
                                      function</div>
                                  </li>
                                  <li>
                                    <div> Array.from now takes an
                                      optional map function</div>
                                  </li>
                                  <li>
                                    <div> Added
                                      String.prototype.normalize method</div>
                                  </li>
                                  <li>
                                    <div> All String.prototype methods
                                      that accept RegExp arguments will
                                      now work with subclasses of RegExp</div>
                                  </li>
                                  <li>
                                    <div> Renamed Number.prototype.toInt
                                      to Number.prototype.toInteger</div>
                                  </li>
                                  <li>
                                    <div> RegExp global, ignoreCase,
                                      multiline, source, sticky are now
                                      prototype accessor properties
                                      rather than instance own data
                                      properties. This is needed to
                                      support adding web compatible
                                      compile method. </div>
                                  </li>
                                  <li>
                                    <div> Added new RegExp.prototype
                                      methods that allow string methods
                                      to work with RegExp subclasses:
                                      match, replace, search, split,
                                      @@isRegExp </div>
                                  </li>
                                  <li>
                                    <div> Map and Set constructors now
                                      accept a =n optional comparator
                                      parameter. Only value currently
                                      allowed is “is”</div>
                                  </li>
                                  <li>
                                    <div> ArrayBuffer and <em>Typed</em>Array
                                      object length no long restricted
                                      to 2<sup>32</sup> limit</div>
                                  </li>
                                  <li>
                                    <div> Eliminated all remaining
                                      references to [[Class]] and
                                      [[NativeBrand]] (except for in
                                      some DataView code that needs
                                      rewritting anyway)</div>
                                  </li>
                                  <li>
                                    <div> Added SameValueZero
                                      abstraction operation that
                                      considers -0 and +0 to be the same
                                      value.</div>
                                  </li>
                                  <li>
                                    <div> Rename [[GetP]] to [[Get]] and
                                      [[SetP]] to [[Set]]</div>
                                  </li>
                                  <li>
                                    <div> Specified that unless
                                      otherwise indicated, internal data
                                      properties are created when an
                                      object is allocated. Internal data
                                      properties are now explicitly
                                      listed in ObjectCreate abstract
                                      operation calls.</div>
                                  </li>
                                  <li>
                                    <div> internally consolidated
                                      [[IsExtensible]]/[[IsSealed]/[[IsFrozen]]
                                      and
                                      [[PreventExtensions]]/[[Seal]]/[[Freeze]]
                                      into two MOP operations
                                      [[HasIntegrity]] and
                                      [[SetIntegrity]]. However, no
                                      public APIs (Proxy traps and
                                      Reflect functions) changed.</div>
                                  </li>
                                  <li>
                                    <div> Numerous editorial and
                                      technical corrections,
                                      clarifications, and bug fixes</div>
                                  </li>
                                </ul>
                                <div><br>
                                </div>
                              </div>
                            </div>
                            <br>
_______________________________________________<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" target="_blank">https://mail.mozilla.org/listinfo/es-discuss</a><br>
                            <br>
                          </blockquote>
                        </div>
                        <br>
                      </div>
                    </blockquote>
                  </div>
                  <br>
                </div>
              </div>
            </div>
          </blockquote>
        </div>
        <br>
      </div>
      <br>
      <fieldset></fieldset>
      <br>
      <pre>_______________________________________________
es-discuss mailing list
<a href="mailto:es-discuss@mozilla.org" target="_blank">es-discuss@mozilla.org</a>
<a href="https://mail.mozilla.org/listinfo/es-discuss" target="_blank">https://mail.mozilla.org/listinfo/es-discuss</a>
</pre>
    </blockquote></div></div>
    Classes in general aren't straight transpilable to ES6. Not
    faithfully. Part of their contract is that you can use them to
    extend builtins, for example. I'm sure there are other little
    details as well. It is possible to transpile all of ES6 to ES3
    though if you're willing to write a runtime and convert all
    operators to function calls that use the runtime to implement the
    delta between ES6 and ES3.<br>
  </div>

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