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

Reply via email to