Yes, if you don't override toString() or hash() -- the default toString() given by JS.Class includes the object's hash, which the default hash() implementation gives a different value for every object. However certain data structures override hash() to match up with the equals() contract -- see http://jsclass.jcoglan.com/equality.html