aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2022-05-20 10:05:32 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2022-05-24 10:20:01 +0000
commit985851361f637f0b8416f3537ee49b36c5a8da07 (patch)
tree6c80a4df4290bed3a62ac446344c437806c1e2d2
parent7810d632aab7f206639464fbf7536411ee068a11 (diff)
QmlCompiler: Do not wrap doubles into QJSPrimitiveValue
Doubles can be stored directly. If we wrap them into QJSPrimitiveValue we just induce unnecessary conversions. Task-number: QTBUG-103560 Change-Id: I34b4ac46afe72f1532362f0aaf156c4a30704f88 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 14fe834c42ac2eba9f0ac3cc064397ac796d0fb7) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--src/qmlcompiler/qqmljstyperesolver.cpp9
1 files changed, 2 insertions, 7 deletions
diff --git a/src/qmlcompiler/qqmljstyperesolver.cpp b/src/qmlcompiler/qqmljstyperesolver.cpp
index 9160985635..d1e1fa66f8 100644
--- a/src/qmlcompiler/qqmljstyperesolver.cpp
+++ b/src/qmlcompiler/qqmljstyperesolver.cpp
@@ -215,10 +215,7 @@ QQmlJSTypeResolver::typeForBinaryOperation(QSOperator::Op oper, const QQmlJSRegi
if (result == boolType())
return QQmlJSRegisterContent::create(intType(), intType(),
QQmlJSRegisterContent::Builtin);
- if (isNumeric(result))
- return QQmlJSRegisterContent::create(realType(), realType(),
- QQmlJSRegisterContent::Builtin);
- return QQmlJSRegisterContent::create(jsPrimitiveType(), realType(),
+ return QQmlJSRegisterContent::create(realType(), realType(),
QQmlJSRegisterContent::Builtin);
}
case QSOperator::Op::Mul:
@@ -226,9 +223,7 @@ QQmlJSTypeResolver::typeForBinaryOperation(QSOperator::Op oper, const QQmlJSRegi
case QSOperator::Op::Exp:
case QSOperator::Op::Mod:
return QQmlJSRegisterContent::create(
- isNumeric(merge(containedType(left), containedType(right))) ? realType()
- : jsPrimitiveType(),
- realType(), QQmlJSRegisterContent::Builtin);
+ realType(), realType(), QQmlJSRegisterContent::Builtin);
case QSOperator::Op::As:
return right;
default: