<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br></blockquote></div>
js> 0L == { valueOf: function() { return 0 } }<div><br>
typein:2:0 TypeError: no operator function found for ==<br>
<br>
</div><div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Is the Object-type operand converted to a primitive before the overload is matched?<br>
</blockquote>
<br></div>
No, the multimethod dispatch algorithm runs. Even with ToObject (I see I left that out), there is no predefined @@ADD or @@ADD_R on Object.prototype, so the error above is inevitable.</blockquote><div><br></div><div>What's the method for determining whether we run the multimethod dispatch algorithm versus the ES6 abstract equality algorithm?</div>
<div><br></div><div>Apologies if the answer is already out there.</div><div><br></div></div></div></div>