On Jan 16, 2013, at 10:53 AM, David Bruant wrote: > Le 16/01/2013 19:42, Brendan Eich a écrit : >> 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]; >> } > You're right, I hadn't thought of that. > >> This is not an acceptable hit for every []-named property access. > I intuit (and may be wrong) that even just observing types (weakmap or > stringified type) passed to a []-access can be a good indicator of how best > []-named property access should be JIT-compiled. You pay the price of the (x > is WeakMap) test only the time the JIT warms up. > Given what's in current engines, it sounds doable.
If you want to explore this area, I suggest taking a fresh look at http://wiki.ecmascript.org/doku.php?id=strawman:object_model_reformation Allen
_______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss