diff --git a/src/libecmaoperations/ecma-number-arithmetic.c b/src/libecmaoperations/ecma-number-arithmetic.c index 31244c241..010be2e78 100644 --- a/src/libecmaoperations/ecma-number-arithmetic.c +++ b/src/libecmaoperations/ecma-number-arithmetic.c @@ -25,6 +25,38 @@ * @{ */ +/** + * ECMA-defined number addition. + * + * See also: + * ECMA-262 v5, 11.6.3 + * + * @return number - result of addition. + */ +ecma_Number_t +ecma_op_number_add(ecma_Number_t left_num, /**< left operand */ + ecma_Number_t right_num) /**< right operand */ +{ + TODO( Implement according to ECMA ); + + return left_num + right_num; +} /* ecma_op_number_add */ + +/** + * ECMA-defined number substraction. + * + * See also: + * ECMA-262 v5, 11.6.3 + * + * @return number - result of substraction. + */ +ecma_Number_t +ecma_op_number_substract(ecma_Number_t left_num, /**< left operand */ + ecma_Number_t right_num) /**< right operand */ +{ + return ecma_op_number_add( left_num, ecma_op_number_negate( right_num)); +} /* ecma_op_number_substract */ + /** * ECMA-defined number multiplication. * @@ -42,6 +74,54 @@ ecma_op_number_multiply(ecma_Number_t left_num, /**< left operand */ return left_num * right_num; } /* ecma_op_number_multiply */ +/** + * ECMA-defined number division. + * + * See also: + * ECMA-262 v5, 11.5.2 + * + * @return number - result of division. + */ +ecma_Number_t +ecma_op_number_divide(ecma_Number_t left_num, /**< left operand */ + ecma_Number_t right_num) /**< right operand */ +{ + TODO( Implement according to ECMA ); + + return left_num / right_num; +} /* ecma_op_number_divide */ + +/** + * ECMA-defined number remainder calculation. + * + * See also: + * ECMA-262 v5, 11.5.3 + * + * @return number - calculated remainder. + */ +ecma_Number_t +ecma_op_number_remainder(ecma_Number_t left_num, /**< left operand */ + ecma_Number_t right_num) /**< right operand */ +{ + JERRY_UNIMPLEMENTED_REF_UNUSED_VARS( left_num, right_num); +} /* ecma_op_number_remainder */ + +/** + * ECMA-defined number negation. + * + * See also: + * ECMA-262 v5, 11.4.7 + * + * @return number - result of negation. + */ +ecma_Number_t +ecma_op_number_negate(ecma_Number_t num) /**< operand */ +{ + TODO( Implement according to ECMA ); + + return -num; +} /* ecma_op_number_negate */ + /** * @} * @} diff --git a/src/libecmaoperations/ecma-number-arithmetic.h b/src/libecmaoperations/ecma-number-arithmetic.h index 9477b1d5f..f498ff74c 100644 --- a/src/libecmaoperations/ecma-number-arithmetic.h +++ b/src/libecmaoperations/ecma-number-arithmetic.h @@ -27,7 +27,12 @@ * @{ */ +extern ecma_Number_t ecma_op_number_add( ecma_Number_t left_num, ecma_Number_t right_num); +extern ecma_Number_t ecma_op_number_substract( ecma_Number_t left_num, ecma_Number_t right_num); extern ecma_Number_t ecma_op_number_multiply( ecma_Number_t left_num, ecma_Number_t right_num); +extern ecma_Number_t ecma_op_number_divide( ecma_Number_t left_num, ecma_Number_t right_num); +extern ecma_Number_t ecma_op_number_remainder( ecma_Number_t left_num, ecma_Number_t right_num); +extern ecma_Number_t ecma_op_number_negate( ecma_Number_t num); /** * @}