diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2022-05-20 10:05:32 +0200 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2022-05-24 10:20:01 +0000 |
commit | 985851361f637f0b8416f3537ee49b36c5a8da07 (patch) | |
tree | 6c80a4df4290bed3a62ac446344c437806c1e2d2 | |
parent | 7810d632aab7f206639464fbf7536411ee068a11 (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.cpp | 9 |
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: |