Re: Canvas and Interactivity

Cameron McCormack wrote:
> == checks for identity if both operands are objects, I thought (in
> addition to doing different kinds of comparisons if the operands are of
> different types):
> 
>   http://bclary.com/2004/11/07/#a-11.9.3 (step 13)

That's what the spec says, yes.  It doesn't quite match implementation 
reality in some edge cases which may or may not be triggerable by 
untrusted content script (and probably are not, at the moment).

For example, if you manage to get your hands on both the inner and outer 
window objects for a DOM Window in Gecko, they will most assuredly test 
== but not ===; then again, they're somewhat similar to the joined 
objects described in the specification.  There are various other cases 
too, especially cases where one object is supposed to be a wrapper for 
another object that enforces certain security constraints (the wrapper 
tests == but not === to the wrapped object).

In general, Spidermonkey allows host objects to implement == in an 
arbitrary way: see the |equality| member of JSExtendedClass at 
https://developer.mozilla.org/en/SpiderMonkey/JSAPI_Reference/JSExtendedClass

-Boris

Received on Friday, 24 July 2009 04:54:18 UTC