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

Reply via email to