The gist of Kevin's proposal seems to be two key points:
1) allow implicit declaration of (non-private) symbols rather than requiring
explicit declaration
2) use module scope rather than lexical scope for symbols.
Registration/lookup of symbol values in a global registry using string keys
seems like a separable concept
Both of the key points seem to be classic design alternatives for which the
pros and cons have been widely argued. The generally accepted consensus seems
to be that explicit declarations are better (less error prone) than implicit
and that lexical scoping is better than (semi-) global scoping. It's not
clear to me that we really have a situation that is strongly contrary to the
classic resolution of these arguments.
I agree that at-names need to be exportable and importable, but I don't see why
we need anything more than support for things like:
import @iterator from '@System";
or
import {@save, @load} from Persistable;
For the case of importing "37" at-names, I would expect that * imports would
take care of it:
import * from ModuleDefining37NameInterface;
For exports I would think you need to be explicit regardless:
export symbol @sym1, @ym2, @sym3, ... , @sym37;
Allen
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss