Brendan Eich (2013-07-18T20:52:31.000Z)
Allen Wirfs-Brock wrote:
> On Jul 18, 2013, at 8:09 AM, Brendan Eich wrote:
>> Andreas Rossberg wrote:
>>> On 18 July 2013 01:09, Brendan Eich<brendan at mozilla.com 
>>> <mailto:brendan at mozilla.com>>  wrote:
>>>> Brandon Benvie wrote:
>>>>> On 7/17/2013 4:02 PM, Brandon Benvie wrote:
>>>>>> And this is how it currently works in the V8 implementation. The 
>>>>>> first
>>>>>> thing I did testing it looked like:
>>>>>>
>>>>>>     var s = new Symbol();
>>>>>>     var x = {};
>>>>>>     x[s] = 'test';
>>>>>>
>>>>>> I was surprised to find that this threw an error instead of doing 
>>>>>> the (to
>>>>>> me) obvious thing.
>>>>> (And to clarify, it throws on line 3, not line 1)
>>>> This is nuts.
>>>
>>> May I humbly remind you that we explicitly discussed and decided this
>>> at the March meeting?
>>
>> If it's nuts now, it was nuts in March :-P.
>>
>>>  I actually would have preferred if 'new Symbol'
>>> worked, and that was what V8 implemented before the meeting.
>>
>> You are right, I see this in the March 14 meeting notes. So I'm 
>> pleading temporary insanity. We'll have to reestablish consensus. I 
>> will refrain from more (self-)analysis ;-).
>>
>
> No, you just need to read carefully,

Do you mean me, or Andreas? Or Rick who took the meeting notes?

The notes should not require reading between the lines, including your 
unrecorded statements! Not that notes are ever perfect.

Ok, everyone take a deep breath....

> I remember that this is just a summary of the discussion, not literal 
> quotes,  and not everything is captured:
>
>     AWB: |Symbol| is a factory that creates symbols, |new Symbol|
>     creates instance of the wrapper class. (same as Number)
>
>     BE: Value objects allow "new"
>
>     AWB: I can define the |Symbol[@@create]| to throw
>
>
> I'm pretty sure that as part of the first statement I also said that 
> 'new Symbol' should not create a primitive value because that would 
> violate the wrapper object pattern.
> The Synbol[@@create]] comment is another way of saying 'new Symbol' 
> should throw.

Yes, and (whether it was March or May -- March I think) we did talk 
about value object constructors not supporting 'new'.

> There is nothing following this in the Symbols section of the minutes 
> that address whether or not there are Symbol wrappers. My take-away 
> from the meeting  was we would try to do Symbols as as a primitive, 
> with a factory object named 'Symbol', but no user visible wrapper 
> instances.  I don't see anything in the minutes that says otherwise. 
>  In fact, the conclusion/resolution doesn't even say that Symbols will 
> be primitive values.  All of the bullet items listed there are apply 
> equally to either symbols as primitives or symbols as exotic objects. 
> The current (and previous, I believe) spec. draft reflects those 
> explicit conclusions.

Ok, but we clearly had two people (at least) at the meeting who came to 
quite different conclusions. That's a problem. These things happen, 
we'll sort it out, but I'm not sure what you are doing here other than 
reiterating what you got from the notes. The notes are incomplete, in a 
way that supports multiple conflicting interpretations.

/be
domenic at domenicdenicola.com (2013-07-24T00:12:47.104Z)
Allen Wirfs-Brock wrote:
> No, you just need to read carefully,

Do you mean me, or Andreas? Or Rick who took the meeting notes?

The notes should not require reading between the lines, including your 
unrecorded statements! Not that notes are ever perfect.

Ok, everyone take a deep breath....

> I remember that this is just a summary of the discussion, not literal 
> quotes,  and not everything is captured:
>
>     AWB: |Symbol| is a factory that creates symbols, |new Symbol|
>     creates instance of the wrapper class. (same as Number)
>
>     BE: Value objects allow "new"
>
>     AWB: I can define the |Symbol[@@create]| to throw
>
>
> I'm pretty sure that as part of the first statement I also said that 
> 'new Symbol' should not create a primitive value because that would 
> violate the wrapper object pattern.
> The Synbol[@@create]] comment is another way of saying 'new Symbol' 
> should throw.

Yes, and (whether it was March or May -- March I think) we did talk 
about value object constructors not supporting 'new'.

> There is nothing following this in the Symbols section of the minutes 
> that address whether or not there are Symbol wrappers. My take-away 
> from the meeting  was we would try to do Symbols as as a primitive, 
> with a factory object named 'Symbol', but no user visible wrapper 
> instances.  I don't see anything in the minutes that says otherwise. 
>  In fact, the conclusion/resolution doesn't even say that Symbols will 
> be primitive values.  All of the bullet items listed there are apply 
> equally to either symbols as primitives or symbols as exotic objects. 
> The current (and previous, I believe) spec. draft reflects those 
> explicit conclusions.

Ok, but we clearly had two people (at least) at the meeting who came to 
quite different conclusions. That's a problem. These things happen, 
we'll sort it out, but I'm not sure what you are doing here other than 
reiterating what you got from the notes. The notes are incomplete, in a 
way that supports multiple conflicting interpretations.