Implementing Array built-in.

This commit is contained in:
Ruben Ayrapetyan
2014-09-25 14:58:45 +04:00
parent 448b67f6dd
commit c2ca158d19
7 changed files with 473 additions and 110 deletions
+33 -5
View File
@@ -144,6 +144,11 @@ ecma_init_builtins (void)
ECMA_OBJECT_CLASS_STRING,
ecma_builtin_string_property_number);
ecma_builtin_objects [ECMA_BUILTIN_ID_ARRAY] = ecma_builtin_init_object (ECMA_BUILTIN_ID_ARRAY,
ECMA_OBJECT_TYPE_FUNCTION,
ECMA_OBJECT_CLASS_ARRAY,
ecma_builtin_array_property_number);
ecma_builtin_objects [ECMA_BUILTIN_ID_MATH] = ecma_builtin_init_object (ECMA_BUILTIN_ID_MATH,
ECMA_OBJECT_TYPE_GENERAL,
ECMA_OBJECT_CLASS_MATH,
@@ -216,10 +221,14 @@ ecma_builtin_try_to_instantiate_property (ecma_object_t *object_p, /**< object *
return ecma_builtin_string_try_to_instantiate_property (object_p, string_p);
}
case ECMA_BUILTIN_ID_ARRAY:
{
return ecma_builtin_array_try_to_instantiate_property (object_p, string_p);
}
case ECMA_BUILTIN_ID_OBJECT_PROTOTYPE:
case ECMA_BUILTIN_ID_FUNCTION:
case ECMA_BUILTIN_ID_FUNCTION_PROTOTYPE:
case ECMA_BUILTIN_ID_ARRAY:
case ECMA_BUILTIN_ID_ARRAY_PROTOTYPE:
case ECMA_BUILTIN_ID_STRING_PROTOTYPE:
case ECMA_BUILTIN_ID_BOOLEAN:
@@ -362,10 +371,14 @@ ecma_builtin_dispatch_call (ecma_object_t *obj_p, /**< built-in object */
return ecma_builtin_string_dispatch_call (arguments_list_p, arguments_list_len);
}
case ECMA_BUILTIN_ID_ARRAY:
{
return ecma_builtin_array_dispatch_call (arguments_list_p, arguments_list_len);
}
case ECMA_BUILTIN_ID_OBJECT_PROTOTYPE:
case ECMA_BUILTIN_ID_FUNCTION:
case ECMA_BUILTIN_ID_FUNCTION_PROTOTYPE:
case ECMA_BUILTIN_ID_ARRAY:
case ECMA_BUILTIN_ID_ARRAY_PROTOTYPE:
case ECMA_BUILTIN_ID_STRING_PROTOTYPE:
case ECMA_BUILTIN_ID_BOOLEAN:
@@ -437,10 +450,14 @@ ecma_builtin_dispatch_construct (ecma_object_t *obj_p, /**< built-in object */
return ecma_builtin_string_dispatch_construct (arguments_list_p, arguments_list_len);
}
case ECMA_BUILTIN_ID_ARRAY:
{
return ecma_builtin_array_dispatch_construct (arguments_list_p, arguments_list_len);
}
case ECMA_BUILTIN_ID_OBJECT_PROTOTYPE:
case ECMA_BUILTIN_ID_FUNCTION:
case ECMA_BUILTIN_ID_FUNCTION_PROTOTYPE:
case ECMA_BUILTIN_ID_ARRAY:
case ECMA_BUILTIN_ID_ARRAY_PROTOTYPE:
case ECMA_BUILTIN_ID_STRING_PROTOTYPE:
case ECMA_BUILTIN_ID_BOOLEAN:
@@ -508,10 +525,14 @@ ecma_builtin_get_routine_parameters_number (ecma_builtin_id_t builtin_id, /**< i
{
return ecma_builtin_math_get_routine_parameters_number (routine_id);
}
case ECMA_BUILTIN_ID_ARRAY:
{
return ecma_builtin_array_get_routine_parameters_number (routine_id);
}
case ECMA_BUILTIN_ID_OBJECT_PROTOTYPE:
case ECMA_BUILTIN_ID_FUNCTION:
case ECMA_BUILTIN_ID_FUNCTION_PROTOTYPE:
case ECMA_BUILTIN_ID_ARRAY:
case ECMA_BUILTIN_ID_ARRAY_PROTOTYPE:
case ECMA_BUILTIN_ID_STRING_PROTOTYPE:
case ECMA_BUILTIN_ID_BOOLEAN:
@@ -587,10 +608,17 @@ ecma_builtin_dispatch_routine (ecma_builtin_id_t builtin_object_id, /**< built-i
arguments_list,
arguments_number);
}
case ECMA_BUILTIN_ID_ARRAY:
{
return ecma_builtin_array_dispatch_routine (builtin_routine_id,
this_arg_value,
arguments_list,
arguments_number);
}
case ECMA_BUILTIN_ID_OBJECT_PROTOTYPE:
case ECMA_BUILTIN_ID_FUNCTION:
case ECMA_BUILTIN_ID_FUNCTION_PROTOTYPE:
case ECMA_BUILTIN_ID_ARRAY:
case ECMA_BUILTIN_ID_ARRAY_PROTOTYPE:
case ECMA_BUILTIN_ID_STRING_PROTOTYPE:
case ECMA_BUILTIN_ID_BOOLEAN: