diff options
Diffstat (limited to 'src/qml/qml/v4/qv4bindings.cpp')
-rw-r--r-- | src/qml/qml/v4/qv4bindings.cpp | 38 |
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]; |