Hi Stephen. > 1. I notice there are at least two implementations of hash tables in > JavaScriptCore/runtime, in Lookup.h and PropertyMapHashTable.h. Which, if > either, is used in, say, the normal case of accessing the properties of a DOM > element, like "window.location", etc.? And assuming it's one or the other, > what's the main use case of the other one?
window.location uses Lookup.h. Lookup.h contains hash table logic for static properties compiled into the binary. > 2. Also, it looks like string keys in Lookup.h are always "Identifier"s, > meaning (I think) that they are guaranteed to be single unique entries in the > "identifierTable" of a JSGlobalData object. Because of this preprocessing, > string equality in the hash table implementation can be tested just by > comparing addresses. Is there any reason why PropertyMapHashTable.h does not > (as far as I can tell) do the same thing? It does. inline PropertyTable::find_iterator PropertyTable::find(const KeyType& key) { ASSERT(key); ASSERT(key->isIdentifier() || key->isEmptyUnique()); unsigned hash = key->existingHash(); > 3. Does the JIT side of the codebase use unique string identifiers like > Lookup.h does, or is that a whole different ballgame? Can you be more specific? Geoff _______________________________________________ webkit-dev mailing list webkit-dev@lists.webkit.org http://lists.webkit.org/mailman/listinfo/webkit-dev