Object ID's

Kris Zyp kriszyp at xucia.com
Mon Mar 26 10:43:44 PDT 2007


I wanted to mention a few things about the subjects around objectIds/hashCode/weak refs:
First, I would love to be able to define weak references in ES4. I have worked on projects where this would be enormously helpful in reducing memory usage, and there is simply no way (that I know of) to reproduce this capability (it is much more than making something easier, it is making it possible). To me this would be the single greatest feature of ES4, and as far as the spec goes, does not seem like it would be a difficult addition.
Second, I think it would be nice to have access to unique IDs for objects, that would be helpful in certain situations.
Third, in Java hashCodes must NOT be unique in situations where two separate objects are defined (by the equal method) to be equivalent. For example:
String str1 = new String("hello");
String str2 = new String("hello");
With these two variables str1==str2 should return false and str1.equals(str2) should equal true, and therefore str1 and str2 hashCode must be the same (JavaDocs make this very clear and this is why the String class in Java overrides the hashCode method instead of using the default implementation that usually returns a unique number corresponding to a memory location).
As long as a language allows one to define the meaning of equivalence between separate objects (and those objects can be used as keys in hashes), hashCodes must not be always unique. Java allows defining the meaning of equivalence by overriding the equal method, ES4 will allow definining equivalence by overriding the == operator, so I would assume it is necessary that hashCodes not be always unique. I am not sure if this was already articulated, but it didn't seem to be.
Anyway, I apologize if this is too late in the discussion, but I do really hope that weak referencing makes it in the spec.
Kris
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.mozilla.org/pipermail/es-discuss/attachments/20070326/8921630e/attachment-0002.html 


More information about the Es4-discuss mailing list