summaryrefslogtreecommitdiffstats
path: root/src/script/api/qscriptengine.cpp
diff options
context:
space:
mode:
authorJocelyn Turcotte <jocelyn.turcotte@nokia.com>2010-04-12 14:08:24 (GMT)
committerJocelyn Turcotte <jocelyn.turcotte@nokia.com>2010-04-12 14:08:24 (GMT)
commit1b4736527627fd29074d853a48ea8f94b238fe9b (patch)
treea8ea9bd3012689d4737ffa1ec486f516ebc8f017 /src/script/api/qscriptengine.cpp
parent50a8b8782ab3dab6446cca9a5528d6287df9d7d1 (diff)
parent6f736694461edc25b6e757f40ab9cad6a9207ad4 (diff)
downloadQt-1b4736527627fd29074d853a48ea8f94b238fe9b.zip
Qt-1b4736527627fd29074d853a48ea8f94b238fe9b.tar.gz
Qt-1b4736527627fd29074d853a48ea8f94b238fe9b.tar.bz2
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt into qtwebkitStaging-4.7
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 13b8e7c..2417d80 100644
--- a/src/script/api/qscriptengine.cpp
+++ b/src/script/api/qscriptengine.cpp
@@ -1067,11 +1067,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());
}
}