On Tue, Feb 28, 2012 at 3:05 AM, Brendan Eich <span dir="ltr"><<a href="mailto:brendan@mozilla.org">brendan@mozilla.org</a>></span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Yes, clear enough -- however adding new trailing arguments to an existing method is treacherous. It's likely calls in the wild pass a second argument by mistake. Less likely but still possible: an implementation has unwisely extended sort to have an optional second parameter already. This goes against the now-explicit NOTE in ES5:<br>

<br>
NOTE Implementations that add additional capabilities to the set of built-in functions are encouraged to do so by adding new functions rather than adding new parameters to existing functions.<br>
<br>
We could rule this out for the top five browser engines, but the possibility of extant code passing an extra actual parameter remains.<br></blockquote><div><br></div><div>Why rule this out? IIRC, the rationale is that JS code is generally encouraged to use "feature detection" style to attempt to detect presence of new or optional functionality. The encouraged styles I've seen are </div>
<div>* if ('methodName' in obj)...</div><div>* if (obj.methodName)...</div><div>* if (typeof obj.methodName === 'function')...</div><div><br></div><div>I have not seen people "&&" these with a check of "obj.methodName.length === expectedArity". I would prefer to avoid encouraging such an additional check -- especially as function arity has historically been unreliable as an indicator of anything.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Better to have a new sortWithTransform method if necessary.</blockquote><div><br></div><div>If necessary, sure. This one doesn't seem so IMO.</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<span class="HOEnZb"><font color="#888888"><br>
<br>
/be</font></span><div class="HOEnZb"><div class="h5"><br>
______________________________<u></u>_________________<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/<u></u>listinfo/es-discuss</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br>    Cheers,<br>    --MarkM<br>