Implicit coercion of Symbols
Brendan Eich
brendan at mozilla.org
Sat Jan 3 10:52:37 PST 2015
None of the objects in the examples bz cited are Arrays -- what did you
mean?
Symbol must not implicitly convert in *any* object computed-property
access to string.
/be
Axel Rauschmayer wrote:
> Arrays are a good point, this is where I’d think accidental coercions
> are most likely. The other use case is object-as-dictionary, which
> will slowly be replaced by `Object.create(null)` (no need to escape in
> ES6+) and `Map`.
>
> I don’t feel strongly either way, I just feel that the added spec
> complexity is not ideal. Especially ToBoolean() not throwing an
> exception, while ToString() and ToNumber() do.
>
>> On 03 Jan 2015, at 04:02, Boris Zbarsky <bzbarsky at mit.edu
>> <mailto:bzbarsky at mit.edu>> wrote:
>>
>> On 1/2/15 9:40 PM, Axel Rauschmayer wrote:
>>> Can you give an example?
>>
>> get: function( num ) {
>> return num != null ?
>>
>> // Return just the one element from the set
>> ( num < 0 ? this[ num + this.length ] : this[ num ] ) :
>>
>> // Return all the elements in a clean array
>> slice.call( this );
>> },
>>
>> That's from jQuery 2.1.3.
>>
>> And from the same place:
>>
>> function cache( key, value ) {
>> // Use (key + " ") to avoid collision with native prototype
>> properties (see Issue #157)
>> if ( keys.push( key + " " ) > Expr.cacheLength ) {
>> // Only keep the most recent entries
>> delete cache[ keys.shift() ];
>> }
>> return (cache[ key + " " ] = value);
>> }
>>
>> That's after looking through about 1/10 of the library. I'll bet
>> there are more. I'll also bet this sort of thing appears in every
>> single major library out there.
>>
>> -Boris
>
> --
> Dr. Axel Rauschmayer
> axel at rauschma.de <mailto:axel at rauschma.de>
> rauschma.de
>
>
>
> _______________________________________________
> es-discuss mailing list
> es-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss
More information about the es-discuss
mailing list