Implementation of Number built-in object and partial implementation of Number.prototype built-in object.

Fixing [[Prototype]] and [[Class]] properties of Array and String built-in objects.
This commit is contained in:
Ruben Ayrapetyan
2014-10-16 13:23:33 +04:00
parent e25f1297ff
commit c231893b28
8 changed files with 781 additions and 9 deletions
+17
View File
@@ -549,6 +549,19 @@ typedef double ecma_number_t;
*/
#define ECMA_NUMBER_TWO ((ecma_number_t) 2)
/**
* Minimum positive and maximum value of ecma-number
*/
#ifdef CONFIG_ECMA_NUMBER_FLOAT32
# define ECMA_NUMBER_MIN_VALUE (FLT_MIN)
# define ECMA_NUMBER_MAX_VALUE (FLT_MAX)
#elif defined (CONFIG_ECMA_NUMBER_FLOAT64)
# define ECMA_NUMBER_MAX_VALUE (DBL_MAX)
# define ECMA_NUMBER_MIN_VALUE (DBL_MIN)
#else /* !CONFIG_ECMA_NUMBER_FLOAT32 && !CONFIG_ECMA_NUMBER_FLOAT64 */
# 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
*/
@@ -811,6 +824,10 @@ typedef enum
ECMA_MAGIC_STRING_TO_UTC_STRING_UL, /**< "toUTCString" */
ECMA_MAGIC_STRING_TO_ISO_STRING_UL, /**< "toISOString" */
ECMA_MAGIC_STRING_TO_JSON_UL, /**< "toJSON" */
ECMA_MAGIC_STRING_MAX_VALUE_U, /**< "MAX_VALUE" */
ECMA_MAGIC_STRING_MIN_VALUE_U, /**< "MIN_VALUE" */
ECMA_MAGIC_STRING_POSITIVE_INFINITY_U, /**< "POSITIVE_INFINITY" */
ECMA_MAGIC_STRING_NEGATIVE_INFINITY_U, /**< "NEGATIVE_INFINITY" */
ECMA_MAGIC_STRING_APPLY, /**< "apply" */
ECMA_MAGIC_STRING_CALL, /**< "call" */
ECMA_MAGIC_STRING_BIND, /**< "bind" */
+4
View File
@@ -1448,6 +1448,10 @@ ecma_get_magic_string_zt (ecma_magic_string_id_t id) /**< magic string id */
case ECMA_MAGIC_STRING_TO_UTC_STRING_UL: return (ecma_char_t*) "toUTCString";
case ECMA_MAGIC_STRING_TO_ISO_STRING_UL: return (ecma_char_t*) "toISOString";
case ECMA_MAGIC_STRING_TO_JSON_UL: return (ecma_char_t*) "toJSON";
case ECMA_MAGIC_STRING_MAX_VALUE_U: return (ecma_char_t*) "MAX_VALUE";
case ECMA_MAGIC_STRING_MIN_VALUE_U: return (ecma_char_t*) "MIN_VALUE";
case ECMA_MAGIC_STRING_POSITIVE_INFINITY_U: return (ecma_char_t*) "POSITIVE_INFINITY";
case ECMA_MAGIC_STRING_NEGATIVE_INFINITY_U: return (ecma_char_t*) "NEGATIVE_INFINITY";
case ECMA_MAGIC_STRING_APPLY: return (ecma_char_t*) "apply";
case ECMA_MAGIC_STRING_CALL: return (ecma_char_t*) "call";
case ECMA_MAGIC_STRING_BIND: return (ecma_char_t*) "bind";