[webkit-dev] ExecState::thisObject()

Eric Seidel eric at webkit.org
Fri Jul 10 15:59:09 PDT 2009

Geoff, Gavin, Sam, Maciej (and any other JSC experts):

Adam and I are fixing:

Fix: toJS needs to use the correct global object.  The correct global
object should come from whatever "this" is calling into the native
code which is using toJS.
(e.g. document.body.  It doesn't matter how/when you access it, the
correct prototype comes from whichever global object which the
document was created from.)



Should use "thisValue" as passed into:
jsDocumentPrototypeFunctionCreateElement(ExecState* exec, JSObject*,
JSValue thisValue, const ArgList& args)

We believe the easiest way to get the correct globalData is via:


We do not need to change the signature of all toJS implementations if
the ExecState can carry the thisValue for us.

ExecState::thisValue() already exists, but ExecState::codeBlock()
seems NULL in our case.  (thisValue() seems used by the debugger).

1.  Is it correct for the ExecState to carry the "thisValue"?

2.  If ExecState is OK to carry "thisValue" how should we fix it to be
non-NULL in jsDocumentPrototypeFunctionCreateElement (and other

Eric & Adam

More information about the webkit-dev mailing list