/** * The Math object's 'sqrt' routine * * See also: * ECMA-262 v5, 15.8.2.17 * * @return ecma value * Returned value must be freed with ecma_free_value. */ static ecma_value_t ecma_builtin_math_object_sqrt (ecma_value_t this_arg __attr_unused___, /**< 'this' argument */ ecma_value_t arg) /**< routine's argument */ { ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY); ECMA_OP_TO_NUMBER_TRY_CATCH (arg_num, arg, ret_value); ecma_number_t *num_p = ecma_alloc_number (); *num_p = DOUBLE_TO_ECMA_NUMBER_T (sqrt (arg_num)); ret_value = ecma_make_number_value (num_p); ECMA_OP_TO_NUMBER_FINALIZE (arg_num); return ret_value; } /* ecma_builtin_math_object_sqrt */
/** * The Math object's 'pow' routine * * See also: * ECMA-262 v5, 15.8.2.13 * * @return ecma value * Returned value must be freed with ecma_free_value. */ static ecma_value_t ecma_builtin_math_object_pow (ecma_value_t this_arg __attr_unused___, /**< 'this' argument */ ecma_value_t arg1, /**< first routine's argument */ ecma_value_t arg2) /**< second routine's argument */ { ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY); ECMA_OP_TO_NUMBER_TRY_CATCH (x, arg1, ret_value); ECMA_OP_TO_NUMBER_TRY_CATCH (y, arg2, ret_value); ecma_number_t *num_p = ecma_alloc_number (); *num_p = DOUBLE_TO_ECMA_NUMBER_T (pow (x, y)); ret_value = ecma_make_number_value (num_p); ECMA_OP_TO_NUMBER_FINALIZE (y); ECMA_OP_TO_NUMBER_FINALIZE (x); return ret_value; } /* ecma_builtin_math_object_pow */
/** * The Date object's 'now' routine * * See also: * ECMA-262 v5, 15.9.4.4 * * @return ecma value * Returned value must be freed with ecma_free_value. */ static ecma_value_t ecma_builtin_date_now (ecma_value_t this_arg) /**< this argument */ { JERRY_UNUSED (this_arg); return ecma_make_number_value (DOUBLE_TO_ECMA_NUMBER_T (jerry_port_get_current_time ())); } /* ecma_builtin_date_now */