For a while TC39 considered syntactic support for referencing Symbol-keyed properties. EG:
let pri = new Symbol; obj.@pri = 42; When we realized that symbols weren't private enough, we decided that [ ] would suffice. At that point using Symbols for "soft private" was no more convenient and perhapsĀ less then just using a _ prefix to be indicate soft-private. On May 28, 2018, 4:10 PM, at 4:10 PM, Mike Samuel <[email protected]> wrote: >https://esdiscuss.org/topic/private-slots >""" >Allen Wirfs-Brock (5 years ago) > >As further evidence, the word "private" does not even occur in sections >8.1.6 and 8.1.6.1 of the current ES6 draft. These are the sections that >define the ES6 object model. Small changes and additions had to be made >to >allow for property keys to be either strings or symbols but those >changes >are independent of whether a symbol is private or not. The only place >that >the privateness of a symbol comes into play (besides in proxies) is in >the >context of a few reflection operations whose behavior is predicated >upon >whether a symbol property key is a private symbol or not. This is very >similar to the tests that the same or similar operations make on >individual >property attributes. >""" >I don't know when Object.getOwnPropertySymbols made symbols useless for >private-like symbols, bit IIUC, 5 years ago they were kind of being >advanced for both to allow properties visible only to a symbol holder >and >for cooperative namespace separation. > > > >On Mon, May 28, 2018 at 3:48 PM, Mark Miller <[email protected]> wrote: > >> There was at some point an attempt at elaborating "symbol" into some >kind >> of "private name" or "private symbol", which failed for well >explained >> reasons. However, this is not where symbols started. Symbols started >as a >> way to introduce new properties while avoiding conflict with possible >> property names, IOW, as a way to introduce new property "names" that >were >> guaranteed not to collide with any existing names. This is still >their >> primary purpose. >> >> >> On Mon, May 28, 2018 at 11:09 AM, T.J. Crowder < >> [email protected]> wrote: >> >>> Hi all, >>> >>> I've tried to glean this from the meeting notes and such, but many >who >>> were actively involved are on the list, so: >>> >>> Am I right that Symbols started out as "private Name objects" then >over >>> time their name was changed, they became primitives, and the privacy >aspect >>> was dropped; but having guaranteed-unique values was still useful, >and >>> found application (amongst other places) in solving the problem of >adding a >>> default iterator to `Array.prototype` without name conflicts with >existing >>> code in the wild? >>> >>> Thanks, >>> >>> -- T.J. Crowder >>> >>> _______________________________________________ >>> es-discuss mailing list >>> [email protected] >>> https://mail.mozilla.org/listinfo/es-discuss >>> >>> >> >> >> -- >> Cheers, >> --MarkM >> >> _______________________________________________ >> es-discuss mailing list >> [email protected] >> https://mail.mozilla.org/listinfo/es-discuss >> >> > > >------------------------------------------------------------------------ > >_______________________________________________ >es-discuss mailing list >[email protected] >https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

