diff --git a/src/libecmabuiltins/ecma-builtin-math-object.c b/src/libecmabuiltins/ecma-builtin-math-object.c index 352f8ed56..f01d0f7f6 100644 --- a/src/libecmabuiltins/ecma-builtin-math-object.c +++ b/src/libecmabuiltins/ecma-builtin-math-object.c @@ -43,14 +43,14 @@ * List of the Math object built-in value properties in format 'macro (name, value)'. */ #define ECMA_BUILTIN_MATH_OBJECT_VALUES_PROPERTY_LIST(macro) \ - macro (ECMA_MAGIC_STRING_E_U, 2.7182818284590452354) \ - macro (ECMA_MAGIC_STRING_LN10_U, 2.302585092994046) \ - macro (ECMA_MAGIC_STRING_LN2_U, 0.6931471805599453) \ - macro (ECMA_MAGIC_STRING_LOG2E_U, 1.4426950408889634) \ - macro (ECMA_MAGIC_STRING_LOG10E_U, 0.4342944819032518) \ - macro (ECMA_MAGIC_STRING_PI_U, 3.1415926535897932) \ - macro (ECMA_MAGIC_STRING_SQRT1_2_U, 0.7071067811865476) \ - macro (ECMA_MAGIC_STRING_SQRT2_U, 1.4142135623730951) + macro (ECMA_MAGIC_STRING_E_U, ECMA_NUMBER_E) \ + macro (ECMA_MAGIC_STRING_LN10_U, ECMA_NUMBER_LN10) \ + macro (ECMA_MAGIC_STRING_LN2_U, ECMA_NUMBER_LN2) \ + macro (ECMA_MAGIC_STRING_LOG2E_U, ECMA_NUMBER_LOG2E) \ + macro (ECMA_MAGIC_STRING_LOG10E_U, ECMA_NUMBER_LOG10E) \ + macro (ECMA_MAGIC_STRING_PI_U, ECMA_NUMBER_PI) \ + macro (ECMA_MAGIC_STRING_SQRT1_2_U, ECMA_NUMBER_SQRT_1_2) \ + macro (ECMA_MAGIC_STRING_SQRT2_U, ECMA_NUMBER_SQRT2) /** * List of the Math object built-in routine properties in format diff --git a/src/libecmaobjects/ecma-globals.h b/src/libecmaobjects/ecma-globals.h index a44b62586..2ac6c58c6 100644 --- a/src/libecmaobjects/ecma-globals.h +++ b/src/libecmaobjects/ecma-globals.h @@ -549,6 +549,11 @@ typedef double ecma_number_t; */ #define ECMA_NUMBER_TWO ((ecma_number_t) 2) +/** + * Value '0.5' of ecma_number_t + */ +#define ECMA_NUMBER_HALF ((ecma_number_t) 0.5f) + /** * Minimum positive and maximum value of ecma-number */ @@ -562,7 +567,6 @@ typedef double ecma_number_t; * See also: ECMA_262 v5, 15.7.3.2 */ # define ECMA_NUMBER_MAX_VALUE ((ecma_number_t)1.7976931348623157e+308) - /** * Number.MIN_VALUE * @@ -573,10 +577,46 @@ typedef double ecma_number_t; # error "!CONFIG_ECMA_NUMBER_FLOAT32 && !CONFIG_ECMA_NUMBER_FLOAT64" #endif /* !CONFIG_ECMA_NUMBER_FLOAT32 && !CONFIG_ECMA_NUMBER_FLOAT64 */ + /** - * Value '0.5' of ecma_number_t + * Euler number */ -#define ECMA_NUMBER_HALF ((ecma_number_t) 0.5f) +#define ECMA_NUMBER_E ((ecma_number_t)2.7182818284590452354) + +/** + * Natural logarithm of 10 + */ +#define ECMA_NUMBER_LN10 ((ecma_number_t)2.302585092994046) + +/** + * Natural logarithm of 2 + */ +#define ECMA_NUMBER_LN2 ((ecma_number_t)0.6931471805599453) + +/** + * Logarithm base 2 of the Euler number + */ +#define ECMA_NUMBER_LOG2E ((ecma_number_t)1.4426950408889634) + +/** + * Logarithm base 10 of the Euler number + */ +#define ECMA_NUMBER_LOG10E ((ecma_number_t)0.4342944819032518) + +/** + * Pi number + */ +#define ECMA_NUMBER_PI ((ecma_number_t)3.1415926535897932) + +/** + * Square root of 0.5 + */ +#define ECMA_NUMBER_SQRT_1_2 ((ecma_number_t)0.7071067811865476) + +/** + * Square root of 2 + */ +#define ECMA_NUMBER_SQRT2 ((ecma_number_t)1.4142135623730951) /** * Null character (zt-string end marker)