aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/corelib/language/moduleproviderloader.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/corelib/language/moduleproviderloader.cpp')
-rw-r--r--src/lib/corelib/language/moduleproviderloader.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/lib/corelib/language/moduleproviderloader.cpp b/src/lib/corelib/language/moduleproviderloader.cpp
index 3e62d9ed9..dae8bba15 100644
--- a/src/lib/corelib/language/moduleproviderloader.cpp
+++ b/src/lib/corelib/language/moduleproviderloader.cpp
@@ -54,6 +54,7 @@
#include <tools/fileinfo.h>
#include <tools/jsliterals.h>
+#include <tools/scripttools.h>
#include <tools/stlutils.h>
#include <tools/stringconstants.h>
@@ -182,9 +183,12 @@ QVariantMap ModuleProviderLoader::getModuleProviderConfig(
collectMap(childItem, QualifiedId(name) << it.key());
continue;
}
- case Value::JSSourceValueType:
- value = m_evaluator->value(item, it.key()).toVariant();
+ case Value::JSSourceValueType: {
+ const ScopedJsValue sv(m_evaluator->engine()->context(),
+ m_evaluator->value(item, it.key()));
+ value = getJsVariant(m_evaluator->engine()->context(), sv);
break;
+ }
case Value::VariantValueType:
value = static_cast<VariantValue *>(it.value().get())->value();
break;
@@ -270,7 +274,9 @@ QVariantMap ModuleProviderLoader::evaluateQbsModule(ProductContext &product) con
product.item->property(StringConstants::qbsModule()));
QVariantMap result;
for (const auto &property : properties) {
- auto value = m_evaluator->value(qbsItemValue->item(), property).toVariant();
+ const ScopedJsValue val(m_evaluator->engine()->context(),
+ m_evaluator->value(qbsItemValue->item(), property));
+ auto value = getJsVariant(m_evaluator->engine()->context(), val);
if (value.isValid())
result[property] = std::move(value);
}