aboutsummaryrefslogtreecommitdiffstats
path: root/src/qmlcompiler/qqmljscodegenerator.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/qmlcompiler/qqmljscodegenerator.cpp')
-rw-r--r--src/qmlcompiler/qqmljscodegenerator.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/qmlcompiler/qqmljscodegenerator.cpp b/src/qmlcompiler/qqmljscodegenerator.cpp
index 686338c1a6..8d8a7c9118 100644
--- a/src/qmlcompiler/qqmljscodegenerator.cpp
+++ b/src/qmlcompiler/qqmljscodegenerator.cpp
@@ -3100,6 +3100,25 @@ QString QQmlJSCodeGenerator::conversion(const QQmlJSScope::ConstPtr &from,
return variable + u".toUtf8()"_s;
}
+ for (const auto &originType : {
+ m_typeResolver->dateTimeType(),
+ m_typeResolver->dateType(),
+ m_typeResolver->timeType()}) {
+ if (m_typeResolver->equals(from, originType)) {
+ for (const auto &targetType : {
+ m_typeResolver->dateTimeType(),
+ m_typeResolver->dateType(),
+ m_typeResolver->timeType(),
+ m_typeResolver->stringType()}) {
+ if (m_typeResolver->equals(to, targetType)) {
+ return u"aotContext->engine->coerceValue<%1, %2>(%3)"_s.arg(
+ originType->internalName(), targetType->internalName(), variable);
+ }
+ }
+ break;
+ }
+ }
+
const auto retrieveFromPrimitive = [&](
const QQmlJSScope::ConstPtr &type, const QString &expression) -> QString
{