> That page currently has TBD semantics.

Yeah, that's part of the work that needs to be done. Intuitively, it's a simple 
idea: ToName essentially generalizes the current semantics of property lookup; 
instead of trying to convert the property to a string, you try to convert it to 
a name-or-string. If it's already a name, it's a no-op; otherwise, it goes 
through the existing mechanisms.

IOW, everything behaves as before, except name objects are not converted to 
strings.

> Syntax aside, is the observable semantics of Names different from 
> <http://wiki.ecmascript.org/doku.php?id=strawman:inherited_explicit_soft_fields>?
>  How? If the only semantic difference is (not normally observable) less 
> aggressive GC obligations, great. I'm confident we can converge those. 
> Anything else?

The interface is different. With weak maps, you store soft fields off to the 
side; with private names, you actually get/set the properties directly on the 
object.

>   class Shape {
>     private draw() {...}
>     public coDraw(other) {
>       draw();
>       private(other).draw();
>     }
>     public shoot(gun) {
>       gun.draw();
>     }
>   }
> 
> In the names proposal, it seems that once in scope of a "private draw" 
> declaration, all apparent uses of "draw" as a property name are amplifying. 
> Even if the object being accessed has a normally named "draw" property, 
> "gun.draw()" will fail to access it. Is that right?
> 
> If all this will be addressed in the forthcoming love, I'm happy to postpone 
> these questions till then. Thanks.

These are good questions, but probably best to postpone till Sam has time to 
flesh out the strawman page.

Dave

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

Reply via email to