Change return value to ecma_value_t for getting internal properties.
Removing a lot of ECMA_PROPERTY_VALUE_PTR macro calls. The only drawback is free callbacks for native objects cannot be deleted anymore. Redefining a free callback is a rare case, so this trade-of is acceptable. JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
This commit is contained in:
@@ -104,12 +104,12 @@ ecma_builtin_boolean_prototype_object_value_of (ecma_value_t this_arg) /**< this
|
||||
|
||||
if (ecma_object_get_class_name (obj_p) == LIT_MAGIC_STRING_BOOLEAN_UL)
|
||||
{
|
||||
ecma_property_t *prim_value_prop_p = ecma_get_internal_property (obj_p,
|
||||
ECMA_INTERNAL_PROPERTY_ECMA_VALUE);
|
||||
ecma_value_t *prim_value_prop_p = ecma_get_internal_property (obj_p,
|
||||
ECMA_INTERNAL_PROPERTY_ECMA_VALUE);
|
||||
|
||||
JERRY_ASSERT (ecma_is_value_boolean (ecma_get_internal_property_value (prim_value_prop_p)));
|
||||
JERRY_ASSERT (ecma_is_value_boolean (*prim_value_prop_p));
|
||||
|
||||
return ecma_get_internal_property_value (prim_value_prop_p);
|
||||
return *prim_value_prop_p;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -105,19 +105,18 @@ ecma_builtin_date_prototype_to_date_string (ecma_value_t this_arg) /**< this arg
|
||||
ret_value);
|
||||
|
||||
ecma_object_t *obj_p = ecma_get_object_from_value (obj_this);
|
||||
ecma_property_t *prim_prop_p = ecma_get_internal_property (obj_p,
|
||||
ECMA_INTERNAL_PROPERTY_DATE_FLOAT);
|
||||
ecma_number_t *prim_value_num_p = ECMA_GET_INTERNAL_VALUE_POINTER (ecma_number_t,
|
||||
ecma_get_internal_property_value (prim_prop_p));
|
||||
ecma_value_t *date_prop_p = ecma_get_internal_property (obj_p,
|
||||
ECMA_INTERNAL_PROPERTY_DATE_FLOAT);
|
||||
ecma_number_t *date_num_p = ECMA_GET_INTERNAL_VALUE_POINTER (ecma_number_t, *date_prop_p);
|
||||
|
||||
if (ecma_number_is_nan (*prim_value_num_p))
|
||||
if (ecma_number_is_nan (*date_num_p))
|
||||
{
|
||||
ecma_string_t *magic_str_p = ecma_get_magic_string (LIT_MAGIC_STRING_INVALID_DATE_UL);
|
||||
ret_value = ecma_make_string_value (magic_str_p);
|
||||
}
|
||||
else
|
||||
{
|
||||
ret_value = ecma_date_value_to_date_string (*prim_value_num_p);
|
||||
ret_value = ecma_date_value_to_date_string (*date_num_p);
|
||||
}
|
||||
|
||||
ECMA_FINALIZE (obj_this);
|
||||
@@ -152,10 +151,9 @@ ecma_builtin_date_prototype_to_time_string (ecma_value_t this_arg) /**< this arg
|
||||
ret_value);
|
||||
|
||||
ecma_object_t *obj_p = ecma_get_object_from_value (obj_this);
|
||||
ecma_property_t *prim_prop_p = ecma_get_internal_property (obj_p,
|
||||
ECMA_INTERNAL_PROPERTY_DATE_FLOAT);
|
||||
ecma_number_t *prim_value_num_p = ECMA_GET_INTERNAL_VALUE_POINTER (ecma_number_t,
|
||||
ecma_get_internal_property_value (prim_prop_p));
|
||||
ecma_value_t *prim_prop_p = ecma_get_internal_property (obj_p,
|
||||
ECMA_INTERNAL_PROPERTY_DATE_FLOAT);
|
||||
ecma_number_t *prim_value_num_p = ECMA_GET_INTERNAL_VALUE_POINTER (ecma_number_t, *prim_prop_p);
|
||||
|
||||
if (ecma_number_is_nan (*prim_value_num_p))
|
||||
{
|
||||
@@ -250,14 +248,11 @@ ecma_builtin_date_prototype_get_time (ecma_value_t this_arg) /**< this argument
|
||||
ecma_object_t *obj_p = ecma_get_object_from_value (this_arg);
|
||||
if (ecma_object_get_class_name (obj_p) == LIT_MAGIC_STRING_DATE_UL)
|
||||
{
|
||||
ecma_property_t *prim_prop_p = ecma_get_internal_property (obj_p,
|
||||
ECMA_INTERNAL_PROPERTY_DATE_FLOAT);
|
||||
ecma_value_t *date_prop_p = ecma_get_internal_property (obj_p,
|
||||
ECMA_INTERNAL_PROPERTY_DATE_FLOAT);
|
||||
|
||||
ecma_number_t *prim_value_num_p;
|
||||
prim_value_num_p = ECMA_GET_INTERNAL_VALUE_POINTER (ecma_number_t,
|
||||
ecma_get_internal_property_value (prim_prop_p));
|
||||
|
||||
return ecma_make_number_value (*prim_value_num_p);
|
||||
ecma_number_t *date_num_p = ECMA_GET_INTERNAL_VALUE_POINTER (ecma_number_t, *date_prop_p);
|
||||
return ecma_make_number_value (*date_num_p);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -359,12 +354,11 @@ ecma_builtin_date_prototype_set_time (ecma_value_t this_arg, /**< this argument
|
||||
/* 2. */
|
||||
ecma_object_t *obj_p = ecma_get_object_from_value (this_arg);
|
||||
|
||||
ecma_property_t *prim_prop_p = ecma_get_internal_property (obj_p,
|
||||
ECMA_INTERNAL_PROPERTY_DATE_FLOAT);
|
||||
ecma_value_t *date_prop_p = ecma_get_internal_property (obj_p,
|
||||
ECMA_INTERNAL_PROPERTY_DATE_FLOAT);
|
||||
|
||||
ecma_number_t *prim_value_num_p = ECMA_GET_INTERNAL_VALUE_POINTER (ecma_number_t,
|
||||
ecma_get_internal_property_value (prim_prop_p));
|
||||
*prim_value_num_p = value;
|
||||
ecma_number_t *date_num_p = ECMA_GET_INTERNAL_VALUE_POINTER (ecma_number_t, *date_prop_p);
|
||||
*date_num_p = value;
|
||||
|
||||
/* 3. */
|
||||
ret_value = ecma_make_number_value (value);
|
||||
|
||||
@@ -546,16 +546,16 @@ ecma_builtin_date_dispatch_construct (const ecma_value_t *arguments_list_p, /**<
|
||||
prim_value_num = ecma_number_make_nan ();
|
||||
}
|
||||
|
||||
ecma_property_t *class_prop_p = ecma_create_internal_property (obj_p,
|
||||
ECMA_INTERNAL_PROPERTY_CLASS);
|
||||
ecma_set_internal_property_value (class_prop_p, LIT_MAGIC_STRING_DATE_UL);
|
||||
ecma_value_t *class_prop_p = ecma_create_internal_property (obj_p,
|
||||
ECMA_INTERNAL_PROPERTY_CLASS);
|
||||
*class_prop_p = LIT_MAGIC_STRING_DATE_UL;
|
||||
|
||||
ecma_property_t *prim_value_prop_p = ecma_create_internal_property (obj_p,
|
||||
ECMA_INTERNAL_PROPERTY_DATE_FLOAT);
|
||||
ecma_value_t *date_prop_p = ecma_create_internal_property (obj_p,
|
||||
ECMA_INTERNAL_PROPERTY_DATE_FLOAT);
|
||||
|
||||
ecma_number_t *prim_value_num_p = ecma_alloc_number ();
|
||||
*prim_value_num_p = prim_value_num;
|
||||
ECMA_SET_INTERNAL_VALUE_POINTER (ECMA_PROPERTY_VALUE_PTR (prim_value_prop_p)->value, prim_value_num_p);
|
||||
ecma_number_t *date_num_p = ecma_alloc_number ();
|
||||
*date_num_p = prim_value_num;
|
||||
ECMA_SET_INTERNAL_VALUE_POINTER (*date_prop_p, date_num_p);
|
||||
|
||||
ret_value = ecma_make_object_value (obj_p);
|
||||
}
|
||||
|
||||
@@ -245,27 +245,25 @@ ecma_builtin_function_prototype_object_bind (ecma_value_t this_arg, /**< this ar
|
||||
ecma_deref_object (prototype_obj_p);
|
||||
|
||||
/* 7. */
|
||||
ecma_property_t *target_function_prop_p;
|
||||
ecma_value_t *target_function_prop_p;
|
||||
target_function_prop_p = ecma_create_internal_property (function_p,
|
||||
ECMA_INTERNAL_PROPERTY_BOUND_FUNCTION_TARGET_FUNCTION);
|
||||
|
||||
ecma_object_t *this_arg_obj_p = ecma_get_object_from_value (this_arg);
|
||||
ECMA_SET_INTERNAL_VALUE_POINTER (ECMA_PROPERTY_VALUE_PTR (target_function_prop_p)->value, this_arg_obj_p);
|
||||
ECMA_SET_INTERNAL_VALUE_POINTER (*target_function_prop_p, this_arg_obj_p);
|
||||
|
||||
/* 8. */
|
||||
ecma_property_t *bound_this_prop_p;
|
||||
ecma_value_t *bound_this_prop_p;
|
||||
bound_this_prop_p = ecma_create_internal_property (function_p, ECMA_INTERNAL_PROPERTY_BOUND_FUNCTION_BOUND_THIS);
|
||||
const ecma_length_t arg_count = arguments_number;
|
||||
|
||||
if (arg_count > 0)
|
||||
{
|
||||
ecma_set_internal_property_value (bound_this_prop_p,
|
||||
ecma_copy_value_if_not_object (arguments_list_p[0]));
|
||||
*bound_this_prop_p = ecma_copy_value_if_not_object (arguments_list_p[0]);
|
||||
}
|
||||
else
|
||||
{
|
||||
ecma_set_internal_property_value (bound_this_prop_p,
|
||||
ecma_make_simple_value (ECMA_SIMPLE_VALUE_UNDEFINED));
|
||||
*bound_this_prop_p = ecma_make_simple_value (ECMA_SIMPLE_VALUE_UNDEFINED);
|
||||
}
|
||||
|
||||
if (arg_count > 1)
|
||||
@@ -273,9 +271,9 @@ ecma_builtin_function_prototype_object_bind (ecma_value_t this_arg, /**< this ar
|
||||
ecma_collection_header_t *bound_args_collection_p;
|
||||
bound_args_collection_p = ecma_new_values_collection (&arguments_list_p[1], arg_count - 1, false);
|
||||
|
||||
ecma_property_t *bound_args_prop_p;
|
||||
ecma_value_t *bound_args_prop_p;
|
||||
bound_args_prop_p = ecma_create_internal_property (function_p, ECMA_INTERNAL_PROPERTY_BOUND_FUNCTION_BOUND_ARGS);
|
||||
ECMA_SET_INTERNAL_VALUE_POINTER (ECMA_PROPERTY_VALUE_PTR (bound_args_prop_p)->value, bound_args_collection_p);
|
||||
ECMA_SET_INTERNAL_VALUE_POINTER (*bound_args_prop_p, bound_args_collection_p);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -899,13 +899,10 @@ ecma_date_set_internal_property (ecma_value_t this_arg, /**< this argument */
|
||||
|
||||
ecma_object_t *obj_p = ecma_get_object_from_value (this_arg);
|
||||
|
||||
ecma_property_t *prim_value_prop_p = ecma_get_internal_property (obj_p,
|
||||
ECMA_INTERNAL_PROPERTY_DATE_FLOAT);
|
||||
ecma_value_t *date_value_prop_p = ecma_get_internal_property (obj_p,
|
||||
ECMA_INTERNAL_PROPERTY_DATE_FLOAT);
|
||||
|
||||
ecma_number_t *prim_value_num_p;
|
||||
prim_value_num_p = ECMA_GET_INTERNAL_VALUE_POINTER (ecma_number_t,
|
||||
ecma_get_internal_property_value (prim_value_prop_p));
|
||||
*prim_value_num_p = value;
|
||||
*ECMA_GET_INTERNAL_VALUE_POINTER (ecma_number_t, *date_value_prop_p) = value;
|
||||
|
||||
return ecma_make_number_value (value);
|
||||
} /* ecma_date_set_internal_property */
|
||||
@@ -1302,14 +1299,13 @@ ecma_date_get_primitive_value (ecma_value_t this_arg) /**< this argument */
|
||||
else
|
||||
{
|
||||
ecma_object_t *obj_p = ecma_get_object_from_value (this_arg);
|
||||
ecma_property_t *prim_value_prop_p = ecma_get_internal_property (obj_p,
|
||||
ECMA_INTERNAL_PROPERTY_DATE_FLOAT);
|
||||
JERRY_ASSERT (prim_value_prop_p != NULL);
|
||||
ecma_value_t *date_value_prop_p = ecma_get_internal_property (obj_p,
|
||||
ECMA_INTERNAL_PROPERTY_DATE_FLOAT);
|
||||
JERRY_ASSERT (date_value_prop_p != NULL);
|
||||
|
||||
ecma_number_t prim_value_num;
|
||||
prim_value_num = *ECMA_GET_INTERNAL_VALUE_POINTER (ecma_number_t,
|
||||
ecma_get_internal_property_value (prim_value_prop_p));
|
||||
ret_value = ecma_make_number_value (prim_value_num);
|
||||
ecma_number_t date_num = *ECMA_GET_INTERNAL_VALUE_POINTER (ecma_number_t, *date_value_prop_p);
|
||||
|
||||
ret_value = ecma_make_number_value (date_num);
|
||||
}
|
||||
|
||||
return ret_value;
|
||||
|
||||
@@ -433,12 +433,12 @@ ecma_builtin_number_prototype_object_value_of (ecma_value_t this_arg) /**< this
|
||||
|
||||
if (ecma_object_get_class_name (obj_p) == LIT_MAGIC_STRING_NUMBER_UL)
|
||||
{
|
||||
ecma_property_t *prim_value_prop_p = ecma_get_internal_property (obj_p,
|
||||
ECMA_INTERNAL_PROPERTY_ECMA_VALUE);
|
||||
ecma_value_t *prim_value_p = ecma_get_internal_property (obj_p,
|
||||
ECMA_INTERNAL_PROPERTY_ECMA_VALUE);
|
||||
|
||||
JERRY_ASSERT (ecma_is_value_number (ecma_get_internal_property_value (prim_value_prop_p)));
|
||||
JERRY_ASSERT (ecma_is_value_number (*prim_value_p));
|
||||
|
||||
return ecma_copy_value (ecma_get_internal_property_value (prim_value_prop_p));
|
||||
return ecma_copy_value (*prim_value_p);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -126,8 +126,8 @@ ecma_builtin_regexp_prototype_compile (ecma_value_t this_arg, /**< this argument
|
||||
ecma_object_t *this_obj_p = ecma_get_object_from_value (obj_this);
|
||||
|
||||
/* Get bytecode property. */
|
||||
ecma_property_t *bc_prop_p = ecma_get_internal_property (this_obj_p,
|
||||
ECMA_INTERNAL_PROPERTY_REGEXP_BYTECODE);
|
||||
ecma_value_t *bc_prop_p = ecma_get_internal_property (this_obj_p,
|
||||
ECMA_INTERNAL_PROPERTY_REGEXP_BYTECODE);
|
||||
|
||||
/* TODO: We currently have to re-compile the bytecode, because
|
||||
* we can't copy it without knowing its length. */
|
||||
@@ -136,15 +136,15 @@ ecma_builtin_regexp_prototype_compile (ecma_value_t this_arg, /**< this argument
|
||||
/* Should always succeed, since we're compiling from a source that has been compiled previously. */
|
||||
JERRY_ASSERT (ecma_is_value_empty (bc_comp));
|
||||
|
||||
re_compiled_code_t *old_bc_p = ECMA_GET_INTERNAL_VALUE_POINTER (re_compiled_code_t,
|
||||
ecma_get_internal_property_value (bc_prop_p));
|
||||
re_compiled_code_t *old_bc_p = ECMA_GET_INTERNAL_VALUE_POINTER (re_compiled_code_t, *bc_prop_p);
|
||||
|
||||
if (old_bc_p != NULL)
|
||||
{
|
||||
/* Free the old bytecode */
|
||||
ecma_bytecode_deref ((ecma_compiled_code_t *) old_bc_p);
|
||||
}
|
||||
|
||||
ECMA_SET_INTERNAL_VALUE_POINTER (ECMA_PROPERTY_VALUE_PTR (bc_prop_p)->value, new_bc_p);
|
||||
ECMA_SET_INTERNAL_VALUE_POINTER (*bc_prop_p, new_bc_p);
|
||||
|
||||
re_initialize_props (this_obj_p, pattern_string_p, flags);
|
||||
|
||||
@@ -198,16 +198,16 @@ ecma_builtin_regexp_prototype_compile (ecma_value_t this_arg, /**< this argument
|
||||
ECMA_TRY_CATCH (obj_this, ecma_op_to_object (this_arg), ret_value);
|
||||
ecma_object_t *this_obj_p = ecma_get_object_from_value (obj_this);
|
||||
|
||||
ecma_property_t *bc_prop_p = ecma_get_internal_property (this_obj_p,
|
||||
ECMA_INTERNAL_PROPERTY_REGEXP_BYTECODE);
|
||||
ecma_value_t *bc_prop_p = ecma_get_internal_property (this_obj_p,
|
||||
ECMA_INTERNAL_PROPERTY_REGEXP_BYTECODE);
|
||||
|
||||
/* Try to compile bytecode from new source. */
|
||||
const re_compiled_code_t *new_bc_p = NULL;
|
||||
ECMA_TRY_CATCH (bc_dummy,
|
||||
re_compile_bytecode (&new_bc_p, pattern_string_p, flags),
|
||||
ret_value);
|
||||
|
||||
re_compiled_code_t *old_bc_p = ECMA_GET_INTERNAL_VALUE_POINTER (re_compiled_code_t,
|
||||
ecma_get_internal_property_value (bc_prop_p));
|
||||
re_compiled_code_t *old_bc_p = ECMA_GET_INTERNAL_VALUE_POINTER (re_compiled_code_t, *bc_prop_p);
|
||||
|
||||
if (old_bc_p != NULL)
|
||||
{
|
||||
@@ -215,7 +215,7 @@ ecma_builtin_regexp_prototype_compile (ecma_value_t this_arg, /**< this argument
|
||||
ecma_bytecode_deref ((ecma_compiled_code_t *) old_bc_p);
|
||||
}
|
||||
|
||||
ECMA_SET_INTERNAL_VALUE_POINTER (ECMA_PROPERTY_VALUE_PTR (bc_prop_p)->value, new_bc_p);
|
||||
ECMA_SET_INTERNAL_VALUE_POINTER (*bc_prop_p, new_bc_p);
|
||||
re_initialize_props (this_obj_p, pattern_string_p, flags);
|
||||
ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_UNDEFINED);
|
||||
|
||||
@@ -266,11 +266,11 @@ ecma_builtin_regexp_prototype_exec (ecma_value_t this_arg, /**< this argument */
|
||||
ecma_op_to_string (arg),
|
||||
ret_value);
|
||||
|
||||
ecma_property_t *bytecode_prop_p;
|
||||
ecma_object_t *obj_p = ecma_get_object_from_value (obj_this);
|
||||
bytecode_prop_p = ecma_get_internal_property (obj_p, ECMA_INTERNAL_PROPERTY_REGEXP_BYTECODE);
|
||||
ecma_value_t *bytecode_prop_p = ecma_get_internal_property (obj_p,
|
||||
ECMA_INTERNAL_PROPERTY_REGEXP_BYTECODE);
|
||||
|
||||
void *bytecode_p = ECMA_GET_INTERNAL_VALUE_POINTER (void, ecma_get_internal_property_value (bytecode_prop_p));
|
||||
void *bytecode_p = ECMA_GET_INTERNAL_VALUE_POINTER (void, *bytecode_prop_p);
|
||||
|
||||
if (bytecode_p == NULL)
|
||||
{
|
||||
|
||||
@@ -76,10 +76,10 @@ ecma_builtin_string_prototype_object_to_string (ecma_value_t this_arg) /**< this
|
||||
|
||||
if (ecma_object_get_class_name (obj_p) == LIT_MAGIC_STRING_STRING_UL)
|
||||
{
|
||||
ecma_property_t *prim_value_prop_p = ecma_get_internal_property (obj_p,
|
||||
ECMA_INTERNAL_PROPERTY_ECMA_VALUE);
|
||||
ecma_value_t *prim_value_p = ecma_get_internal_property (obj_p,
|
||||
ECMA_INTERNAL_PROPERTY_ECMA_VALUE);
|
||||
|
||||
return ecma_copy_value (ecma_get_internal_property_value (prim_value_prop_p));
|
||||
return ecma_copy_value (*prim_value_p);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -143,10 +143,9 @@ ecma_builtin_init_object (ecma_builtin_id_t obj_builtin_id, /**< built-in ID */
|
||||
{
|
||||
ecma_string_t *prim_prop_str_value_p = ecma_get_magic_string (LIT_MAGIC_STRING__EMPTY);
|
||||
|
||||
ecma_property_t *prim_value_prop_p;
|
||||
prim_value_prop_p = ecma_create_internal_property (obj_p,
|
||||
ECMA_INTERNAL_PROPERTY_ECMA_VALUE);
|
||||
ecma_set_internal_property_value (prim_value_prop_p, ecma_make_string_value (prim_prop_str_value_p));
|
||||
ecma_value_t *prim_value_p = ecma_create_internal_property (obj_p,
|
||||
ECMA_INTERNAL_PROPERTY_ECMA_VALUE);
|
||||
*prim_value_p = ecma_make_string_value (prim_prop_str_value_p);
|
||||
break;
|
||||
}
|
||||
#endif /* !CONFIG_DISABLE_STRING_BUILTIN */
|
||||
@@ -154,10 +153,9 @@ ecma_builtin_init_object (ecma_builtin_id_t obj_builtin_id, /**< built-in ID */
|
||||
#ifndef CONFIG_DISABLE_NUMBER_BUILTIN
|
||||
case ECMA_BUILTIN_ID_NUMBER_PROTOTYPE:
|
||||
{
|
||||
ecma_property_t *prim_value_prop_p;
|
||||
prim_value_prop_p = ecma_create_internal_property (obj_p,
|
||||
ECMA_INTERNAL_PROPERTY_ECMA_VALUE);
|
||||
ecma_set_internal_property_value (prim_value_prop_p, ecma_make_integer_value (0));
|
||||
ecma_value_t *prim_value_p = ecma_create_internal_property (obj_p,
|
||||
ECMA_INTERNAL_PROPERTY_ECMA_VALUE);
|
||||
*prim_value_p = ecma_make_integer_value (0);
|
||||
break;
|
||||
}
|
||||
#endif /* !CONFIG_DISABLE_NUMBER_BUILTIN */
|
||||
@@ -165,10 +163,9 @@ ecma_builtin_init_object (ecma_builtin_id_t obj_builtin_id, /**< built-in ID */
|
||||
#ifndef CONFIG_DISABLE_BOOLEAN_BUILTIN
|
||||
case ECMA_BUILTIN_ID_BOOLEAN_PROTOTYPE:
|
||||
{
|
||||
ecma_property_t *prim_value_prop_p;
|
||||
prim_value_prop_p = ecma_create_internal_property (obj_p,
|
||||
ECMA_INTERNAL_PROPERTY_ECMA_VALUE);
|
||||
ecma_set_internal_property_value (prim_value_prop_p, ecma_make_simple_value (ECMA_SIMPLE_VALUE_FALSE));
|
||||
ecma_value_t *prim_value_p = ecma_create_internal_property (obj_p,
|
||||
ECMA_INTERNAL_PROPERTY_ECMA_VALUE);
|
||||
*prim_value_p = ecma_make_simple_value (ECMA_SIMPLE_VALUE_FALSE);
|
||||
break;
|
||||
}
|
||||
#endif /* !CONFIG_DISABLE_BOOLEAN_BUILTIN */
|
||||
@@ -179,10 +176,9 @@ ecma_builtin_init_object (ecma_builtin_id_t obj_builtin_id, /**< built-in ID */
|
||||
ecma_number_t *prim_prop_num_value_p = ecma_alloc_number ();
|
||||
*prim_prop_num_value_p = ecma_number_make_nan ();
|
||||
|
||||
ecma_property_t *prim_value_prop_p;
|
||||
prim_value_prop_p = ecma_create_internal_property (obj_p,
|
||||
ECMA_INTERNAL_PROPERTY_DATE_FLOAT);
|
||||
ECMA_SET_INTERNAL_VALUE_POINTER (ECMA_PROPERTY_VALUE_PTR (prim_value_prop_p)->value, prim_prop_num_value_p);
|
||||
ecma_value_t *prim_value_p = ecma_create_internal_property (obj_p,
|
||||
ECMA_INTERNAL_PROPERTY_DATE_FLOAT);
|
||||
ECMA_SET_INTERNAL_VALUE_POINTER (*prim_value_p, prim_prop_num_value_p);
|
||||
break;
|
||||
}
|
||||
#endif /* !CONFIG_DISABLE_DATE_BUILTIN */
|
||||
@@ -190,10 +186,9 @@ ecma_builtin_init_object (ecma_builtin_id_t obj_builtin_id, /**< built-in ID */
|
||||
#ifndef CONFIG_DISABLE_REGEXP_BUILTIN
|
||||
case ECMA_BUILTIN_ID_REGEXP_PROTOTYPE:
|
||||
{
|
||||
ecma_property_t *bytecode_prop_p;
|
||||
bytecode_prop_p = ecma_create_internal_property (obj_p,
|
||||
ECMA_INTERNAL_PROPERTY_REGEXP_BYTECODE);
|
||||
ecma_set_internal_property_value (bytecode_prop_p, ECMA_NULL_POINTER);
|
||||
ecma_value_t *bytecode_prop_p = ecma_create_internal_property (obj_p,
|
||||
ECMA_INTERNAL_PROPERTY_REGEXP_BYTECODE);
|
||||
*bytecode_prop_p = ECMA_NULL_POINTER;
|
||||
break;
|
||||
}
|
||||
#endif /* !CONFIG_DISABLE_REGEXP_BUILTIN */
|
||||
@@ -409,8 +404,8 @@ ecma_builtin_try_to_instantiate_property (ecma_object_t *object_p, /**< object *
|
||||
else
|
||||
{
|
||||
uint32_t bit_for_index = (uint32_t) 1u << (index - 32);
|
||||
ecma_property_t *mask_prop_p = ecma_find_internal_property (object_p,
|
||||
ECMA_INTERNAL_PROPERTY_INSTANTIATED_MASK_32_63);
|
||||
ecma_value_t *mask_prop_p = ecma_find_internal_property (object_p,
|
||||
ECMA_INTERNAL_PROPERTY_INSTANTIATED_MASK_32_63);
|
||||
|
||||
uint32_t instantiated_bitset;
|
||||
|
||||
@@ -421,7 +416,7 @@ ecma_builtin_try_to_instantiate_property (ecma_object_t *object_p, /**< object *
|
||||
}
|
||||
else
|
||||
{
|
||||
instantiated_bitset = ecma_get_internal_property_value (mask_prop_p);
|
||||
instantiated_bitset = *mask_prop_p;
|
||||
|
||||
if (instantiated_bitset & bit_for_index)
|
||||
{
|
||||
@@ -430,9 +425,7 @@ ecma_builtin_try_to_instantiate_property (ecma_object_t *object_p, /**< object *
|
||||
}
|
||||
}
|
||||
|
||||
instantiated_bitset |= bit_for_index;
|
||||
|
||||
ecma_set_internal_property_value (mask_prop_p, instantiated_bitset);
|
||||
*mask_prop_p = (instantiated_bitset | bit_for_index);
|
||||
}
|
||||
|
||||
ecma_value_t value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
|
||||
@@ -597,8 +590,8 @@ ecma_builtin_list_lazy_property_names (ecma_object_t *object_p, /**< a built-in
|
||||
|
||||
if (index == 32)
|
||||
{
|
||||
ecma_property_t *mask_prop_p = ecma_find_internal_property (object_p,
|
||||
ECMA_INTERNAL_PROPERTY_INSTANTIATED_MASK_32_63);
|
||||
ecma_value_t *mask_prop_p = ecma_find_internal_property (object_p,
|
||||
ECMA_INTERNAL_PROPERTY_INSTANTIATED_MASK_32_63);
|
||||
|
||||
if (mask_prop_p == NULL)
|
||||
{
|
||||
@@ -606,7 +599,7 @@ ecma_builtin_list_lazy_property_names (ecma_object_t *object_p, /**< a built-in
|
||||
}
|
||||
else
|
||||
{
|
||||
instantiated_bitset = ecma_get_internal_property_value (mask_prop_p);
|
||||
instantiated_bitset = *mask_prop_p;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user