diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2022-05-20 10:05:32 +0200 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@qt.io> | 2022-05-23 10:50:02 +0000 |
commit | 14fe834c42ac2eba9f0ac3cc064397ac796d0fb7 (patch) | |
tree | 5d4cc65069f97cb61ffaf3c122a3f0d2daa6e7f2 | |
parent | 775b1de8e57f098dddc532fe79e4d228a182be80 (diff) |
QmlCompiler: Do not wrap doubles into QJSPrimitiveValue
Doubles can be stored directly. If we wrap them into QJSPrimitiveValue
we just induce unnecessary conversions.
Pick-to: 6.2 6.3
Task-number: QTBUG-103560
Change-Id: I34b4ac46afe72f1532362f0aaf156c4a30704f88
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
-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 81a75faa38..654eeb7e02 100644 --- a/src/qmlcompiler/qqmljstyperesolver.cpp +++ b/src/qmlcompiler/qqmljstyperesolver.cpp @@ -243,10 +243,7 @@ QQmlJSTypeResolver::typeForBinaryOperation(QSOperator::Op oper, const QQmlJSRegi if (equals(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: @@ -254,9 +251,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: |