IMHO, a set(key, value) should return the value as it is when you address a value<div><br></div><div>var o = m.get(k) || m.set(k, v); // o === v</div><div><br></div><div>// equivalent of</div><div><br></div><div>var o = m[k] || (m[k] = v); // o === v</div>
<div><br></div><div>a set with a key that returns `this` is a non case so almost as useless as the void return is.</div><div><br></div><div>Usefulness comes with use cases ... except this jQuery chainability thingy that works fine for jQuery structure ( an ArrayLike Collection ) who asked for map.set(k0, v0).set(k1, v1).set(k2, v2) ? Or even map.set(k0,v0).get(k1) ? what are use cases for this?</div>
<div><br></div><div>I am honestly curious about them because I cannot think a single one ... specially with the Set</div><div><br></div><div>s.add(k0).add(k1).add(k2) ... this code looks weird inlined like this ...</div><div>
<br></div><div>Thanks for your patience</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Dec 3, 2012 at 2:04 PM, Rick Waldron <span dir="ltr"><<a href="mailto:waldron.rick@gmail.com" target="_blank">waldron.rick@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br><div class="gmail_extra"><br><br><div class="gmail_quote"><div class="im">On Mon, Dec 3, 2012 at 4:28 PM, Andrea Giammarchi <span dir="ltr"><<a href="mailto:andrea.giammarchi@gmail.com" target="_blank">andrea.giammarchi@gmail.com</a>></span> wrote:<br>


<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I wonder what was the use case that convinced TC39 to return `this` with these methods.</blockquote><div><br></div></div>
<div>

Assuming you read the notes, I proposed the agenda item based on the best practice of ensuring meaningful returns, and in the case of mutation methods, |this| is a meaningful return.</div><div class="im"><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<div><br></div><div>Accordingly, this will never work:</div><div><span style="font-family:arial,sans-serif;font-size:13px">var query = map.has('queried') ? map.get('queried') : map.set('queried', $('myquery'</span><span style="font-family:arial,sans-serif;font-size:13px">));</span></div>


</blockquote><div><br></div></div><div>Previously, map.set() had a useless void return...</div><div class="im"><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><br>
</div><div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div><div><span style="font-family:arial,sans-serif;font-size:13px">And it will be something like:</span></div><div><span style="font-family:arial,sans-serif;font-size:13px">var query = map.has('queried') ? map.get('queried') : map.set('queried', $('myquery'</span><span style="font-family:arial,sans-serif;font-size:13px">)).get('queried');</span><span style="font-family:arial,sans-serif;font-size:13px"><br>



</span></div><div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div><div><span style="font-family:arial,sans-serif;font-size:13px">which is ugly and I don't really understand where map.set(k0, v0).set(k1, v1).set(k2, v2) could be useful.</span></div>


</blockquote><div><br></div></div><div>Accessing the object post-mutation allows for more expressive use of the API.</div><div><br></div><div><br></div><div>Rick</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">


<div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div><div><span style="font-family:arial,sans-serif;font-size:13px">Thanks for clarifications ( a use case would be already good )</span></div><div>



<span style="font-family:arial,sans-serif;font-size:13px"><br></span></div><div><span style="font-family:arial,sans-serif;font-size:13px">br</span></div>
<br></div>_______________________________________________<br>
es-discuss mailing list<br>
<a href="mailto:es-discuss@mozilla.org" target="_blank">es-discuss@mozilla.org</a><br>
<a href="https://mail.mozilla.org/listinfo/es-discuss" target="_blank">https://mail.mozilla.org/listinfo/es-discuss</a><br>
<br></blockquote></div><br></div>
</blockquote></div><br></div>