diff -r dee5afe5301f -r 3f74d0d4af4c src/script/bridge/qscriptclassobject.cpp --- a/src/script/bridge/qscriptclassobject.cpp Mon Mar 15 12:43:09 2010 +0200 +++ b/src/script/bridge/qscriptclassobject.cpp Thu Apr 08 14:19:33 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)); }