diff -r 2f34d5167611 -r fcece45ef507 src/script/bridge/qscriptclassobject.cpp --- a/src/script/bridge/qscriptclassobject.cpp Fri Apr 16 15:50:13 2010 +0300 +++ b/src/script/bridge/qscriptclassobject.cpp Mon May 03 13:17:34 2010 +0300 @@ -226,7 +226,7 @@ QScriptClass *scriptClass = static_cast(delegate)->scriptClass(); QScriptEnginePrivate *eng_p = scriptEngineFromExec(exec); - //JSC::ExecState *oldFrame = eng_p->currentFrame; + JSC::ExecState *oldFrame = eng_p->currentFrame; eng_p->pushContext(exec, JSC::JSValue(), args, callee, true); QScriptContext *ctx = eng_p->contextForFrame(eng_p->currentFrame); @@ -234,6 +234,8 @@ QScriptValue result = qvariant_cast(scriptClass->extension(QScriptClass::Callable, qVariantFromValue(ctx))); if (!result.isObject()) result = defaultObject; + eng_p->popContext(); + eng_p->currentFrame = oldFrame; return JSC::asObject(eng_p->scriptValueToJSCValue(result)); }