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
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-dev