David Bruant wrote:
Le 27/06/2012 10:31, Brendan Eich a écrit :
David Bruant wrote:
Le 26/06/2012 16:44, David Bruant a écrit :
Also relevant to this thread, post on the same topic by Isaacs (node.js lead) : http://blog.izs.me/post/25906678790/on-es-6-modules
"Furthermore, |let| already gives us destructuring assignment. If a module exports a bunch of items, and we want several of them, then do |var {x,y,z} = import 'foo'| or some such." => Excellent idea. That combined with the single export idea reduces the amount of new syntax to introduce.

Declarations can nest under control flow constructs, but import or module dependencies must be prefetched. They're static.

  if (some_rare_condition()) { let x = import "m"; ... }

either always prefetches "m", which does not say what is meant;
True.
It could be considered to allow 'let x = import "m";' only at the top level. But if it's the case, having a specific lexical form makes clearer that it's a module import and not a regular assignment.

The other point people seem to miss about import as a special binding form is not just that it can be restricted grammatically to be control-insensitive by construction: it's that static export vs. import checking can be done to catch typos.

This is a significant point, but it's either missed or assumed insignificant. I think we should have a stand-up argument about it. Static module systems are static, in dependency prefetching, in binding, and in export vs. import checking.

/be
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to