<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Thu, Jun 19, 2014 at 8:16 PM, Allen Wirfs-Brock <span dir="ltr"><<a href="mailto:allen@wirfs-brock.com" target="_blank">allen@wirfs-brock.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 style="word-wrap:break-word"><br><div><div class=""><div>On Jun 19, 2014, at 10:46 AM, C. Scott Ananian wrote:</div>
<br><blockquote type="cite"><p dir="ltr">While we're on the topic, shall we discuss `valueOf()`?  Should it get the same treatment?<br>
  --scott</p></blockquote><div><br></div></div><div>I don't think so. To me, toString is a special case because it is explicitly applied so often, particularly for debugging purposes. </div><div><br></div><div>But valueOf is primarily invoked for implicit conversions in expressions.</div>
<div><br></div><div>Like I described earlier in this thread, TC39's assumption when it agreed to this ES design change was that the web did not generally depend upon using these existing ES3 generation  (or earlier) prototypes as instance objects.  In the case where we know that wasn't true (Function.prototype) we intentionally did not change the prototype to being a non-instance object.  We also agreed if we discovered other such dependencies we would change those prototypes back to being instance objects.</div>
<div><br></div><div>Discovering that one of these prototypes objects were being routinely used in expression contexts where valueOf was being implicitly applied would be evidence that that prototype needed to be handled in the legacy manner. But, we don't have any new evidence of that being the case.  Until there is some evidence, there isn't any reason to second guess the original analysis and TC39's decision.</div>
</div></div></blockquote><div><br></div><div>Ok, we'll try this in Nightly for Date.prototype and see if the assumption holds. If it does, we'll continue with the rest.<br><br></div><div>I don't really know if Date.prototype is a good canary, but it's what I have a mostly-finished patch for, and it doesn't seem to make too much of a difference.<br>
</div></div><br></div></div>