<br><br><div class="gmail_quote">On Thu, Oct 18, 2012 at 12:59 AM, Dmitry Soshnikov <span dir="ltr"><<a href="mailto:dmitry.soshnikov@gmail.com" target="_blank">dmitry.soshnikov@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div style="word-wrap:break-word"><div class="im"><br><div><div>On Oct 17, 2012, at 9:34 PM, Axel Rauschmayer wrote:</div><br><blockquote type="cite"><div style="word-wrap:break-word"><div><blockquote type="cite"><div style="word-wrap:break-word">

<div>Pardon, I missed and cannot find what is Object.assign(...), seems it's not from the latest draft. Is it just defining properties (via Object.defineProperty) on from a source to destination object? Like old-good Object.extend(...)?</div>

</div></blockquote><div><br></div><div>Explained here: <a href="https://github.com/rwldrn/tc39-notes/blob/master/es6/2012-09/sept-18.md" target="_blank">https://github.com/rwldrn/tc39-notes/blob/master/es6/2012-09/sept-18.md</a></div>

</div></div></blockquote></div><br></div><div>I see, thanks.</div><div><br></div><div>So, from what I see:</div><div><br></div><div>1. Source should not be the one. We should support many of sources to copy all them at once:</div>

<div><br></div><div>Object.assign(dest, source1[, source2, ... sourceN])</div></div></blockquote><div><br></div><div><br></div><div>I had originally hoped for this, but we reached consensus on Object.assign(dest, source) to allow for a possible descriptor map param.</div>

<div><br></div><div>The pattern you're looking for can be achieved as....</div><div><br></div><div>[ defaults, options, overrides ].reduce(Object.assign, {});</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div style="word-wrap:break-word"><div><br></div><div>In addition:</div><div><br></div><div>2. If the last parameter is boolean, then it's created as includeNonEnumerable:</div><div><br></div><div>Object.assign(desc, source1[, source2, ... sourceN, includeNonEnumerable);</div>

</div></blockquote><div><br></div><div><br></div><div>Boolean parameters are a non-starter and would conflict with the desire to have an optional third "default descriptor map" parameter.</div><div><br></div><div>

<br></div><div>Rick</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div><br></div><div>Example;</div><div><br></div>

<div>Object.assign({a: 10}, {b: 20}, Object.defineProperties({}, {c: {value: 30}}), true); // {a: 10, b: 20, c: 30}</div><span class="HOEnZb"><font color="#888888"><div><br></div><div>Dmitry</div></font></span></div></blockquote>

</div><br>