[webkit-dev] ExecState::thisObject()

Maciej Stachowiak mjs at apple.com
Mon Jul 13 16:08:31 PDT 2009

On Jul 13, 2009, at 3:36 PM, Geoffrey Garen wrote:

>>> I discussed this a bit with Darin and Geoff, and we came to the  
>>> conclusion that the correct fix is to have each JS DOMObject store  
>>> a JSGlobalObject pointer and augment the toJS methods to pass a  
>>> global object instead of an ExecState (close to you #1).  I would  
>>> not advocate storing more data on the ExecState.
> Sam and I just noticed that, to fully support this behavior, any  
> host object that lazily constructs function properties using the  
> functions in lookup.h must either
> (a) change in the same way as DOM objects must change
> or
> (b) eagerly construct its function properties with the correct  
> prototype.
> Consider this case, which does not involve a DOM object:
> frames[0].Array.prototype.push.__proto__ ==  
> Array.prototype.push.__proto__

Built-in classes work somewhat differently. I believe they use the  
calling function's global object ("lexical global object") rather than  
having some notion of home object.


More information about the webkit-dev mailing list