<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jan 18, 2018 at 12:37 PM, T.J. Crowder <span dir="ltr"><<a href="mailto:tj.crowder@farsightsoftware.com" target="_blank">tj.crowder@farsightsoftware.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><span class="gmail-"><div>On Thu, Jan 18, 2018 at 5:28 PM, 森建 <<a href="mailto:moriken@kimamass.com" target="_blank">moriken@kimamass.com</a>> wrote:</div><div>></div><div>> This code is redundant. I just want to write</div><div>> `mapA.assign(mapB, mapC);`.</div><div><br></div></span><div>FWIW, it would be more in keeping with `Object.assign` if it were on `Map` rather than `Map.prototype`. E.g., you'd write the code above like this:</div></div></blockquote><div><br></div><div>What if, instead of a variety of assign methods, we respeced</div><div>Object.assign to do this given a Map as the left-value?</div><div><br></div><div>If Object.assign sees a "set" method of length 2, then it stores</div><div>    obj.set.bind(obj)</div><div>and uses that rather than assigns to fields.</div><div><br></div><div>Two points of potential controversy:</div><div><br></div><div>- if an array is on the right, do we pass string or integer keys<br></div><div>  to the bound setter?</div><div>- if we allow Maps on the right, we could allow WeakMaps</div><div>  on the left.  Users might assume that WeakMap could then</div><div>  be used on the right.</div><div><br></div></div></div></div>