W3C home > Mailing lists > Public > whatwg@whatwg.org > January 2012

(unknown charset) [whatwg] link.sizes and [PutForwards=value]

From: (unknown charset) Bronislav Klučka <Bronislav.Klucka@bauglir.com>
Date: Sat, 21 Jan 2012 05:49:38 +0100
Message-ID: <4F1A43E2.7040206@bauglir.com>

> Cameron McCormack:
>>> The two Location objects stringify to the same thing, but are not 
>>> ==.  I think
>>> this can be confusing.
>
> Ian Hickson:
>> Can we overload equality for objects?
>
> No, not within the confines of ECMAScript.

I do agree here with Cameron. This could cause inconsistency issues, 
some object would be compared according to pointer like approach, some 
object would be compared according to toString()/valueOf() approach; 
some objects might represent the same data when stringified, yet be 
different ([object Object]).
The fact, that programmer does not know that window.location is Location 
object, not string should be no excuse here. Setter of this object can 
accept string, that is fine, but getter should return always the same, 
not sometimes string, sometimes object...
if

xw.location == yw.location
are the same based on string comparison, we would introduce type coercion to comparison with already the same type on both sides, heh?.
And at last, what should
var x = xw.location
do? what is the type of x? String? it makes no sense at all. Object? fine, but then how come sometimes getter returns object (in assignments) and sometimes string (in comparison).
ECMAScript defines no operator overloading, and we should not introduce one arbitrary because someone does not read spec, does not test, does not use browsers development tools, etc.

Brona
Received on Friday, 20 January 2012 20:49:38 UTC

This archive was generated by hypermail 2.3.1 : Monday, 13 April 2015 23:09:10 UTC