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.

Regards,
Maciej

_______________________________________________
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev

Reply via email to