aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/corelib/jsextensions/jsextensions.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/corelib/jsextensions/jsextensions.cpp')
-rw-r--r--src/lib/corelib/jsextensions/jsextensions.cpp21
1 files changed, 12 insertions, 9 deletions
diff --git a/src/lib/corelib/jsextensions/jsextensions.cpp b/src/lib/corelib/jsextensions/jsextensions.cpp
index 30dac8e8b..66d7ebbd6 100644
--- a/src/lib/corelib/jsextensions/jsextensions.cpp
+++ b/src/lib/corelib/jsextensions/jsextensions.cpp
@@ -39,17 +39,19 @@
#include "jsextensions.h"
+#include <language/scriptengine.h>
+#include <tools/scripttools.h>
+
#include <QtCore/qmap.h>
-#include <QtScript/qscriptengine.h>
#include <utility>
-using InitializerMap = QMap<QString, void (*)(QScriptValue)>;
+using InitializerMap = QMap<QString, void (*)(qbs::Internal::ScriptEngine *, JSValue)>;
static InitializerMap setupMap()
{
#define INITIALIZER_NAME(name) initializeJsExtension##name
#define ADD_JS_EXTENSION(name) \
- void INITIALIZER_NAME(name)(QScriptValue); \
+ void INITIALIZER_NAME(name)(qbs::Internal::ScriptEngine *, JSValue); \
map.insert(QStringLiteral(#name), &INITIALIZER_NAME(name))
InitializerMap map;
@@ -77,20 +79,21 @@ static InitializerMap &initializers()
return theMap;
}
-void JsExtensions::setupExtensions(const QStringList &names, const QScriptValue &scope)
+void JsExtensions::setupExtensions(ScriptEngine *engine, const QStringList &names,
+ const JSValue &scope)
{
for (const QString &name : names)
- initializers().value(name)(scope);
+ initializers().value(name)(engine, scope);
}
-QScriptValue JsExtensions::loadExtension(QScriptEngine *engine, const QString &name)
+JSValue JsExtensions::loadExtension(ScriptEngine *engine, const QString &name)
{
if (!hasExtension(name))
return {};
- QScriptValue extensionObj = engine->newObject();
- initializers().value(name)(extensionObj);
- return extensionObj.property(name);
+ ScopedJsValue extensionObj(engine->context(), engine->newObject());
+ initializers().value(name)(engine, extensionObj);
+ return getJsProperty(engine->context(), extensionObj, name);
}
bool JsExtensions::hasExtension(const QString &name)