summaryrefslogtreecommitdiffstats
path: root/src/script/api/qscriptengine.cpp
diff options
context:
space:
mode:
authorFrans Englich <frans.englich@nokia.com>2010-04-10 18:47:51 (GMT)
committerFrans Englich <frans.englich@nokia.com>2010-04-10 18:47:51 (GMT)
commite0408d9aaa19c16fd78fd9a2bf9edd25abf8bb9e (patch)
tree05114039874d5c28d43f1bfaf6ab43ac5b4c9493 /src/script/api/qscriptengine.cpp
parent3de3c5b73f788a52f9c1d1c3699b2c90149c6646 (diff)
parent587f4325850615392e99881e060121bd5ea85360 (diff)
downloadQt-e0408d9aaa19c16fd78fd9a2bf9edd25abf8bb9e.zip
Qt-e0408d9aaa19c16fd78fd9a2bf9edd25abf8bb9e.tar.gz
Qt-e0408d9aaa19c16fd78fd9a2bf9edd25abf8bb9e.tar.bz2
Merge branch '4.6' of scm.dev.nokia.troll.no:qt/qt-s60-public into 4.6
Diffstat (limited to 'src/script/api/qscriptengine.cpp')
-rw-r--r--src/script/api/qscriptengine.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/script/api/qscriptengine.cpp b/src/script/api/qscriptengine.cpp
index d6d1367..2422108 100644
--- a/src/script/api/qscriptengine.cpp
+++ b/src/script/api/qscriptengine.cpp
@@ -1007,11 +1007,15 @@ void QScriptEnginePrivate::setGlobalObject(JSC::JSObject *object)
if (object == globalObject())
return;
QScript::GlobalObject *glob = static_cast<QScript::GlobalObject*>(originalGlobalObject());
- if (object == originalGlobalObjectProxy)
+ if (object == originalGlobalObjectProxy) {
glob->customGlobalObject = 0;
- else {
+ // Sync the internal prototype, since JSObject::prototype() is not virtual.
+ glob->setPrototype(originalGlobalObjectProxy->prototype());
+ } else {
Q_ASSERT(object != originalGlobalObject());
glob->customGlobalObject = object;
+ // Sync the internal prototype, since JSObject::prototype() is not virtual.
+ glob->setPrototype(object->prototype());
}
}