Private symbols as WeakMap sugar

Brendan Eich brendan at mozilla.com
Wed Jan 16 10:42:42 PST 2013


David Bruant wrote:
> Hi,
>
> This is an idea naturally derived of all the current discussions about 
> WeakMaps and Private symbols. The proposal is easily summarized by 
> these lines of code:
>
>     var wm = new WeakMap();
>     var o = {};
>     o[wm] = 12 // desugars to wm.set(o, 12)
>     var a = o[wm]; // desugars to wm.get(o);
>     wm in o // desugars to wm.has(o);
>     delete o[wm] // desugars to wm.delete(o); 

You are not showing the desugaring in general:

function get(o,x) {
   return o[x];
}

must transform to

function get(o,x) {
   return (x is WeakMap) ? x.get(o) : o[x];
}

This is not an acceptable hit for every []-named property access.

/be


More information about the es-discuss mailing list