<div dir="ltr">it's transparent for the user and your example assumes nobody overwrote `Object.prototype.toString/valueOf`<div><br></div><div>That example is a crazy assumption for many reasons and the correct check would be eventually via `toString.call(object)`, well still hoping nobody changed native `toString`, of course, but you know what I mean.</div>
<div><br></div><div>If power users would like to compare via == when they are aware of operator overload for used classes then I don't see any problem.</div><div><br></div><div>Operators overload worked for power users in many other languages and I think if not abused it can be very handy.</div>
<div><br></div><div>Once again, just my 2 cents</div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Jan 14, 2014 at 10:41 AM, Kevin Smith <span dir="ltr"><<a href="mailto:zenparsing@gmail.com" target="_blank">zenparsing@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 dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div class="im"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr"><div><br></div><div><div>In JS world we are "use to" compare via === so that when == is used instead we are usually in "power user land", I don't see any conceptual shenanigans in doing something like above code.</div>



</div><div><br></div></div></blockquote><div><br></div></div><div>Only power users use "==" because it has weird conversion semantics that are hard to internalize.  "==" doesn't map to any simple relational concept, certainly not "equality":</div>


<div><br></div><div>    ({}) == "[object Object]"; // true</div><div><br></div><div>So if a user is going to overload "==", are they going to maintain those bizarre semantics?  If so, then crazy-pants.  If not, then it seems like we have introduced a hazard into code that is generic with respect to the types of operands to which "==" is applied.  Sometimes crazy conversion semantics, sometimes sensible equality semantics.</div>


<div><br></div><div>I'll stop there, because I don't know the details of the proposal.</div><div><br></div></div></div></div>
</blockquote></div><br></div>