export default and export {foo as default}?
# Erik Arvidsson (11 years ago)
I looked into it in more details and I seem to have been mistaken.
"*default*" is just internal spec name that is needed for hoisting
FunctionDeclaration and to create the required anonymous binding.
# Brendan Eich (11 years ago)
I recall others being confused; probably an informative note in the spec would help.
# Gary Guo (11 years ago)
In fact regarding export default foo and export {foo as default} as equivalent is current the practice of traceur.
It used to be the case that
export defaultwas just syntactic sugar for exporting something with the name "default".export default 42;was the same as
const x = 42; export {x as default};More importantly this symmetry was very useful on the import side as well as when reexporting default exports.
export {default} from './m.js'The above line now requires a local binding.
import tmp from './m.js'; export default tmp;I don't know why this was changed or if this was discussed anywhere?
It used to be the case that `export default` was just syntactic sugar for exporting something with the name "default". export default 42; was the same as const x = 42; export {x as default}; More importantly this symmetry was very useful on the import side as well as when reexporting default exports. export {default} from './m.js' The above line now requires a local binding. import tmp from './m.js'; export default tmp; I don't know why this was changed or if this was discussed anywhere? -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20150130/a439d7e2/attachment.html>