On Dec 22, 2010, at 9:47 AM, Brendan Eich wrote:

> I'm still sympathetic to Oliver's objection that declaration-style "private 
> #x, #y" does not "look generative" enough. Agree that the sigil addresses 
> Mark's concern about confusing literal identifiers with lexically bound 
> names, at a Perlish price.
> 
> David F. mentioned script concatenation. It happens freely on the web, and it 
> is already biting us because of premature "use strict" usage where parts of 
> the concatenation violate strict mode and most browsers don't check yet 
> (https://bugzilla.mozilla.org/show_bug.cgi?id=579119).
> 
> To me this is the nail in the coffin for "compilation unit private name 
> scope". I'm with dherman: lexical scope with a declaration for bindings, but 
> it is not clear how to make the declaration look more generative. It seems 
> important for similar things to look alike, and 
> different-in-generativity/etc. things to look different (somehow).

Consider

function f() {
    var captured;  //this generates a new long-lived data store
    return {get value() {return captured}, set value(n) {captured=n}};
};

or

function g() {
    function inner() {};
    return inner;
}


I don't see why
   private foo;
is any more or less generative than:
   var captured;
or
   function inner() {};

They are all are declarative forms and all implicitly generate new runtime 
entities each time they are evaluated.

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

Reply via email to