diff options
Diffstat (limited to 'src/qml/jsruntime/qv4engine.cpp')
-rw-r--r-- | src/qml/jsruntime/qv4engine.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/qml/jsruntime/qv4engine.cpp b/src/qml/jsruntime/qv4engine.cpp index 923d458feb..fe34207ddc 100644 --- a/src/qml/jsruntime/qv4engine.cpp +++ b/src/qml/jsruntime/qv4engine.cpp @@ -2048,10 +2048,7 @@ void ExecutionEngine::initQmlGlobalObject() void ExecutionEngine::initializeGlobal() { - QV4::Scope scope(this); - - QV4::ScopedObject qt(scope, memoryManager->allocate<QV4::QtObject>(qmlEngine())); - globalObject->defineDefaultProperty(QStringLiteral("Qt"), qt); + createQtObject(); QV4::GlobalExtensions::init(globalObject, QJSEngine::AllExtensions); @@ -2078,6 +2075,15 @@ void ExecutionEngine::initializeGlobal() } } +void ExecutionEngine::createQtObject() +{ + QV4::Scope scope(this); + QtObject *qtObject = new QtObject(this); + QJSEngine::setObjectOwnership(qtObject, QJSEngine::JavaScriptOwnership); + QV4::ScopedObject qt(scope, QV4::QObjectWrapper::wrap(this, qtObject)); + globalObject->defineDefaultProperty(QStringLiteral("Qt"), qt); +} + const QSet<QString> &ExecutionEngine::illegalNames() const { return m_illegalNames; |