<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">@Dave @Allen</div><div class=""><br class=""></div>Thanks for the support and thanks for making the spec more clear to me (that table example is priceless, i noticed it before, but didn’t understand it quite well :). Would be great if you could consider this syntax for the next version (and sorry for the incorrect version that I proposed).<div class=""><br class=""></div><div class="">Just to provide some use case:</div><div class=""><br class=""></div><div class="">I think the only time that you are very likely to do `export default AssignmentExpression` is to expose a default polyfill:</div><div class=""><br class=""></div><div class="">var setImmediate;</div><div class="">if (window.setImmediate) {</div><div class=""><span class="Apple-tab-span" style="white-space:pre">  </span>setImmediate = window.setImmediate;</div><div class="">} else {</div><div class=""><span class="Apple-tab-span" style="white-space:pre">     </span>setImmediate = callback => setTimeout(callback, 0);</div><div class="">}</div><div class="">export default setImmediate;</div><div class=""><br class=""></div><div class="">And the gotcha, like others have pointed out, is that without the “=“ syntax proposed by Dave, it’s not very clear that the exported local variable is unbound.</div><div class=""><br class=""></div><div class="">But if this is allowed:</div><div class=""><br class=""></div><div class=""><div class="">export default var setImmediate;</div><div class="">if (window.setImmediate) {</div><div class=""><span class="Apple-tab-span" style="white-space: pre;">        </span>setImmediate = window.setImmediate;</div><div class="">} else {</div><div class=""><span class="Apple-tab-span" style="white-space: pre;">   </span>setImmediate = callback => setTimeout(callback, 0);</div><div class="">}</div><div class=""><br class=""></div></div><div class="">Then there is no gotcha, and like Dave said, it’s very consist with existing vanilla export syntax: you get to decide what is exported before you rebind it to another value (it can be done with `var setImmediate; export {setImmediate as default}`, but you no longer has a nice one-liner.)</div><div class=""><br class=""></div><div class="">My vice versa part in the previous post is trying to cover `export default let` and `export default const`. :)</div><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Dec 17, 2014, at 12:11 AM, Allen Wirfs-Brock <<a href="mailto:allen@wirfs-brock.com" class="">allen@wirfs-brock.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; " class=""><br class=""><div class=""><div class="">On Dec 16, 2014, at 12:07 AM, Glen Huang wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite" class=""><meta http-equiv="Content-Type" content="text/html charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">A little tweak:<div class=""><br class=""></div><div class="">Syntax<br class=""><span class="Apple-tab-span" style="white-space:pre">      </span>export default var VariableDeclaration;<br class=""><br class="">ExportEntries<br class=""><div class=""><div class=""><ol class=""><li class="">Let names be the BoundNames of VariableDeclaration.</li><li class="">Let localName be the sole element of names.</li><li class="">Return a new List containing the Record {[[ModuleRequest]]: null, [[ImportName]]: null, [[LocalName]]: localName, [[ExportName]]: "default"}</li></ol></div></div></div></div></blockquote><div class=""><br class=""></div>Still not enough, you'd also have to make sure that things like the following are rejected as syntax errors:</div><div class=""><br class=""></div><div class="">   export default var {a,b,c} = obj;  //their can only be one binding per module that is exported as 'default'</div><div class=""><br class=""></div><div class="">Regardless, ES6 is now frozen except for significant bug fixes.  Extensions like this can be considered for future for subsequent editions.</div><div class=""><br class=""></div><div class="">BTW, I should have also pointed you to <a href="https://people.mozilla.org/~jorendorff/es6-draft.html#sec-static-and-runtme-semantics-module-records" class="">https://people.mozilla.org/%7Ejorendorff/es6-draft.html#sec-static-and-runtme-semantics-module-records</a> and in particular, the last table in that section.</div><div class=""><br class=""></div><div class="">Allen</div><div class=""><br class=""></div><div class=""><br class=""></div></div></div></blockquote></div><br class=""></div></body></html>