diff options
Diffstat (limited to 'src/qml/qml/v4/qv4bindings.cpp')
-rw-r--r-- | src/qml/qml/v4/qv4bindings.cpp | 316 |
1 files changed, 117 insertions, 199 deletions
diff --git a/src/qml/qml/v4/qv4bindings.cpp b/src/qml/qml/v4/qv4bindings.cpp index 25fbbd4861..3084f92d50 100644 --- a/src/qml/qml/v4/qv4bindings.cpp +++ b/src/qml/qml/v4/qv4bindings.cpp @@ -68,15 +68,15 @@ struct Register { void setUndefined() { dataType = UndefinedType; } void setNull() { dataType = NullType; } - void setNaN() { setqreal(qSNaN()); } + void setNaN() { setnumber(qSNaN()); } bool isUndefined() const { return dataType == UndefinedType; } void setQObject(QObject *o) { qobjectValue = o; dataType = QObjectStarType; } QObject *getQObject() const { return qobjectValue; } - void setqreal(qreal v) { qrealValue = v; dataType = QRealType; } - qreal getqreal() const { return qrealValue; } - qreal &getqrealref() { return qrealValue; } + void setnumber(double v) { numberValue = v; dataType = NumberType; } + double getnumber() const { return numberValue; } + double &getnumberref() { return numberValue; } void setint(int v) { intValue = v; dataType = IntType; } int getint() const { return intValue; } @@ -106,7 +106,7 @@ struct Register { Type dataType; // Type of data union { QObject *qobjectValue; - qreal qrealValue; + double numberValue; int intValue; bool boolValue; void *data[sizeof(QVariant)]; @@ -388,85 +388,6 @@ void QV4Bindings::subscribe(QObject *o, int notifyIndex, int subIndex) sub->disconnect(); } -// Conversion functions - these MUST match the QtScript expression path -inline static qreal toReal(Register *reg, int type, bool *ok = 0) -{ - if (ok) *ok = true; - - if (type == QMetaType::QReal) { - return reg->getqreal(); - } else if (type == qMetaTypeId<QVariant>()) { - return reg->getvariantptr()->toReal(); - } else { - if (ok) *ok = false; - return 0; - } -} - -inline static QString toString(Register *reg, int type, bool *ok = 0) -{ - if (ok) *ok = true; - - if (type == QMetaType::QReal) { - return QString::number(reg->getqreal()); - } else if (type == QMetaType::Int) { - return QString::number(reg->getint()); - } else if (type == qMetaTypeId<QVariant>()) { - return reg->getvariantptr()->toString(); - } else if (type == QMetaType::QString) { - return *reg->getstringptr(); - } else { - if (ok) *ok = false; - return QString(); - } -} - -inline static bool toBool(Register *reg, int type, bool *ok = 0) -{ - if (ok) *ok = true; - - if (type == QMetaType::Bool) { - return reg->getbool(); - } else if (type == qMetaTypeId<QVariant>()) { - return reg->getvariantptr()->toBool(); - } else { - if (ok) *ok = false; - return false; - } -} - -inline static QUrl toUrl(Register *reg, int type, QQmlContextData *context, bool *ok = 0) -{ - if (ok) *ok = true; - - QUrl base; - if (type == qMetaTypeId<QVariant>()) { - QVariant *var = reg->getvariantptr(); - int vt = var->type(); - if (vt == QVariant::Url) { - base = var->toUrl(); - } else if (vt == QVariant::ByteArray) { - // Preserve any valid percent-encoded octets supplied by the source - base.setEncodedUrl(var->toByteArray(), QUrl::TolerantMode); - } else if (vt == QVariant::String) { - base.setEncodedUrl(var->toString().toUtf8(), QUrl::TolerantMode); - } else { - if (ok) *ok = false; - return QUrl(); - } - } else if (type == QMetaType::QString) { - base.setEncodedUrl(reg->getstringptr()->toUtf8(), QUrl::TolerantMode); - } else { - if (ok) *ok = false; - return QUrl(); - } - - if (!base.isEmpty() && base.isRelative()) - return context->url.resolved(base); - else - return base; -} - static bool testCompareVariants(const QVariant &qtscriptRaw, const QVariant &v4) { QVariant qtscript = qtscriptRaw; @@ -558,8 +479,8 @@ static void testBindingResult(const QString &binding, int line, int column, case QMetaType::Int: v4value = result.getint(); break; - case QMetaType::QReal: - v4value = result.getqreal(); + case QMetaType::Double: + v4value = result.getnumber(); break; default: if (resultType == QQmlMetaType::QQuickAnchorLineMetaTypeId()) { @@ -622,15 +543,15 @@ static void throwException(int id, QQmlDelayedError *error, QQmlEnginePrivate::warning(context->engine, error->error); } -const qreal QV4Bindings::D32 = 4294967296.0; +const double QV4Bindings::D32 = 4294967296.0; -qint32 QV4Bindings::toInt32(qreal n) +qint32 QV4Bindings::toInt32(double n) { if (qIsNaN(n) || qIsInf(n) || (n == 0)) return 0; double sign = (n < 0) ? -1.0 : 1.0; - qreal abs_n = fabs(n); + double abs_n = fabs(n); n = ::fmod(sign * ::floor(abs_n), D32); const double D31 = D32 / 2.0; @@ -644,13 +565,13 @@ qint32 QV4Bindings::toInt32(qreal n) return qint32 (n); } -inline quint32 QV4Bindings::toUint32(qreal n) +inline quint32 QV4Bindings::toUint32(double n) { if (qIsNaN(n) || qIsInf(n) || (n == 0)) return 0; double sign = (n < 0) ? -1.0 : 1.0; - qreal abs_n = fabs(n); + double abs_n = fabs(n); n = ::fmod(sign * ::floor(abs_n), D32); @@ -869,11 +790,11 @@ void QV4Bindings::run(int instrIndex, quint32 &executedBlocks, } QML_V4_END_INSTR(UnaryNot, unaryop) - QML_V4_BEGIN_INSTR(UnaryMinusReal, unaryop) + QML_V4_BEGIN_INSTR(UnaryMinusNumber, unaryop) { - registers[instr->unaryop.output].setqreal(-registers[instr->unaryop.src].getqreal()); + registers[instr->unaryop.output].setnumber(-registers[instr->unaryop.src].getnumber()); } - QML_V4_END_INSTR(UnaryMinusReal, unaryop) + QML_V4_END_INSTR(UnaryMinusNumber, unaryop) QML_V4_BEGIN_INSTR(UnaryMinusInt, unaryop) { @@ -881,11 +802,11 @@ void QV4Bindings::run(int instrIndex, quint32 &executedBlocks, } QML_V4_END_INSTR(UnaryMinusInt, unaryop) - QML_V4_BEGIN_INSTR(UnaryPlusReal, unaryop) + QML_V4_BEGIN_INSTR(UnaryPlusNumber, unaryop) { - registers[instr->unaryop.output].setqreal(+registers[instr->unaryop.src].getqreal()); + registers[instr->unaryop.output].setnumber(+registers[instr->unaryop.src].getnumber()); } - QML_V4_END_INSTR(UnaryPlusReal, unaryop) + QML_V4_END_INSTR(UnaryPlusNumber, unaryop) QML_V4_BEGIN_INSTR(UnaryPlusInt, unaryop) { @@ -902,14 +823,14 @@ void QV4Bindings::run(int instrIndex, quint32 &executedBlocks, } QML_V4_END_INSTR(ConvertBoolToInt, unaryop) - QML_V4_BEGIN_INSTR(ConvertBoolToReal, unaryop) + QML_V4_BEGIN_INSTR(ConvertBoolToNumber, unaryop) { const Register &src = registers[instr->unaryop.src]; Register &output = registers[instr->unaryop.output]; if (src.isUndefined()) output.setUndefined(); - else output.setqreal(src.getbool()); + else output.setnumber(src.getbool()); } - QML_V4_END_INSTR(ConvertBoolToReal, unaryop) + QML_V4_END_INSTR(ConvertBoolToNumber, unaryop) QML_V4_BEGIN_INSTR(ConvertBoolToString, unaryop) { @@ -933,14 +854,14 @@ void QV4Bindings::run(int instrIndex, quint32 &executedBlocks, } QML_V4_END_INSTR(ConvertIntToBool, unaryop) - QML_V4_BEGIN_INSTR(ConvertIntToReal, unaryop) + QML_V4_BEGIN_INSTR(ConvertIntToNumber, unaryop) { const Register &src = registers[instr->unaryop.src]; Register &output = registers[instr->unaryop.output]; if (src.isUndefined()) output.setUndefined(); - else output.setqreal(qreal(src.getint())); + else output.setnumber(double(src.getint())); } - QML_V4_END_INSTR(ConvertIntToReal, unaryop) + QML_V4_END_INSTR(ConvertIntToNumber, unaryop) QML_V4_BEGIN_INSTR(ConvertIntToString, unaryop) { @@ -955,25 +876,25 @@ void QV4Bindings::run(int instrIndex, quint32 &executedBlocks, } QML_V4_END_INSTR(ConvertIntToString, unaryop) - QML_V4_BEGIN_INSTR(ConvertRealToBool, unaryop) + QML_V4_BEGIN_INSTR(ConvertNumberToBool, unaryop) { const Register &src = registers[instr->unaryop.src]; Register &output = registers[instr->unaryop.output]; if (src.isUndefined()) output.setUndefined(); - else output.setbool(src.getqreal() != 0); + else output.setbool(src.getnumber() != 0); } - QML_V4_END_INSTR(ConvertRealToBool, unaryop) + QML_V4_END_INSTR(ConvertNumberToBool, unaryop) - QML_V4_BEGIN_INSTR(ConvertRealToInt, unaryop) + QML_V4_BEGIN_INSTR(ConvertNumberToInt, unaryop) { const Register &src = registers[instr->unaryop.src]; Register &output = registers[instr->unaryop.output]; if (src.isUndefined()) output.setUndefined(); - else output.setint(toInt32(src.getqreal())); + else output.setint(toInt32(src.getnumber())); } - QML_V4_END_INSTR(ConvertRealToInt, unaryop) + QML_V4_END_INSTR(ConvertNumberToInt, unaryop) - QML_V4_BEGIN_INSTR(ConvertRealToString, unaryop) + QML_V4_BEGIN_INSTR(ConvertNumberToString, unaryop) { const Register &src = registers[instr->unaryop.src]; Register &output = registers[instr->unaryop.output]; @@ -981,11 +902,11 @@ void QV4Bindings::run(int instrIndex, quint32 &executedBlocks, if (src.isUndefined()) { output.setUndefined(); } else { - new (output.getstringptr()) QString(QString::number(src.getqreal())); + new (output.getstringptr()) QString(QString::number(src.getnumber())); STRING_REGISTER(instr->unaryop.output); } } - QML_V4_END_INSTR(ConvertRealToString, unaryop) + QML_V4_END_INSTR(ConvertNumberToString, unaryop) QML_V4_BEGIN_INSTR(ConvertStringToBool, unaryop) { @@ -1027,7 +948,7 @@ void QV4Bindings::run(int instrIndex, quint32 &executedBlocks, } QML_V4_END_INSTR(ConvertStringToInt, unaryop) - QML_V4_BEGIN_INSTR(ConvertStringToReal, unaryop) + QML_V4_BEGIN_INSTR(ConvertStringToNumber, unaryop) { const Register &src = registers[instr->unaryop.src]; Register &output = registers[instr->unaryop.output]; @@ -1042,10 +963,10 @@ void QV4Bindings::run(int instrIndex, quint32 &executedBlocks, output.cleanupString(); MARK_CLEAN_REGISTER(instr->unaryop.output); } - output.setqreal(tmp.toNumber()); + output.setnumber(tmp.toNumber()); } } - QML_V4_END_INSTR(ConvertStringToReal, unaryop) + QML_V4_END_INSTR(ConvertStringToNumber, unaryop) QML_V4_BEGIN_INSTR(ConvertStringToUrl, unaryop) { @@ -1198,75 +1119,75 @@ void QV4Bindings::run(int instrIndex, quint32 &executedBlocks, } QML_V4_END_INSTR(ResolveUrl, unaryop) - QML_V4_BEGIN_INSTR(MathSinReal, unaryop) + QML_V4_BEGIN_INSTR(MathSinNumber, unaryop) { const Register &src = registers[instr->unaryop.src]; Register &output = registers[instr->unaryop.output]; if (src.isUndefined()) output.setUndefined(); - else output.setqreal(qSin(src.getqreal())); + else output.setnumber(qSin(src.getnumber())); } - QML_V4_END_INSTR(MathSinReal, unaryop) + QML_V4_END_INSTR(MathSinNumber, unaryop) - QML_V4_BEGIN_INSTR(MathCosReal, unaryop) + QML_V4_BEGIN_INSTR(MathCosNumber, unaryop) { const Register &src = registers[instr->unaryop.src]; Register &output = registers[instr->unaryop.output]; if (src.isUndefined()) output.setUndefined(); - else output.setqreal(qCos(src.getqreal())); + else output.setnumber(qCos(src.getnumber())); } - QML_V4_END_INSTR(MathCosReal, unaryop) + QML_V4_END_INSTR(MathCosNumber, unaryop) - QML_V4_BEGIN_INSTR(MathAbsReal, unaryop) + QML_V4_BEGIN_INSTR(MathAbsNumber, unaryop) { const Register &src = registers[instr->unaryop.src]; Register &output = registers[instr->unaryop.output]; if (src.isUndefined()) output.setUndefined(); - else output.setqreal(qAbs(src.getqreal())); + else output.setnumber(qAbs(src.getnumber())); } - QML_V4_END_INSTR(MathAbsReal, unaryop) + QML_V4_END_INSTR(MathAbsNumber, unaryop) - QML_V4_BEGIN_INSTR(MathRoundReal, unaryop) + QML_V4_BEGIN_INSTR(MathRoundNumber, unaryop) { const Register &src = registers[instr->unaryop.src]; Register &output = registers[instr->unaryop.output]; if (src.isUndefined()) output.setUndefined(); - else output.setint(qRound(src.getqreal())); + else output.setint(qRound(src.getnumber())); } - QML_V4_END_INSTR(MathRoundReal, unaryop) + QML_V4_END_INSTR(MathRoundNumber, unaryop) - QML_V4_BEGIN_INSTR(MathFloorReal, unaryop) + QML_V4_BEGIN_INSTR(MathFloorNumber, unaryop) { const Register &src = registers[instr->unaryop.src]; Register &output = registers[instr->unaryop.output]; if (src.isUndefined()) output.setUndefined(); - else output.setint(qFloor(src.getqreal())); + else output.setint(qFloor(src.getnumber())); } - QML_V4_END_INSTR(MathFloorReal, unaryop) + QML_V4_END_INSTR(MathFloorNumber, unaryop) - QML_V4_BEGIN_INSTR(MathCeilReal, unaryop) + QML_V4_BEGIN_INSTR(MathCeilNumber, unaryop) { const Register &src = registers[instr->unaryop.src]; Register &output = registers[instr->unaryop.output]; if (src.isUndefined()) output.setUndefined(); - else output.setint(qCeil(src.getqreal())); + else output.setint(qCeil(src.getnumber())); } - QML_V4_END_INSTR(MathCeilReal, unaryop) + QML_V4_END_INSTR(MathCeilNumber, unaryop) - QML_V4_BEGIN_INSTR(MathPIReal, unaryop) + QML_V4_BEGIN_INSTR(MathPINumber, unaryop) { - static const qreal qmlPI = 2.0 * qAsin(1.0); + static const double qmlPI = 2.0 * qAsin(1.0); Register &output = registers[instr->unaryop.output]; - output.setqreal(qmlPI); + output.setnumber(qmlPI); } - QML_V4_END_INSTR(MathPIReal, unaryop) + QML_V4_END_INSTR(MathPINumber, unaryop) QML_V4_BEGIN_INSTR(LoadNull, null_value) registers[instr->null_value.reg].setNull(); QML_V4_END_INSTR(LoadNull, null_value) - QML_V4_BEGIN_INSTR(LoadReal, real_value) - registers[instr->real_value.reg].setqreal(instr->real_value.value); - QML_V4_END_INSTR(LoadReal, real_value) + QML_V4_BEGIN_INSTR(LoadNumber, number_value) + registers[instr->number_value.reg].setnumber(instr->number_value.value); + QML_V4_END_INSTR(LoadNumber, number_value) QML_V4_BEGIN_INSTR(LoadInt, int_value) registers[instr->int_value.reg].setint(instr->int_value.value); @@ -1313,12 +1234,12 @@ void QV4Bindings::run(int instrIndex, quint32 &executedBlocks, } QML_V4_END_INSTR(BitXorInt, binaryop) - QML_V4_BEGIN_INSTR(AddReal, binaryop) + QML_V4_BEGIN_INSTR(AddNumber, binaryop) { - registers[instr->binaryop.output].setqreal(registers[instr->binaryop.left].getqreal() + - registers[instr->binaryop.right].getqreal()); + registers[instr->binaryop.output].setnumber(registers[instr->binaryop.left].getnumber() + + registers[instr->binaryop.right].getnumber()); } - QML_V4_END_INSTR(AddReal, binaryop) + QML_V4_END_INSTR(AddNumber, binaryop) QML_V4_BEGIN_INSTR(AddString, binaryop) { @@ -1332,36 +1253,33 @@ void QV4Bindings::run(int instrIndex, quint32 &executedBlocks, } QML_V4_END_INSTR(AddString, binaryop) - QML_V4_BEGIN_INSTR(SubReal, binaryop) + QML_V4_BEGIN_INSTR(SubNumber, binaryop) { - registers[instr->binaryop.output].setqreal(registers[instr->binaryop.left].getqreal() - - registers[instr->binaryop.right].getqreal()); + registers[instr->binaryop.output].setnumber(registers[instr->binaryop.left].getnumber() - + registers[instr->binaryop.right].getnumber()); } - QML_V4_END_INSTR(SubReal, binaryop) + QML_V4_END_INSTR(SubNumber, binaryop) - QML_V4_BEGIN_INSTR(MulReal, binaryop) + QML_V4_BEGIN_INSTR(MulNumber, binaryop) { - registers[instr->binaryop.output].setqreal(registers[instr->binaryop.left].getqreal() * - registers[instr->binaryop.right].getqreal()); + registers[instr->binaryop.output].setnumber(registers[instr->binaryop.left].getnumber() * + registers[instr->binaryop.right].getnumber()); } - QML_V4_END_INSTR(MulReal, binaryop) + QML_V4_END_INSTR(MulNumber, binaryop) - QML_V4_BEGIN_INSTR(DivReal, binaryop) + QML_V4_BEGIN_INSTR(DivNumber, binaryop) { - registers[instr->binaryop.output].setqreal(registers[instr->binaryop.left].getqreal() / - registers[instr->binaryop.right].getqreal()); + registers[instr->binaryop.output].setnumber(registers[instr->binaryop.left].getnumber() / + registers[instr->binaryop.right].getnumber()); } - QML_V4_END_INSTR(DivReal, binaryop) + QML_V4_END_INSTR(DivNumber, binaryop) - QML_V4_BEGIN_INSTR(ModReal, binaryop) + QML_V4_BEGIN_INSTR(ModNumber, binaryop) { Register &target = registers[instr->binaryop.output]; const Register &left = registers[instr->binaryop.left]; const Register &right = registers[instr->binaryop.right]; - if (QMetaType::QReal == QMetaType::Float) - target.setqreal(::fmodf(left.getqreal(), right.getqreal())); - else - target.setqreal(::fmod(left.getqreal(), right.getqreal())); + target.setnumber(::fmod(left.getnumber(), right.getnumber())); } QML_V4_END_INSTR(ModInt, binaryop) @@ -1386,61 +1304,61 @@ void QV4Bindings::run(int instrIndex, quint32 &executedBlocks, } QML_V4_END_INSTR(URShiftInt, binaryop) - QML_V4_BEGIN_INSTR(GtReal, binaryop) + QML_V4_BEGIN_INSTR(GtNumber, binaryop) { - registers[instr->binaryop.output].setbool(registers[instr->binaryop.left].getqreal() > - registers[instr->binaryop.right].getqreal()); + registers[instr->binaryop.output].setbool(registers[instr->binaryop.left].getnumber() > + registers[instr->binaryop.right].getnumber()); } - QML_V4_END_INSTR(GtReal, binaryop) + QML_V4_END_INSTR(GtNumber, binaryop) - QML_V4_BEGIN_INSTR(LtReal, binaryop) + QML_V4_BEGIN_INSTR(LtNumber, binaryop) { - registers[instr->binaryop.output].setbool(registers[instr->binaryop.left].getqreal() < - registers[instr->binaryop.right].getqreal()); + registers[instr->binaryop.output].setbool(registers[instr->binaryop.left].getnumber() < + registers[instr->binaryop.right].getnumber()); } - QML_V4_END_INSTR(LtReal, binaryop) + QML_V4_END_INSTR(LtNumber, binaryop) - QML_V4_BEGIN_INSTR(GeReal, binaryop) + QML_V4_BEGIN_INSTR(GeNumber, binaryop) { - registers[instr->binaryop.output].setbool(registers[instr->binaryop.left].getqreal() >= - registers[instr->binaryop.right].getqreal()); + registers[instr->binaryop.output].setbool(registers[instr->binaryop.left].getnumber() >= + registers[instr->binaryop.right].getnumber()); } - QML_V4_END_INSTR(GeReal, binaryop) + QML_V4_END_INSTR(GeNumber, binaryop) - QML_V4_BEGIN_INSTR(LeReal, binaryop) + QML_V4_BEGIN_INSTR(LeNumber, binaryop) { - registers[instr->binaryop.output].setbool(registers[instr->binaryop.left].getqreal() <= - registers[instr->binaryop.right].getqreal()); + registers[instr->binaryop.output].setbool(registers[instr->binaryop.left].getnumber() <= + registers[instr->binaryop.right].getnumber()); } - QML_V4_END_INSTR(LeReal, binaryop) + QML_V4_END_INSTR(LeNumber, binaryop) - QML_V4_BEGIN_INSTR(EqualReal, binaryop) + QML_V4_BEGIN_INSTR(EqualNumber, binaryop) { - registers[instr->binaryop.output].setbool(registers[instr->binaryop.left].getqreal() == - registers[instr->binaryop.right].getqreal()); + registers[instr->binaryop.output].setbool(registers[instr->binaryop.left].getnumber() == + registers[instr->binaryop.right].getnumber()); } - QML_V4_END_INSTR(EqualReal, binaryop) + QML_V4_END_INSTR(EqualNumber, binaryop) - QML_V4_BEGIN_INSTR(NotEqualReal, binaryop) + QML_V4_BEGIN_INSTR(NotEqualNumber, binaryop) { - registers[instr->binaryop.output].setbool(registers[instr->binaryop.left].getqreal() != - registers[instr->binaryop.right].getqreal()); + registers[instr->binaryop.output].setbool(registers[instr->binaryop.left].getnumber() != + registers[instr->binaryop.right].getnumber()); } - QML_V4_END_INSTR(NotEqualReal, binaryop) + QML_V4_END_INSTR(NotEqualNumber, binaryop) - QML_V4_BEGIN_INSTR(StrictEqualReal, binaryop) + QML_V4_BEGIN_INSTR(StrictEqualNumber, binaryop) { - registers[instr->binaryop.output].setbool(registers[instr->binaryop.left].getqreal() == - registers[instr->binaryop.right].getqreal()); + registers[instr->binaryop.output].setbool(registers[instr->binaryop.left].getnumber() == + registers[instr->binaryop.right].getnumber()); } - QML_V4_END_INSTR(StrictEqualReal, binaryop) + QML_V4_END_INSTR(StrictEqualNumber, binaryop) - QML_V4_BEGIN_INSTR(StrictNotEqualReal, binaryop) + QML_V4_BEGIN_INSTR(StrictNotEqualNumber, binaryop) { - registers[instr->binaryop.output].setbool(registers[instr->binaryop.left].getqreal() != - registers[instr->binaryop.right].getqreal()); + registers[instr->binaryop.output].setbool(registers[instr->binaryop.left].getnumber() != + registers[instr->binaryop.right].getnumber()); } - QML_V4_END_INSTR(StrictNotEqualReal, binaryop) + QML_V4_END_INSTR(StrictNotEqualNumber, binaryop) QML_V4_BEGIN_INSTR(GtString, binaryop) { @@ -1586,25 +1504,25 @@ void QV4Bindings::run(int instrIndex, quint32 &executedBlocks, } QML_V4_END_INSTR(StrictNotEqualObject, binaryop) - QML_V4_BEGIN_INSTR(MathMaxReal, binaryop) + QML_V4_BEGIN_INSTR(MathMaxNumber, binaryop) { const Register &left = registers[instr->binaryop.left]; const Register &right = registers[instr->binaryop.right]; Register &output = registers[instr->binaryop.output]; if (left.isUndefined() || right.isUndefined()) output.setUndefined(); - else output.setqreal(qMax(left.getqreal(), right.getqreal())); + else output.setnumber(qMax(left.getnumber(), right.getnumber())); } - QML_V4_END_INSTR(MathMaxReal, binaryop) + QML_V4_END_INSTR(MathMaxNumber, binaryop) - QML_V4_BEGIN_INSTR(MathMinReal, binaryop) + QML_V4_BEGIN_INSTR(MathMinNumber, binaryop) { const Register &left = registers[instr->binaryop.left]; const Register &right = registers[instr->binaryop.right]; Register &output = registers[instr->binaryop.output]; if (left.isUndefined() || right.isUndefined()) output.setUndefined(); - else output.setqreal(qMin(left.getqreal(), right.getqreal())); + else output.setnumber(qMin(left.getnumber(), right.getnumber())); } - QML_V4_END_INSTR(MathMinReal, binaryop) + QML_V4_END_INSTR(MathMinNumber, binaryop) QML_V4_BEGIN_INSTR(NewString, construct) { |