--- a/src/script/bridge/qscriptdeclarativeobject.cpp Fri Sep 17 08:34:18 2010 +0300
+++ b/src/script/bridge/qscriptdeclarativeobject.cpp Mon Oct 04 01:19:32 2010 +0300
@@ -88,6 +88,7 @@
JSC::JSValue value, JSC::PutPropertySlot &slot)
{
QScriptEnginePrivate *engine = scriptEngineFromExec(exec);
+ QScript::SaveFrameHelper saveFrame(engine, exec);
QScriptDeclarativeClass::Identifier identifier = (void *)propertyName.ustring().rep();
QScriptDeclarativeClassPrivate *p = QScriptDeclarativeClassPrivate::get(m_class);
@@ -144,7 +145,7 @@
QScriptDeclarativeClass *scriptClass = static_cast<DeclarativeObjectDelegate*>(delegate)->m_class;
QScriptEnginePrivate *eng_p = scriptEngineFromExec(exec);
- JSC::ExecState *oldFrame = eng_p->currentFrame;
+ QScript::SaveFrameHelper saveFrame(eng_p, exec);
eng_p->pushContext(exec, thisValue, args, callee);
QScriptContext *ctxt = eng_p->contextForFrame(eng_p->currentFrame);
@@ -153,7 +154,6 @@
scriptClass->call(static_cast<DeclarativeObjectDelegate*>(delegate)->m_object, ctxt);
eng_p->popContext();
- eng_p->currentFrame = oldFrame;
return (JSC::JSValue &)(result);
}