aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/v4/qv4bindings.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/qml/qml/v4/qv4bindings.cpp')
-rw-r--r--src/qml/qml/v4/qv4bindings.cpp38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/qml/qml/v4/qv4bindings.cpp b/src/qml/qml/v4/qv4bindings.cpp
index 4fd84945fc..93c7820ca2 100644
--- a/src/qml/qml/v4/qv4bindings.cpp
+++ b/src/qml/qml/v4/qv4bindings.cpp
@@ -1172,6 +1172,15 @@ void QV4Bindings::run(int instrIndex, quint32 &executedBlocks,
}
QML_V4_END_INSTR(MathCosReal, unaryop)
+ QML_V4_BEGIN_INSTR(MathAbsReal, 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()));
+ }
+ QML_V4_END_INSTR(MathAbsReal, unaryop)
+
QML_V4_BEGIN_INSTR(MathRoundReal, unaryop)
{
const Register &src = registers[instr->unaryop.src];
@@ -1190,6 +1199,15 @@ void QV4Bindings::run(int instrIndex, quint32 &executedBlocks,
}
QML_V4_END_INSTR(MathFloorReal, unaryop)
+ QML_V4_BEGIN_INSTR(MathCeilReal, 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()));
+ }
+ QML_V4_END_INSTR(MathCeilReal, unaryop)
+
QML_V4_BEGIN_INSTR(MathPIReal, unaryop)
{
static const qreal qmlPI = 2.0 * qAsin(1.0);
@@ -1480,6 +1498,26 @@ void QV4Bindings::run(int instrIndex, quint32 &executedBlocks,
}
QML_V4_END_INSTR(StrictNotEqualString, binaryop)
+ QML_V4_BEGIN_INSTR(MathMaxReal, 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()));
+ }
+ QML_V4_END_INSTR(MathMaxReal, binaryop)
+
+ QML_V4_BEGIN_INSTR(MathMinReal, 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()));
+ }
+ QML_V4_END_INSTR(MathMinReal, binaryop)
+
QML_V4_BEGIN_INSTR(NewString, construct)
{
Register &output = registers[instr->construct.reg];