Introduce integer ecma-value representation to reduce the double allocations.
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
This commit is contained in:
@@ -64,9 +64,9 @@ ecma_op_create_array_object (const ecma_value_t *arguments_list_p, /**< list of
|
||||
&& arguments_list_len == 1
|
||||
&& ecma_is_value_number (arguments_list_p[0]))
|
||||
{
|
||||
ecma_number_t *num_p = ecma_get_number_from_value (arguments_list_p[0]);
|
||||
uint32_t num_uint32 = ecma_number_to_uint32 (*num_p);
|
||||
if (*num_p != ((ecma_number_t) num_uint32))
|
||||
ecma_number_t num = ecma_get_number_from_value (arguments_list_p[0]);
|
||||
uint32_t num_uint32 = ecma_number_to_uint32 (num);
|
||||
if (num != ((ecma_number_t) num_uint32))
|
||||
{
|
||||
return ecma_raise_range_error (ECMA_ERR_MSG (""));
|
||||
}
|
||||
@@ -100,13 +100,11 @@ ecma_op_create_array_object (const ecma_value_t *arguments_list_p, /**< list of
|
||||
*/
|
||||
|
||||
ecma_string_t *length_magic_string_p = ecma_get_magic_string (LIT_MAGIC_STRING_LENGTH);
|
||||
ecma_number_t *length_num_p = ecma_alloc_number ();
|
||||
*length_num_p = ((ecma_number_t) length);
|
||||
|
||||
ecma_property_t *length_prop_p = ecma_create_named_data_property (obj_p,
|
||||
length_magic_string_p,
|
||||
true, false, false);
|
||||
ecma_set_named_data_property_value (length_prop_p, ecma_make_number_value (length_num_p));
|
||||
ecma_set_named_data_property_value (length_prop_p, ecma_make_number_value ((ecma_number_t) length));
|
||||
|
||||
ecma_deref_ecma_string (length_magic_string_p);
|
||||
|
||||
@@ -153,7 +151,6 @@ ecma_op_array_object_define_own_property (ecma_object_t *obj_p, /**< the array o
|
||||
{
|
||||
JERRY_ASSERT (ecma_get_object_type (obj_p) == ECMA_OBJECT_TYPE_ARRAY);
|
||||
|
||||
|
||||
// 1.
|
||||
ecma_string_t *magic_string_length_p = ecma_get_magic_string (LIT_MAGIC_STRING_LENGTH);
|
||||
ecma_property_t *len_prop_p = ecma_op_object_get_own_property (obj_p, magic_string_length_p);
|
||||
@@ -162,8 +159,7 @@ ecma_op_array_object_define_own_property (ecma_object_t *obj_p, /**< the array o
|
||||
// 2.
|
||||
ecma_value_t old_len_value = ecma_get_named_data_property_value (len_prop_p);
|
||||
|
||||
ecma_number_t *num_p = ecma_get_number_from_value (old_len_value);
|
||||
uint32_t old_len_uint32 = ecma_number_to_uint32 (*num_p);
|
||||
uint32_t old_len_uint32 = ecma_get_uint32_from_value (old_len_value);
|
||||
|
||||
// 3.
|
||||
bool is_property_name_equal_length = ecma_compare_ecma_strings (property_name_p,
|
||||
@@ -190,7 +186,7 @@ ecma_op_array_object_define_own_property (ecma_object_t *obj_p, /**< the array o
|
||||
JERRY_ASSERT (!ecma_is_value_error (completion)
|
||||
&& ecma_is_value_number (completion));
|
||||
|
||||
ecma_number_t new_len_num = *ecma_get_number_from_value (completion);
|
||||
ecma_number_t new_len_num = ecma_get_number_from_value (completion);
|
||||
|
||||
ecma_free_value (completion);
|
||||
|
||||
@@ -204,11 +200,8 @@ ecma_op_array_object_define_own_property (ecma_object_t *obj_p, /**< the array o
|
||||
else
|
||||
{
|
||||
// b., e.
|
||||
ecma_number_t *new_len_num_p = ecma_alloc_number ();
|
||||
*new_len_num_p = new_len_num;
|
||||
|
||||
ecma_property_descriptor_t new_len_property_desc = *property_desc_p;
|
||||
new_len_property_desc.value = ecma_make_number_value (new_len_num_p);
|
||||
new_len_property_desc.value = ecma_make_number_value (new_len_num);
|
||||
|
||||
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
|
||||
|
||||
@@ -319,10 +312,9 @@ ecma_op_array_object_define_own_property (ecma_object_t *obj_p, /**< the array o
|
||||
// iii.
|
||||
new_len_uint32 = (index + 1u);
|
||||
|
||||
ecma_number_t *new_len_num_p = ecma_get_number_from_value (new_len_property_desc.value);
|
||||
|
||||
// 1.
|
||||
*new_len_num_p = ((ecma_number_t) index + 1u);
|
||||
ecma_number_t new_len_num = ((ecma_number_t) index + 1u);
|
||||
ecma_value_assign_number (&new_len_property_desc.value, new_len_num);
|
||||
|
||||
// 2.
|
||||
if (!new_writable)
|
||||
@@ -381,7 +373,7 @@ ecma_op_array_object_define_own_property (ecma_object_t *obj_p, /**< the array o
|
||||
}
|
||||
}
|
||||
|
||||
ecma_dealloc_number (new_len_num_p);
|
||||
ecma_free_value (new_len_property_desc.value);
|
||||
|
||||
return ret_value;
|
||||
}
|
||||
@@ -427,13 +419,14 @@ ecma_op_array_object_define_own_property (ecma_object_t *obj_p, /**< the array o
|
||||
// e.
|
||||
if (index >= old_len_uint32)
|
||||
{
|
||||
ecma_property_value_t *len_prop_value_p = ECMA_PROPERTY_VALUE_PTR (len_prop_p);
|
||||
|
||||
// i., ii.
|
||||
ecma_number_t *num_p = ecma_alloc_number ();
|
||||
*num_p = ecma_number_add (((ecma_number_t) index), ECMA_NUMBER_ONE);
|
||||
|
||||
ecma_named_data_property_assign_value (obj_p, len_prop_p, ecma_make_number_value (num_p));
|
||||
|
||||
ecma_dealloc_number (num_p);
|
||||
if (index < UINT32_MAX)
|
||||
{
|
||||
/* Setting the length property is always successful. */
|
||||
ecma_value_assign_uint32 (&len_prop_value_p->value, index + 1);
|
||||
}
|
||||
}
|
||||
|
||||
// f.
|
||||
|
||||
@@ -73,8 +73,8 @@ ecma_op_abstract_equality_compare (ecma_value_t x, /**< first operand */
|
||||
}
|
||||
else if (is_x_number)
|
||||
{ // c.
|
||||
ecma_number_t x_num = *ecma_get_number_from_value (x);
|
||||
ecma_number_t y_num = *ecma_get_number_from_value (y);
|
||||
ecma_number_t x_num = ecma_get_number_from_value (x);
|
||||
ecma_number_t y_num = ecma_get_number_from_value (y);
|
||||
|
||||
bool is_x_equal_to_y = (x_num == y_num);
|
||||
|
||||
@@ -267,8 +267,8 @@ ecma_op_strict_equality_compare (ecma_value_t x, /**< first operand */
|
||||
// d. If x is +0 and y is -0, return true.
|
||||
// e. If x is -0 and y is +0, return true.
|
||||
|
||||
ecma_number_t x_num = *ecma_get_number_from_value (x);
|
||||
ecma_number_t y_num = *ecma_get_number_from_value (y);
|
||||
ecma_number_t x_num = ecma_get_number_from_value (x);
|
||||
ecma_number_t y_num = ecma_get_number_from_value (y);
|
||||
|
||||
bool is_x_equal_to_y = (x_num == y_num);
|
||||
|
||||
|
||||
@@ -109,11 +109,11 @@ ecma_op_same_value (ecma_value_t x, /**< ecma value */
|
||||
}
|
||||
else if (is_x_number)
|
||||
{
|
||||
ecma_number_t *x_num_p = ecma_get_number_from_value (x);
|
||||
ecma_number_t *y_num_p = ecma_get_number_from_value (y);
|
||||
ecma_number_t x_num = ecma_get_number_from_value (x);
|
||||
ecma_number_t y_num = ecma_get_number_from_value (y);
|
||||
|
||||
bool is_x_nan = ecma_number_is_nan (*x_num_p);
|
||||
bool is_y_nan = ecma_number_is_nan (*y_num_p);
|
||||
bool is_x_nan = ecma_number_is_nan (x_num);
|
||||
bool is_y_nan = ecma_number_is_nan (y_num);
|
||||
|
||||
if (is_x_nan || is_y_nan)
|
||||
{
|
||||
@@ -126,15 +126,15 @@ ecma_op_same_value (ecma_value_t x, /**< ecma value */
|
||||
*/
|
||||
return (is_x_nan && is_y_nan);
|
||||
}
|
||||
else if (ecma_number_is_zero (*x_num_p)
|
||||
&& ecma_number_is_zero (*y_num_p)
|
||||
&& ecma_number_is_negative (*x_num_p) != ecma_number_is_negative (*y_num_p))
|
||||
else if (ecma_number_is_zero (x_num)
|
||||
&& ecma_number_is_zero (y_num)
|
||||
&& ecma_number_is_negative (x_num) != ecma_number_is_negative (y_num))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
return (*x_num_p == *y_num_p);
|
||||
return (x_num == y_num);
|
||||
}
|
||||
}
|
||||
else if (is_x_string)
|
||||
@@ -212,10 +212,10 @@ ecma_op_to_boolean (ecma_value_t value) /**< ecma value */
|
||||
}
|
||||
else if (ecma_is_value_number (value))
|
||||
{
|
||||
ecma_number_t *num_p = ecma_get_number_from_value (value);
|
||||
ecma_number_t num = ecma_get_number_from_value (value);
|
||||
|
||||
if (ecma_number_is_nan (*num_p)
|
||||
|| ecma_number_is_zero (*num_p))
|
||||
if (ecma_number_is_nan (num)
|
||||
|| ecma_number_is_zero (num))
|
||||
{
|
||||
ret_value = ECMA_SIMPLE_VALUE_FALSE;
|
||||
}
|
||||
@@ -261,18 +261,18 @@ ecma_op_to_number (ecma_value_t value) /**< ecma value */
|
||||
{
|
||||
ecma_check_value_type_is_spec_defined (value);
|
||||
|
||||
if (ecma_is_value_number (value))
|
||||
if (ecma_is_value_integer_number (value))
|
||||
{
|
||||
return value;
|
||||
}
|
||||
else if (ecma_is_value_float_number (value))
|
||||
{
|
||||
return ecma_copy_value (value);
|
||||
}
|
||||
else if (ecma_is_value_string (value))
|
||||
{
|
||||
ecma_string_t *str_p = ecma_get_string_from_value (value);
|
||||
|
||||
ecma_number_t *num_p = ecma_alloc_number ();
|
||||
*num_p = ecma_string_to_number (str_p);
|
||||
|
||||
return ecma_make_number_value (num_p);
|
||||
return ecma_make_number_value (ecma_string_to_number (str_p));
|
||||
}
|
||||
else if (ecma_is_value_object (value))
|
||||
{
|
||||
@@ -290,15 +290,15 @@ ecma_op_to_number (ecma_value_t value) /**< ecma value */
|
||||
}
|
||||
else
|
||||
{
|
||||
ecma_number_t *num_p = ecma_alloc_number ();
|
||||
int16_t num = 0;
|
||||
|
||||
if (ecma_is_value_undefined (value))
|
||||
{
|
||||
*num_p = ecma_number_make_nan ();
|
||||
return ecma_make_nan_value ();
|
||||
}
|
||||
else if (ecma_is_value_null (value))
|
||||
{
|
||||
*num_p = ECMA_NUMBER_ZERO;
|
||||
num = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -306,15 +306,15 @@ ecma_op_to_number (ecma_value_t value) /**< ecma value */
|
||||
|
||||
if (ecma_is_value_true (value))
|
||||
{
|
||||
*num_p = ECMA_NUMBER_ONE;
|
||||
num = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
*num_p = ECMA_NUMBER_ZERO;
|
||||
num = 0;
|
||||
}
|
||||
}
|
||||
|
||||
return ecma_make_number_value (num_p);
|
||||
return ecma_make_integer_value (num);
|
||||
}
|
||||
} /* ecma_op_to_number */
|
||||
|
||||
@@ -357,8 +357,8 @@ ecma_op_to_string (ecma_value_t value) /**< ecma value */
|
||||
}
|
||||
else if (ecma_is_value_number (value))
|
||||
{
|
||||
ecma_number_t *num_p = ecma_get_number_from_value (value);
|
||||
res_p = ecma_new_ecma_string_from_number (*num_p);
|
||||
ecma_number_t num = ecma_get_number_from_value (value);
|
||||
res_p = ecma_new_ecma_string_from_number (num);
|
||||
}
|
||||
else if (ecma_is_value_undefined (value))
|
||||
{
|
||||
|
||||
@@ -289,7 +289,7 @@ ecma_op_function_try_lazy_instantiate_property (ecma_object_t *obj_p, /**< the f
|
||||
/* ECMA-262 v5, 13.2, 14-15 */
|
||||
|
||||
// 14
|
||||
ecma_number_t *len_p = ecma_alloc_number ();
|
||||
uint32_t len = 0;
|
||||
|
||||
ecma_property_t *bytecode_prop_p = ecma_get_internal_property (obj_p, ECMA_INTERNAL_PROPERTY_CODE_BYTECODE);
|
||||
|
||||
@@ -300,12 +300,12 @@ ecma_op_function_try_lazy_instantiate_property (ecma_object_t *obj_p, /**< the f
|
||||
if (bytecode_data_p->status_flags & CBC_CODE_FLAGS_UINT16_ARGUMENTS)
|
||||
{
|
||||
cbc_uint16_arguments_t *args_p = (cbc_uint16_arguments_t *) bytecode_data_p;
|
||||
*len_p = args_p->argument_end;
|
||||
len = args_p->argument_end;
|
||||
}
|
||||
else
|
||||
{
|
||||
cbc_uint8_arguments_t *args_p = (cbc_uint8_arguments_t *) bytecode_data_p;
|
||||
*len_p = args_p->argument_end;
|
||||
len = args_p->argument_end;
|
||||
}
|
||||
|
||||
// 15
|
||||
@@ -315,9 +315,7 @@ ecma_op_function_try_lazy_instantiate_property (ecma_object_t *obj_p, /**< the f
|
||||
false,
|
||||
false);
|
||||
|
||||
ecma_named_data_property_assign_value (obj_p, length_prop_p, ecma_make_number_value (len_p));
|
||||
|
||||
ecma_dealloc_number (len_p);
|
||||
ecma_named_data_property_assign_value (obj_p, length_prop_p, ecma_make_uint32_value (len));
|
||||
|
||||
JERRY_ASSERT (!ecma_is_property_configurable (length_prop_p));
|
||||
return length_prop_p;
|
||||
|
||||
@@ -48,7 +48,7 @@ ecma_op_create_number_object (ecma_value_t arg) /**< argument passed to the Numb
|
||||
return conv_to_num_completion;
|
||||
}
|
||||
|
||||
ecma_number_t *prim_value_p = ecma_get_number_from_value (conv_to_num_completion);
|
||||
ecma_number_t prim_value = ecma_get_number_from_value (conv_to_num_completion);
|
||||
|
||||
#ifndef CONFIG_ECMA_COMPACT_PROFILE_DISABLE_NUMBER_BUILTIN
|
||||
ecma_object_t *prototype_obj_p = ecma_builtin_get (ECMA_BUILTIN_ID_NUMBER_PROTOTYPE);
|
||||
@@ -66,8 +66,11 @@ ecma_op_create_number_object (ecma_value_t arg) /**< argument passed to the Numb
|
||||
|
||||
ecma_property_t *prim_value_prop_p = ecma_create_internal_property (obj_p,
|
||||
ECMA_INTERNAL_PROPERTY_PRIMITIVE_NUMBER_VALUE);
|
||||
ecma_number_t *prim_value_p = ecma_alloc_number ();
|
||||
*prim_value_p = prim_value;
|
||||
ECMA_SET_INTERNAL_VALUE_POINTER (ECMA_PROPERTY_VALUE_PTR (prim_value_prop_p)->value, prim_value_p);
|
||||
|
||||
ecma_free_value (conv_to_num_completion);
|
||||
return ecma_make_object_value (obj_p);
|
||||
} /* ecma_op_create_number_object */
|
||||
|
||||
|
||||
@@ -79,8 +79,6 @@ ecma_op_create_arguments_object (ecma_object_t *func_obj_p, /**< callee function
|
||||
bool is_strict = (bytecode_data_p->status_flags & CBC_CODE_FLAGS_STRICT_MODE) != 0;
|
||||
|
||||
// 1.
|
||||
ecma_number_t *len_p = ecma_alloc_number ();
|
||||
*len_p = ((ecma_number_t) arguments_number);
|
||||
|
||||
// 4.
|
||||
ecma_property_t *class_prop_p = ecma_create_internal_property (obj_p, ECMA_INTERNAL_PROPERTY_CLASS);
|
||||
@@ -90,7 +88,7 @@ ecma_op_create_arguments_object (ecma_object_t *func_obj_p, /**< callee function
|
||||
ecma_string_t *length_magic_string_p = ecma_get_magic_string (LIT_MAGIC_STRING_LENGTH);
|
||||
ecma_value_t completion = ecma_builtin_helper_def_prop (obj_p,
|
||||
length_magic_string_p,
|
||||
ecma_make_number_value (len_p),
|
||||
ecma_make_uint32_value (arguments_number),
|
||||
true, /* Writable */
|
||||
false, /* Enumerable */
|
||||
true, /* Configurable */
|
||||
@@ -99,8 +97,6 @@ ecma_op_create_arguments_object (ecma_object_t *func_obj_p, /**< callee function
|
||||
JERRY_ASSERT (ecma_is_value_true (completion));
|
||||
ecma_deref_ecma_string (length_magic_string_p);
|
||||
|
||||
ecma_dealloc_number (len_p);
|
||||
|
||||
ecma_property_descriptor_t prop_desc = ecma_make_empty_property_descriptor ();
|
||||
|
||||
if (bytecode_data_p != NULL)
|
||||
|
||||
@@ -214,11 +214,7 @@ re_initialize_props (ecma_object_t *re_obj_p, /**< RegExp obejct */
|
||||
|
||||
ecma_deref_ecma_string (magic_string_p);
|
||||
|
||||
ecma_number_t *lastindex_num_p = ecma_alloc_number ();
|
||||
*lastindex_num_p = ECMA_NUMBER_ZERO;
|
||||
JERRY_ASSERT (ECMA_PROPERTY_GET_TYPE (prop_p) == ECMA_PROPERTY_TYPE_NAMEDDATA);
|
||||
ecma_named_data_property_assign_value (re_obj_p, prop_p, ecma_make_number_value (lastindex_num_p));
|
||||
ecma_dealloc_number (lastindex_num_p);
|
||||
ecma_named_data_property_assign_value (re_obj_p, prop_p, ecma_make_integer_value (0));
|
||||
} /* re_initialize_props */
|
||||
|
||||
/**
|
||||
@@ -1184,18 +1180,13 @@ re_set_result_array_properties (ecma_object_t *array_obj_p, /**< result array */
|
||||
/* Set index property of the result array */
|
||||
ecma_string_t *result_prop_str_p = ecma_get_magic_string (LIT_MAGIC_STRING_INDEX);
|
||||
{
|
||||
ecma_number_t *num_p = ecma_alloc_number ();
|
||||
*num_p = (ecma_number_t) index;
|
||||
|
||||
ecma_builtin_helper_def_prop (array_obj_p,
|
||||
result_prop_str_p,
|
||||
ecma_make_number_value (num_p),
|
||||
ecma_make_int32_value (index),
|
||||
true, /* Writable */
|
||||
true, /* Enumerable */
|
||||
true, /* Configurable */
|
||||
true); /* Failure handling */
|
||||
|
||||
ecma_dealloc_number (num_p);
|
||||
}
|
||||
ecma_deref_ecma_string (result_prop_str_p);
|
||||
|
||||
@@ -1215,20 +1206,15 @@ re_set_result_array_properties (ecma_object_t *array_obj_p, /**< result array */
|
||||
/* Set length property of the result array */
|
||||
result_prop_str_p = ecma_get_magic_string (LIT_MAGIC_STRING_LENGTH);
|
||||
{
|
||||
|
||||
ecma_property_descriptor_t array_item_prop_desc = ecma_make_empty_property_descriptor ();
|
||||
array_item_prop_desc.is_value_defined = true;
|
||||
|
||||
ecma_number_t *num_p = ecma_alloc_number ();
|
||||
*num_p = (ecma_number_t) (num_of_elements);
|
||||
array_item_prop_desc.value = ecma_make_number_value (num_p);
|
||||
array_item_prop_desc.value = ecma_make_uint32_value (num_of_elements);
|
||||
|
||||
ecma_op_object_define_own_property (array_obj_p,
|
||||
result_prop_str_p,
|
||||
&array_item_prop_desc,
|
||||
true);
|
||||
|
||||
ecma_dealloc_number (num_p);
|
||||
}
|
||||
ecma_deref_ecma_string (result_prop_str_p);
|
||||
} /* re_set_result_array_properties */
|
||||
@@ -1366,10 +1352,7 @@ ecma_regexp_exec_helper (ecma_value_t regexp_value, /**< RegExp object */
|
||||
if (re_ctx.flags & RE_FLAG_GLOBAL)
|
||||
{
|
||||
ecma_string_t *magic_str_p = ecma_get_magic_string (LIT_MAGIC_STRING_LASTINDEX_UL);
|
||||
ecma_number_t *lastindex_num_p = ecma_alloc_number ();
|
||||
*lastindex_num_p = ECMA_NUMBER_ZERO;
|
||||
ecma_op_object_put (regexp_object_p, magic_str_p, ecma_make_number_value (lastindex_num_p), true);
|
||||
ecma_dealloc_number (lastindex_num_p);
|
||||
ecma_op_object_put (regexp_object_p, magic_str_p, ecma_make_integer_value (0), true);
|
||||
ecma_deref_ecma_string (magic_str_p);
|
||||
}
|
||||
|
||||
@@ -1403,21 +1386,20 @@ ecma_regexp_exec_helper (ecma_value_t regexp_value, /**< RegExp object */
|
||||
if (input_curr_p && (re_ctx.flags & RE_FLAG_GLOBAL))
|
||||
{
|
||||
ecma_string_t *magic_str_p = ecma_get_magic_string (LIT_MAGIC_STRING_LASTINDEX_UL);
|
||||
ecma_number_t *lastindex_num_p = ecma_alloc_number ();
|
||||
ecma_number_t lastindex_num;
|
||||
|
||||
if (sub_str_p != NULL
|
||||
&& input_buffer_p != NULL)
|
||||
{
|
||||
*lastindex_num_p = lit_utf8_string_length (input_buffer_p,
|
||||
(lit_utf8_size_t) (sub_str_p - input_buffer_p));
|
||||
lastindex_num = lit_utf8_string_length (input_buffer_p,
|
||||
(lit_utf8_size_t) (sub_str_p - input_buffer_p));
|
||||
}
|
||||
else
|
||||
{
|
||||
*lastindex_num_p = ECMA_NUMBER_ZERO;
|
||||
lastindex_num = ECMA_NUMBER_ZERO;
|
||||
}
|
||||
|
||||
ecma_op_object_put (regexp_object_p, magic_str_p, ecma_make_number_value (lastindex_num_p), true);
|
||||
ecma_dealloc_number (lastindex_num_p);
|
||||
ecma_op_object_put (regexp_object_p, magic_str_p, ecma_make_number_value (lastindex_num), true);
|
||||
ecma_deref_ecma_string (magic_str_p);
|
||||
}
|
||||
|
||||
|
||||
@@ -102,9 +102,8 @@ ecma_op_create_string_object (const ecma_value_t *arguments_list_p, /**< list of
|
||||
ecma_property_t *length_prop_p = ecma_create_named_data_property (obj_p,
|
||||
length_magic_string_p,
|
||||
false, false, false);
|
||||
ecma_number_t *length_prop_value_p = ecma_alloc_number ();
|
||||
*length_prop_value_p = length_value;
|
||||
ecma_set_named_data_property_value (length_prop_p, ecma_make_number_value (length_prop_value_p));
|
||||
|
||||
ecma_set_named_data_property_value (length_prop_p, ecma_make_number_value (length_value));
|
||||
ecma_deref_ecma_string (length_magic_string_p);
|
||||
|
||||
return ecma_make_object_value (obj_p);
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
ecma_number_t num_var = ecma_number_make_nan (); \
|
||||
if (ecma_is_value_number (value)) \
|
||||
{ \
|
||||
num_var = *ecma_get_number_from_value (value); \
|
||||
num_var = ecma_get_number_from_value (value); \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
@@ -76,7 +76,7 @@
|
||||
ecma_op_to_number (value), \
|
||||
return_value); \
|
||||
\
|
||||
num_var = *ecma_get_number_from_value (to_number_value); \
|
||||
num_var = ecma_get_number_from_value (to_number_value); \
|
||||
\
|
||||
ECMA_FINALIZE (to_number_value); \
|
||||
} \
|
||||
|
||||
Reference in New Issue
Block a user