Additional cascading Map/Set/WeakMap methods?

Allen Wirfs-Brock allen at wirfs-brock.com
Sun Jan 13 20:18:03 PST 2013


On Jan 13, 2013, at 6:47 PM, Mark S. Miller wrote:

> My reversal was posted at
> <https://mail.mozilla.org/pipermail/es-discuss/2012-December/026932.html>.
> Thanks there to Jussi Kalliokoski for also clearing up this issue.

Well, I don't agree with Jussi's contention that it is an anti-parttern.  It's a pattern, all right, and whether it a "good pattern" or a "bad pattern" is subjective.

There are reasonable arguments, on both-sides of this issue.  Personally, I won't want to force anyone to either use or not use the pattern.  Of course, no body is ever force to use a "cascading" result even if an API provides.  However, if we excluded the cascade result at the API design level then we are making it impossible for those who like the cascade pattern from using it.

My Libertarian streak says, in reasonable situations give JS programmers the rope and let them decide whether and how to use it.

Allen







> 
> On Sun, Jan 13, 2013 at 6:45 PM, Mark S. Miller <erights at google.com> wrote:
>> Since then, due to issues pointed out here on es-discuss, I withdrew
>> my consensus from this decision.
>> 
>> See also <https://mail.mozilla.org/pipermail/es-discuss/2012-December/026971.html>
>> where Andreas states the issue more clearly than I did.
>> 
>> 
>> On Sun, Jan 13, 2013 at 4:44 PM, Allen Wirfs-Brock
>> <allen at wirfs-brock.com> wrote:
>>> At the last TC39 meeting, it was agreed tothat the set/add methods would return the collection that to which something is being added.
>>> 
>>> This supports code patterns like:
>>> 
>>> someMap.set(key1,value1).set(key2,value3);
>>> 
>>> In making this change to the spec. I noticed several other methods that could reasonably be used in this same pattern. For example:
>>> 
>>> someMap.clear().set(aKey, aValue);
>>> 
>>> someSet.delete(oldMember).add(newMember);
>>> 
>>> Are there any objections to making the clear and delete methods of Map/WeakMap/Set also return the collection, just like set/add?
>>> 
>>> Allen
>>> 
>>> 
>>> 
>>> _______________________________________________
>>> es-discuss mailing list
>>> es-discuss at mozilla.org
>>> https://mail.mozilla.org/listinfo/es-discuss
>> 
>> 
>> 
>> --
>>    Cheers,
>>    --MarkM
> 
> 
> 
> -- 
>    Cheers,
>    --MarkM
> 



More information about the es-discuss mailing list