On Mar 15, 2012, at 7:30 AM, Kevin Smith wrote:

> Hi Allen,
> 
> In this stawman, private members are accessed using obj.name, where "name" 
> can be a private name that is in scope.  Why was this strategy abandoned?
> 
> kevin

There was significant negative feedback on this list WRT that version of the 
proposal.

See the long thread starting at 
https://mail.mozilla.org/pipermail/es-discuss/2010-December/012299.html and 
other related threads in December 2010.

It would probably be a good idea for me to go back and re-read all of those 
threads, but main recollection of the main issues were:

1.  Many people believed that the parallel name spaces for variables and 
private names was too confusing:

private x;  //declare x as a private name     
function (p,x) {  //declare x as a parameter, it does not shadow private name x
   p.x = x;             // .x resolved using private name scoping, RHS x 
resolved using normal declaration scoping
}
        

2. Many people (not necessarily the same people in all cases) did not like the 
fact that the existing identify:

     obj.name
is always equivalent to:
     obj["name"]

was lost. 

There did not appear to be any chance of consensus forming around this proposal 
so backed of to the current, much simpler private name proposal that does not 
have a |private| declaration (and hence introduces no new scoping issues) and 
which only supports obj[nameValuedExpression] as a syntax for accessing private 
named properties. The idea was to make the proposal as simple as possible so we 
could get agreement on it.

Allen
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to