Remove 'ecma_completion_value_t'

Remove ecma_completion_value_t, and add an extra bit to
ecma_value_t to represent errors. From the long list of
completion types only normal and error remained.

JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
This commit is contained in:
Zoltan Herczeg
2016-02-16 04:06:18 -08:00
committed by László Langó
parent c25d8617a5
commit b2426a7a94
96 changed files with 2691 additions and 3272 deletions
File diff suppressed because it is too large Load Diff
@@ -50,10 +50,10 @@
* See also:
* ECMA-262 v5, 15.4.3.2
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_array_object_is_array (ecma_value_t this_arg __attr_unused___, /**< 'this' argument */
ecma_value_t arg) /**< first argument */
{
@@ -69,15 +69,15 @@ ecma_builtin_array_object_is_array (ecma_value_t this_arg __attr_unused___, /**<
}
}
return ecma_make_simple_completion_value (is_array);
return ecma_make_simple_value (is_array);
} /* ecma_builtin_array_object_is_array */
/**
* Handle calling [[Call]] of built-in Array object
*
* @return completion-value
* @return ecma value
*/
ecma_completion_value_t
ecma_value_t
ecma_builtin_array_dispatch_call (const ecma_value_t *arguments_list_p, /**< arguments list */
ecma_length_t arguments_list_len) /**< number of arguments */
{
@@ -89,9 +89,9 @@ ecma_builtin_array_dispatch_call (const ecma_value_t *arguments_list_p, /**< arg
/**
* Handle calling [[Construct]] of built-in Array object
*
* @return completion-value
* @return ecma value
*/
ecma_completion_value_t
ecma_value_t
ecma_builtin_array_dispatch_construct (const ecma_value_t *arguments_list_p, /**< arguments list */
ecma_length_t arguments_list_len) /**< number of arguments */
{
@@ -50,13 +50,13 @@
* See also:
* ECMA-262 v5, 15.6.4.2
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_boolean_prototype_object_to_string (ecma_value_t this_arg) /**< this argument */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
ECMA_TRY_CATCH (value_of_ret,
ecma_builtin_boolean_prototype_object_value_of (this_arg),
@@ -75,7 +75,7 @@ ecma_builtin_boolean_prototype_object_to_string (ecma_value_t this_arg) /**< thi
ret_str_p = ecma_get_magic_string (LIT_MAGIC_STRING_FALSE);
}
ret_value = ecma_make_normal_completion_value (ecma_make_string_value (ret_str_p));
ret_value = ecma_make_string_value (ret_str_p);
ECMA_FINALIZE (value_of_ret);
@@ -88,15 +88,15 @@ ecma_builtin_boolean_prototype_object_to_string (ecma_value_t this_arg) /**< thi
* See also:
* ECMA-262 v5, 15.6.4.3
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_boolean_prototype_object_value_of (ecma_value_t this_arg) /**< this argument */
{
if (ecma_is_value_boolean (this_arg))
{
return ecma_make_normal_completion_value (this_arg);
return this_arg;
}
else if (ecma_is_value_object (this_arg))
{
@@ -115,11 +115,11 @@ ecma_builtin_boolean_prototype_object_value_of (ecma_value_t this_arg) /**< this
JERRY_ASSERT (ecma_is_value_boolean (ret_boolean_value));
return ecma_make_normal_completion_value (ret_boolean_value);
return ret_boolean_value;
}
}
return ecma_make_throw_obj_completion_value (ecma_new_standard_error (ECMA_ERROR_TYPE));
return ecma_raise_type_error ("");
} /* ecma_builtin_boolean_prototype_object_value_of */
/**
@@ -47,9 +47,9 @@
/**
* Handle calling [[Call]] of built-in Boolean object
*
* @return completion-value
* @return ecma value
*/
ecma_completion_value_t
ecma_value_t
ecma_builtin_boolean_dispatch_call (const ecma_value_t *arguments_list_p, /**< arguments list */
ecma_length_t arguments_list_len) /**< number of arguments */
{
@@ -72,9 +72,9 @@ ecma_builtin_boolean_dispatch_call (const ecma_value_t *arguments_list_p, /**< a
/**
* Handle calling [[Construct]] of built-in Boolean object
*
* @return completion-value
* @return ecma value
*/
ecma_completion_value_t
ecma_value_t
ecma_builtin_boolean_dispatch_construct (const ecma_value_t *arguments_list_p, /**< arguments list */
ecma_length_t arguments_list_len) /**< number of arguments */
{
@@ -46,29 +46,29 @@
/**
* Handle calling [[Call]] of built-in CompactProfileError object
*
* @return completion-value
* @return ecma value
*/
ecma_completion_value_t
ecma_value_t
ecma_builtin_compact_profile_error_dispatch_call (const ecma_value_t *arguments_list_p, /**< arguments list */
ecma_length_t arguments_list_len) /**< number of arguments */
{
JERRY_ASSERT (arguments_list_len == 0 || arguments_list_p != NULL);
return ecma_make_throw_obj_completion_value (ecma_builtin_get (ECMA_BUILTIN_ID_COMPACT_PROFILE_ERROR));
return ecma_make_error_value (ecma_make_object_value (ecma_builtin_get (ECMA_BUILTIN_ID_COMPACT_PROFILE_ERROR)));
} /* ecma_builtin_compact_profile_error_dispatch_call */
/**
* Handle calling [[Construct]] of built-in CompactProfileError object
*
* @return completion-value
* @return ecma value
*/
ecma_completion_value_t
ecma_value_t
ecma_builtin_compact_profile_error_dispatch_construct (const ecma_value_t *arguments_list_p, /**< arguments list */
ecma_length_t arguments_list_len) /**< number of arguments */
{
JERRY_ASSERT (arguments_list_len == 0 || arguments_list_p != NULL);
return ecma_make_throw_obj_completion_value (ecma_builtin_get (ECMA_BUILTIN_ID_COMPACT_PROFILE_ERROR));
return ecma_make_error_value (ecma_make_object_value (ecma_builtin_get (ECMA_BUILTIN_ID_COMPACT_PROFILE_ERROR)));
} /* ecma_builtin_compact_profile_error_dispatch_construct */
/**
@@ -1,5 +1,5 @@
/* Copyright 2015 Samsung Electronics Co., Ltd.
* Copyright 2015 University of Szeged.
/* Copyright 2015-2016 Samsung Electronics Co., Ltd.
* Copyright 2015-2016 University of Szeged.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -49,13 +49,13 @@
* See also:
* ECMA-262 v5, 15.9.5.2
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_date_prototype_to_string (ecma_value_t this_arg) /**< this argument */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
ECMA_TRY_CATCH (prim_value,
ecma_date_get_primitive_value (this_arg),
@@ -66,7 +66,7 @@ ecma_builtin_date_prototype_to_string (ecma_value_t this_arg) /**< this argument
if (ecma_number_is_nan (*prim_num_p))
{
ecma_string_t *magic_str_p = ecma_get_magic_string (LIT_MAGIC_STRING_INVALID_DATE_UL);
ret_value = ecma_make_normal_completion_value (ecma_make_string_value (magic_str_p));
ret_value = ecma_make_string_value (magic_str_p);
}
else
{
@@ -84,13 +84,13 @@ ecma_builtin_date_prototype_to_string (ecma_value_t this_arg) /**< this argument
* See also:
* ECMA-262 v5, 15.9.5.3
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_date_prototype_to_date_string (ecma_value_t this_arg) /**< this argument */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
if (!ecma_is_value_object (this_arg)
|| ecma_object_get_class_name (ecma_get_object_from_value (this_arg)) != LIT_MAGIC_STRING_DATE_UL)
@@ -112,7 +112,7 @@ ecma_builtin_date_prototype_to_date_string (ecma_value_t this_arg) /**< this arg
if (ecma_number_is_nan (*prim_value_num_p))
{
ecma_string_t *magic_str_p = ecma_get_magic_string (LIT_MAGIC_STRING_INVALID_DATE_UL);
ret_value = ecma_make_normal_completion_value (ecma_make_string_value (magic_str_p));
ret_value = ecma_make_string_value (magic_str_p);
}
else
{
@@ -131,13 +131,13 @@ ecma_builtin_date_prototype_to_date_string (ecma_value_t this_arg) /**< this arg
* See also:
* ECMA-262 v5, 15.9.5.4
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_date_prototype_to_time_string (ecma_value_t this_arg) /**< this argument */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
if (!ecma_is_value_object (this_arg)
|| ecma_object_get_class_name (ecma_get_object_from_value (this_arg)) != LIT_MAGIC_STRING_DATE_UL)
@@ -159,7 +159,7 @@ ecma_builtin_date_prototype_to_time_string (ecma_value_t this_arg) /**< this arg
if (ecma_number_is_nan (*prim_value_num_p))
{
ecma_string_t *magic_str_p = ecma_get_magic_string (LIT_MAGIC_STRING_INVALID_DATE_UL);
ret_value = ecma_make_normal_completion_value (ecma_make_string_value (magic_str_p));
ret_value = ecma_make_string_value (magic_str_p);
}
else
{
@@ -178,10 +178,10 @@ ecma_builtin_date_prototype_to_time_string (ecma_value_t this_arg) /**< this arg
* See also:
* ECMA-262 v5, 15.9.5.5
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_date_prototype_to_locale_string (ecma_value_t this_arg) /**< this argument */
{
return ecma_builtin_date_prototype_to_string (this_arg);
@@ -193,10 +193,10 @@ ecma_builtin_date_prototype_to_locale_string (ecma_value_t this_arg) /**< this a
* See also:
* ECMA-262 v5, 15.9.5.6
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_date_prototype_to_locale_date_string (ecma_value_t this_arg) /**< this argument */
{
return ecma_builtin_date_prototype_to_date_string (this_arg);
@@ -208,10 +208,10 @@ ecma_builtin_date_prototype_to_locale_date_string (ecma_value_t this_arg) /**< t
* See also:
* ECMA-262 v5, 15.9.5.7
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_date_prototype_to_locale_time_string (ecma_value_t this_arg) /**< this argument */
{
return ecma_builtin_date_prototype_to_time_string (this_arg);
@@ -223,10 +223,10 @@ ecma_builtin_date_prototype_to_locale_time_string (ecma_value_t this_arg) /**< t
* See also:
* ECMA-262 v5, 15.9.5.8
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_date_prototype_value_of (ecma_value_t this_arg) /**< this argument */
{
return ecma_builtin_date_prototype_get_time (this_arg);
@@ -238,10 +238,10 @@ ecma_builtin_date_prototype_value_of (ecma_value_t this_arg) /**< this argument
* See also:
* ECMA-262 v5, 15.9.5.9
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_date_prototype_get_time (ecma_value_t this_arg) /**< this argument */
{
if (ecma_is_value_object (this_arg))
@@ -258,11 +258,11 @@ ecma_builtin_date_prototype_get_time (ecma_value_t this_arg) /**< this argument
ecma_number_t *ret_num_p = ecma_alloc_number ();
*ret_num_p = *prim_value_num_p;
return ecma_make_normal_completion_value (ecma_make_number_value (ret_num_p));
return ecma_make_number_value (ret_num_p);
}
}
return ecma_make_throw_obj_completion_value (ecma_new_standard_error (ECMA_ERROR_TYPE));
return ecma_raise_type_error ("");
} /* ecma_builtin_date_prototype_get_time */
/**
@@ -280,14 +280,14 @@ ecma_builtin_date_prototype_get_time (ecma_value_t this_arg) /**< this argument
/**
* Implementation of Data.prototype built-in's getter routines
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
#define DEFINE_GETTER(_ecma_paragraph, _routine_name, _getter_name, _timezone) \
static ecma_completion_value_t \
static ecma_value_t \
ecma_builtin_date_prototype_get_ ## _routine_name (ecma_value_t this_arg) /**< this argument */ \
{ \
ecma_completion_value_t ret_value = ecma_make_empty_completion_value (); \
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY); \
\
/* 1. */ \
ECMA_TRY_CATCH (value, ecma_builtin_date_prototype_get_time (this_arg), ret_value); \
@@ -296,14 +296,14 @@ ecma_builtin_date_prototype_get_ ## _routine_name (ecma_value_t this_arg) /**< t
if (ecma_number_is_nan (*this_num_p)) \
{ \
ecma_string_t *nan_str_p = ecma_get_magic_string (LIT_MAGIC_STRING_NAN); \
ret_value = ecma_make_normal_completion_value (ecma_make_string_value (nan_str_p)); \
ret_value = ecma_make_string_value (nan_str_p); \
} \
else \
{ \
/* 3. */ \
ecma_number_t *ret_num_p = ecma_alloc_number (); \
*ret_num_p = _getter_name (DEFINE_GETTER_ARGUMENT_ ## _timezone (*this_num_p)); \
ret_value = ecma_make_normal_completion_value (ecma_make_number_value (ret_num_p)); \
ret_value = ecma_make_number_value (ret_num_p); \
} \
ECMA_FINALIZE (value); \
\
@@ -338,14 +338,14 @@ DEFINE_GETTER (ECMA-262 v5 15.9.5.26, timezone_offset, ecma_date_timezone_offset
* See also:
* ECMA-262 v5, 15.9.5.27
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_date_prototype_set_time (ecma_value_t this_arg, /**< this argument */
ecma_value_t time) /**< time */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
if (!ecma_is_value_object (this_arg)
|| ecma_object_get_class_name (ecma_get_object_from_value (this_arg)) != LIT_MAGIC_STRING_DATE_UL)
@@ -370,7 +370,7 @@ ecma_builtin_date_prototype_set_time (ecma_value_t this_arg, /**< this argument
*prim_value_num_p = *value_p;
/* 3. */
ret_value = ecma_make_normal_completion_value (ecma_make_number_value (value_p));
ret_value = ecma_make_number_value (value_p);
ECMA_OP_TO_NUMBER_FINALIZE (t);
}
@@ -383,14 +383,14 @@ ecma_builtin_date_prototype_set_time (ecma_value_t this_arg, /**< this argument
* See also:
* ECMA-262 v5, 15.9.5.28
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_date_prototype_set_milliseconds (ecma_value_t this_arg, /**< this argument */
ecma_value_t ms) /**< millisecond */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
/* 1. */
ECMA_TRY_CATCH (this_time_value, ecma_builtin_date_prototype_get_time (this_arg), ret_value);
@@ -420,14 +420,14 @@ ecma_builtin_date_prototype_set_milliseconds (ecma_value_t this_arg, /**< this a
* See also:
* ECMA-262 v5, 15.9.5.29
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_date_prototype_set_utc_milliseconds (ecma_value_t this_arg, /**< this argument */
ecma_value_t ms) /**< millisecond */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
/* 1. */
ECMA_TRY_CATCH (this_time_value, ecma_builtin_date_prototype_get_time (this_arg), ret_value);
@@ -457,15 +457,15 @@ ecma_builtin_date_prototype_set_utc_milliseconds (ecma_value_t this_arg, /**< th
* See also:
* ECMA-262 v5, 15.9.5.30
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_date_prototype_set_seconds (ecma_value_t this_arg, /**< this argument */
ecma_value_t sec, /**< second */
ecma_value_t ms) /**< millisecond */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
/* 1. */
ECMA_TRY_CATCH (this_time_value, ecma_builtin_date_prototype_get_time (this_arg), ret_value);
@@ -502,15 +502,15 @@ ecma_builtin_date_prototype_set_seconds (ecma_value_t this_arg, /**< this argume
* See also:
* ECMA-262 v5, 15.9.5.31
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_date_prototype_set_utc_seconds (ecma_value_t this_arg, /**< this argument */
ecma_value_t sec, /**< second */
ecma_value_t ms) /**< millisecond */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
/* 1. */
ECMA_TRY_CATCH (this_time_value, ecma_builtin_date_prototype_get_time (this_arg), ret_value);
@@ -547,15 +547,15 @@ ecma_builtin_date_prototype_set_utc_seconds (ecma_value_t this_arg, /**< this ar
* See also:
* ECMA-262 v5, 15.9.5.32
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_date_prototype_set_minutes (ecma_value_t this_arg, /**< this argument */
const ecma_value_t args[], /**< arguments list */
ecma_length_t args_number) /**< number of arguments */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
/* 1. */
ECMA_TRY_CATCH (this_time_value, ecma_builtin_date_prototype_get_time (this_arg), ret_value);
@@ -588,7 +588,7 @@ ecma_builtin_date_prototype_set_minutes (ecma_value_t this_arg, /**< this argume
ECMA_OP_TO_NUMBER_FINALIZE (min);
}
if (ecma_is_completion_value_empty (ret_value))
if (ecma_is_value_empty (ret_value))
{
/* 5-8. */
ecma_number_t hour = ecma_date_hour_from_time (t);
@@ -608,15 +608,15 @@ ecma_builtin_date_prototype_set_minutes (ecma_value_t this_arg, /**< this argume
* See also:
* ECMA-262 v5, 15.9.5.33
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_date_prototype_set_utc_minutes (ecma_value_t this_arg, /**< this argument */
const ecma_value_t args[], /**< arguments list */
ecma_length_t args_number) /**< number of arguments */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
/* 1. */
ECMA_TRY_CATCH (this_time_value, ecma_builtin_date_prototype_get_time (this_arg), ret_value);
@@ -649,7 +649,7 @@ ecma_builtin_date_prototype_set_utc_minutes (ecma_value_t this_arg, /**< this ar
ECMA_OP_TO_NUMBER_FINALIZE (min);
}
if (ecma_is_completion_value_empty (ret_value))
if (ecma_is_value_empty (ret_value))
{
/* 5-8. */
ecma_number_t hour = ecma_date_hour_from_time (t);
@@ -669,15 +669,15 @@ ecma_builtin_date_prototype_set_utc_minutes (ecma_value_t this_arg, /**< this ar
* See also:
* ECMA-262 v5, 15.9.5.34
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_date_prototype_set_hours (ecma_value_t this_arg, /**< this argument */
const ecma_value_t args[], /**< arguments list */
ecma_length_t args_number) /**< number of arguments */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
/* 1. */
ECMA_TRY_CATCH (this_time_value, ecma_builtin_date_prototype_get_time (this_arg), ret_value);
@@ -719,7 +719,7 @@ ecma_builtin_date_prototype_set_hours (ecma_value_t this_arg, /**< this argument
ECMA_OP_TO_NUMBER_FINALIZE (hour);
}
if (ecma_is_completion_value_empty (ret_value))
if (ecma_is_value_empty (ret_value))
{
/* 6-9. */
ret_value = ecma_date_set_internal_property (this_arg,
@@ -738,15 +738,15 @@ ecma_builtin_date_prototype_set_hours (ecma_value_t this_arg, /**< this argument
* See also:
* ECMA-262 v5, 15.9.5.35
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_date_prototype_set_utc_hours (ecma_value_t this_arg, /**< this argument */
const ecma_value_t args[], /**< arguments list */
ecma_length_t args_number) /**< number of arguments */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
/* 1. */
ECMA_TRY_CATCH (this_time_value, ecma_builtin_date_prototype_get_time (this_arg), ret_value);
@@ -788,7 +788,7 @@ ecma_builtin_date_prototype_set_utc_hours (ecma_value_t this_arg, /**< this argu
ECMA_OP_TO_NUMBER_FINALIZE (hour);
}
if (ecma_is_completion_value_empty (ret_value))
if (ecma_is_value_empty (ret_value))
{
/* 6-9. */
ret_value = ecma_date_set_internal_property (this_arg,
@@ -807,14 +807,14 @@ ecma_builtin_date_prototype_set_utc_hours (ecma_value_t this_arg, /**< this argu
* See also:
* ECMA-262 v5, 15.9.5.36
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_date_prototype_set_date (ecma_value_t this_arg, /**< this argument */
ecma_value_t date) /**< date */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
/* 1. */
ECMA_TRY_CATCH (this_time_value, ecma_builtin_date_prototype_get_time (this_arg), ret_value);
@@ -843,14 +843,14 @@ ecma_builtin_date_prototype_set_date (ecma_value_t this_arg, /**< this argument
* See also:
* ECMA-262 v5, 15.9.5.37
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_date_prototype_set_utc_date (ecma_value_t this_arg, /**< this argument */
ecma_value_t date) /**< date */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
/* 1. */
ECMA_TRY_CATCH (this_time_value, ecma_builtin_date_prototype_get_time (this_arg), ret_value);
@@ -879,15 +879,15 @@ ecma_builtin_date_prototype_set_utc_date (ecma_value_t this_arg, /**< this argum
* See also:
* ECMA-262 v5, 15.9.5.38
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_date_prototype_set_month (ecma_value_t this_arg, /**< this argument */
ecma_value_t month, /**< month */
ecma_value_t date) /**< date */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
/* 1. */
ECMA_TRY_CATCH (this_time_value, ecma_builtin_date_prototype_get_time (this_arg), ret_value);
@@ -923,15 +923,15 @@ ecma_builtin_date_prototype_set_month (ecma_value_t this_arg, /**< this argument
* See also:
* ECMA-262 v5, 15.9.5.39
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_date_prototype_set_utc_month (ecma_value_t this_arg, /**< this argument */
ecma_value_t month, /**< month */
ecma_value_t date) /**< date */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
/* 1. */
ECMA_TRY_CATCH (this_time_value, ecma_builtin_date_prototype_get_time (this_arg), ret_value);
@@ -967,15 +967,15 @@ ecma_builtin_date_prototype_set_utc_month (ecma_value_t this_arg, /**< this argu
* See also:
* ECMA-262 v5, 15.9.5.40
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_date_prototype_set_full_year (ecma_value_t this_arg, /**< this argument */
const ecma_value_t args[], /**< arguments list */
ecma_length_t args_number) /**< number of arguments */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
/* 1. */
ECMA_TRY_CATCH (this_time_value, ecma_builtin_date_prototype_get_time (this_arg), ret_value);
@@ -1012,7 +1012,7 @@ ecma_builtin_date_prototype_set_full_year (ecma_value_t this_arg, /**< this argu
ECMA_OP_TO_NUMBER_FINALIZE (year);
}
if (ecma_is_completion_value_empty (ret_value))
if (ecma_is_value_empty (ret_value))
{
/* 5-8. */
ret_value = ecma_date_set_internal_property (this_arg,
@@ -1031,15 +1031,15 @@ ecma_builtin_date_prototype_set_full_year (ecma_value_t this_arg, /**< this argu
* See also:
* ECMA-262 v5, 15.9.5.41
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_date_prototype_set_utc_full_year (ecma_value_t this_arg, /**< this argument */
const ecma_value_t args[], /**< arguments list */
ecma_length_t args_number) /**< number of arguments */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
/* 1. */
ECMA_TRY_CATCH (this_time_value, ecma_builtin_date_prototype_get_time (this_arg), ret_value);
@@ -1076,7 +1076,7 @@ ecma_builtin_date_prototype_set_utc_full_year (ecma_value_t this_arg, /**< this
ECMA_OP_TO_NUMBER_FINALIZE (year);
}
if (ecma_is_completion_value_empty (ret_value))
if (ecma_is_value_empty (ret_value))
{
/* 5-8. */
ret_value = ecma_date_set_internal_property (this_arg,
@@ -1095,13 +1095,13 @@ ecma_builtin_date_prototype_set_utc_full_year (ecma_value_t this_arg, /**< this
* See also:
* ECMA-262 v5, 15.9.5.42
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_date_prototype_to_utc_string (ecma_value_t this_arg) /**< this argument */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
ECMA_TRY_CATCH (prim_value,
ecma_date_get_primitive_value (this_arg),
@@ -1112,7 +1112,7 @@ ecma_builtin_date_prototype_to_utc_string (ecma_value_t this_arg) /**< this argu
if (ecma_number_is_nan (*prim_num_p))
{
ecma_string_t *magic_str_p = ecma_get_magic_string (LIT_MAGIC_STRING_INVALID_DATE_UL);
ret_value = ecma_make_normal_completion_value (ecma_make_string_value (magic_str_p));
ret_value = ecma_make_string_value (magic_str_p);
}
else
{
@@ -1130,13 +1130,13 @@ ecma_builtin_date_prototype_to_utc_string (ecma_value_t this_arg) /**< this argu
* See also:
* ECMA-262 v5, 15.9.5.43
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_date_prototype_to_iso_string (ecma_value_t this_arg) /**< this argument */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
ECMA_TRY_CATCH (prim_value,
ecma_date_get_primitive_value (this_arg),
@@ -1146,7 +1146,7 @@ ecma_builtin_date_prototype_to_iso_string (ecma_value_t this_arg) /**< this argu
if (ecma_number_is_nan (*prim_num_p) || ecma_number_is_infinity (*prim_num_p))
{
ret_value = ecma_make_throw_obj_completion_value (ecma_new_standard_error (ECMA_ERROR_RANGE));
ret_value = ecma_raise_range_error ("");
}
else
{
@@ -1164,14 +1164,14 @@ ecma_builtin_date_prototype_to_iso_string (ecma_value_t this_arg) /**< this argu
* See also:
* ECMA-262 v5, 15.9.5.44
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_date_prototype_to_json (ecma_value_t this_arg, /**< this argument */
ecma_value_t arg __attr_unused___) /**< key */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
/* 1. */
ECMA_TRY_CATCH (obj,
@@ -1194,7 +1194,7 @@ ecma_builtin_date_prototype_to_json (ecma_value_t this_arg, /**< this argument *
}
}
if (ecma_is_completion_value_empty (ret_value))
if (ecma_is_value_empty (ret_value))
{
ecma_string_t *to_iso_str_p = ecma_get_magic_string (LIT_MAGIC_STRING_TO_ISO_STRING_UL);
ecma_object_t *value_obj_p = ecma_get_object_from_value (obj);
@@ -1207,7 +1207,7 @@ ecma_builtin_date_prototype_to_json (ecma_value_t this_arg, /**< this argument *
/* 5. */
if (!ecma_op_is_callable (to_iso))
{
ret_value = ecma_make_throw_obj_completion_value (ecma_new_standard_error (ECMA_ERROR_TYPE));
ret_value = ecma_raise_type_error ("");
}
/* 6. */
else
@@ -1235,13 +1235,13 @@ ecma_builtin_date_prototype_to_json (ecma_value_t this_arg, /**< this argument *
* See also:
* ECMA-262 v5, AnnexB.B.2.4
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_date_prototype_get_year (ecma_value_t this_arg) /**< this argument */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
/* 1. */
ECMA_TRY_CATCH (value, ecma_builtin_date_prototype_get_time (this_arg), ret_value);
@@ -1250,14 +1250,14 @@ ecma_builtin_date_prototype_get_year (ecma_value_t this_arg) /**< this argument
if (ecma_number_is_nan (*this_num_p))
{
ecma_string_t *nan_str_p = ecma_get_magic_string (LIT_MAGIC_STRING_NAN);
ret_value = ecma_make_normal_completion_value (ecma_make_string_value (nan_str_p));
ret_value = ecma_make_string_value (nan_str_p);
}
else
{
/* 3. */
ecma_number_t *ret_num_p = ecma_alloc_number ();
*ret_num_p = ecma_date_year_from_time (ecma_date_local_time (*this_num_p)) - 1900;
ret_value = ecma_make_normal_completion_value (ecma_make_number_value (ret_num_p));
ret_value = ecma_make_number_value (ret_num_p);
}
ECMA_FINALIZE (value);
@@ -1270,14 +1270,14 @@ ecma_builtin_date_prototype_get_year (ecma_value_t this_arg) /**< this argument
* See also:
* ECMA-262 v5, AnnexB.B.2.5
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_date_prototype_set_year (ecma_value_t this_arg, /**< this argument */
ecma_value_t year) /**< year argument */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
/* 1. */
ECMA_TRY_CATCH (this_time_value, ecma_builtin_date_prototype_get_time (this_arg), ret_value);
@@ -1309,7 +1309,7 @@ ecma_builtin_date_prototype_set_year (ecma_value_t this_arg, /**< this argument
ECMA_OP_TO_NUMBER_FINALIZE (year_value);
if (ecma_is_completion_value_empty (ret_value))
if (ecma_is_value_empty (ret_value))
{
/* 5-8. */
ecma_number_t m = ecma_date_month_from_time (t);
@@ -1,5 +1,5 @@
/* Copyright 2015 Samsung Electronics Co., Ltd.
* Copyright 2015 University of Szeged.
/* Copyright 2015-2016 Samsung Electronics Co., Ltd.
* Copyright 2015-2016 University of Szeged.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -75,11 +75,11 @@ ecma_date_parse_date_chars (lit_utf8_byte_t **str_p, /**< pointer to the cesu8 s
*
* @return result of MakeDate(MakeDay(yr, m, dt), MakeTime(h, min, s, milli))
*/
static ecma_completion_value_t
static ecma_value_t
ecma_date_construct_helper (const ecma_value_t *args, /**< arguments passed to the Date constructor */
ecma_length_t args_len) /**< number of arguments */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
ecma_number_t *prim_value_p = ecma_alloc_number ();
*prim_value_p = ecma_number_make_nan ();
@@ -95,7 +95,7 @@ ecma_date_construct_helper (const ecma_value_t *args, /**< arguments passed to t
ecma_number_t milliseconds = ECMA_NUMBER_ZERO;
/* 3. */
if (args_len >= 3 && ecma_is_completion_value_empty (ret_value))
if (args_len >= 3 && ecma_is_value_empty (ret_value))
{
ECMA_TRY_CATCH (date_value, ecma_op_to_number (args[2]), ret_value);
date = *ecma_get_number_from_value (date_value);
@@ -103,7 +103,7 @@ ecma_date_construct_helper (const ecma_value_t *args, /**< arguments passed to t
}
/* 4. */
if (args_len >= 4 && ecma_is_completion_value_empty (ret_value))
if (args_len >= 4 && ecma_is_value_empty (ret_value))
{
ECMA_TRY_CATCH (hours_value, ecma_op_to_number (args[3]), ret_value);
hours = *ecma_get_number_from_value (hours_value);
@@ -111,7 +111,7 @@ ecma_date_construct_helper (const ecma_value_t *args, /**< arguments passed to t
}
/* 5. */
if (args_len >= 5 && ecma_is_completion_value_empty (ret_value))
if (args_len >= 5 && ecma_is_value_empty (ret_value))
{
ECMA_TRY_CATCH (minutes_value, ecma_op_to_number (args[4]), ret_value);
minutes = *ecma_get_number_from_value (minutes_value);
@@ -119,7 +119,7 @@ ecma_date_construct_helper (const ecma_value_t *args, /**< arguments passed to t
}
/* 6. */
if (args_len >= 6 && ecma_is_completion_value_empty (ret_value))
if (args_len >= 6 && ecma_is_value_empty (ret_value))
{
ECMA_TRY_CATCH (seconds_value, ecma_op_to_number (args[5]), ret_value);
seconds = *ecma_get_number_from_value (seconds_value);
@@ -127,14 +127,14 @@ ecma_date_construct_helper (const ecma_value_t *args, /**< arguments passed to t
}
/* 7. */
if (args_len >= 7 && ecma_is_completion_value_empty (ret_value))
if (args_len >= 7 && ecma_is_value_empty (ret_value))
{
ECMA_TRY_CATCH (milliseconds_value, ecma_op_to_number (args[6]), ret_value);
milliseconds = *ecma_get_number_from_value (milliseconds_value);
ECMA_FINALIZE (milliseconds_value);
}
if (ecma_is_completion_value_empty (ret_value))
if (ecma_is_value_empty (ret_value))
{
if (!ecma_number_is_nan (year) && !ecma_number_is_infinity (year))
{
@@ -163,9 +163,9 @@ ecma_date_construct_helper (const ecma_value_t *args, /**< arguments passed to t
ECMA_FINALIZE (month_value);
ECMA_FINALIZE (year_value);
if (ecma_is_completion_value_empty (ret_value))
if (ecma_is_value_empty (ret_value))
{
ret_value = ecma_make_normal_completion_value (ecma_make_number_value (prim_value_p));
ret_value = ecma_make_number_value (prim_value_p);
}
else
{
@@ -182,14 +182,14 @@ ecma_date_construct_helper (const ecma_value_t *args, /**< arguments passed to t
* ECMA-262 v5, 15.9.4.2
* ECMA-262 v5, 15.9.1.15
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_date_parse (ecma_value_t this_arg __attr_unused___, /**< this argument */
ecma_value_t arg) /**< string */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
ecma_number_t *date_num_p = ecma_alloc_number ();
*date_num_p = ecma_number_make_nan ();
@@ -389,7 +389,7 @@ ecma_builtin_date_parse (ecma_value_t this_arg __attr_unused___, /**< this argum
}
}
ret_value = ecma_make_normal_completion_value (ecma_make_number_value (date_num_p));
ret_value = ecma_make_number_value (date_num_p);
MEM_FINALIZE_LOCAL_ARRAY (date_start_p);
ECMA_FINALIZE (date_str_value);
@@ -403,15 +403,15 @@ ecma_builtin_date_parse (ecma_value_t this_arg __attr_unused___, /**< this argum
* See also:
* ECMA-262 v5, 15.9.4.3
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_date_utc (ecma_value_t this_arg __attr_unused___, /**< this argument */
const ecma_value_t args[], /**< arguments list */
ecma_length_t args_number) /**< number of arguments */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
if (args_number < 2)
{
@@ -421,7 +421,7 @@ ecma_builtin_date_utc (ecma_value_t this_arg __attr_unused___, /**< this argumen
*/
ecma_number_t *nan_p = ecma_alloc_number ();
*nan_p = ecma_number_make_nan ();
return ecma_make_normal_completion_value (ecma_make_number_value (nan_p));
return ecma_make_number_value (nan_p);
}
ECMA_TRY_CATCH (time_value, ecma_date_construct_helper (args, args_number), ret_value);
@@ -429,7 +429,7 @@ ecma_builtin_date_utc (ecma_value_t this_arg __attr_unused___, /**< this argumen
ecma_number_t *time_p = ecma_get_number_from_value (time_value);
ecma_number_t *time_clip_p = ecma_alloc_number ();
*time_clip_p = ecma_date_time_clip (*time_p);
ret_value = ecma_make_normal_completion_value (ecma_make_number_value (time_clip_p));
ret_value = ecma_make_number_value (time_clip_p);
ECMA_FINALIZE (time_value);
@@ -442,10 +442,10 @@ ecma_builtin_date_utc (ecma_value_t this_arg __attr_unused___, /**< this argumen
* See also:
* ECMA-262 v5, 15.9.4.4
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_date_now (ecma_value_t this_arg __attr_unused___) /**< this argument */
{
/*
@@ -455,7 +455,7 @@ ecma_builtin_date_now (ecma_value_t this_arg __attr_unused___) /**< this argumen
*/
ecma_number_t *now_num_p = ecma_alloc_number ();
*now_num_p = ECMA_NUMBER_ZERO;
return ecma_make_normal_completion_value (ecma_make_number_value (now_num_p));
return ecma_make_number_value (now_num_p);
} /* ecma_builtin_date_now */
/**
@@ -464,13 +464,13 @@ ecma_builtin_date_now (ecma_value_t this_arg __attr_unused___) /**< this argumen
* See also:
* ECMA-262 v5, 15.9.2.1
*
* @return completion-value
* @return ecma value
*/
ecma_completion_value_t
ecma_value_t
ecma_builtin_date_dispatch_call (const ecma_value_t *arguments_list_p __attr_unused___, /**< arguments list */
ecma_length_t arguments_list_len __attr_unused___) /**< number of arguments */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
ECMA_TRY_CATCH (now_val,
ecma_builtin_date_now (ecma_make_simple_value (ECMA_SIMPLE_VALUE_UNDEFINED)),
@@ -489,13 +489,13 @@ ecma_builtin_date_dispatch_call (const ecma_value_t *arguments_list_p __attr_unu
* See also:
* ECMA-262 v5, 15.9.3.1
*
* @return completion-value
* @return ecma value
*/
ecma_completion_value_t
ecma_value_t
ecma_builtin_date_dispatch_construct (const ecma_value_t *arguments_list_p, /**< arguments list */
ecma_length_t arguments_list_len) /**< number of arguments */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
ecma_number_t *prim_value_num_p = NULL;
ecma_object_t *prototype_obj_p = ecma_builtin_get (ECMA_BUILTIN_ID_DATE_PROTOTYPE);
@@ -562,7 +562,7 @@ ecma_builtin_date_dispatch_construct (const ecma_value_t *arguments_list_p, /**<
*prim_value_num_p = ecma_number_make_nan ();
}
if (ecma_is_completion_value_empty (ret_value))
if (ecma_is_value_empty (ret_value))
{
if (!ecma_number_is_nan (*prim_value_num_p) && ecma_number_is_infinity (*prim_value_num_p))
{
@@ -577,11 +577,11 @@ ecma_builtin_date_dispatch_construct (const ecma_value_t *arguments_list_p, /**<
ECMA_INTERNAL_PROPERTY_PRIMITIVE_NUMBER_VALUE);
ECMA_SET_POINTER (prim_value_prop_p->u.internal_property.value, prim_value_num_p);
ret_value = ecma_make_normal_completion_value (ecma_make_object_value (obj_p));
ret_value = ecma_make_object_value (obj_p);
}
else
{
JERRY_ASSERT (ecma_is_completion_value_throw (ret_value));
JERRY_ASSERT (ecma_is_value_error (ret_value));
ecma_deref_object (obj_p);
}
@@ -51,18 +51,18 @@
* See also:
* ECMA-262 v5, 15.11.4.4
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_error_prototype_object_to_string (ecma_value_t this_arg) /**< this argument */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
// 2.
if (!ecma_is_value_object (this_arg))
{
ret_value = ecma_make_throw_obj_completion_value (ecma_new_standard_error (ECMA_ERROR_TYPE));
ret_value = ecma_raise_type_error ("");
}
else
{
@@ -73,22 +73,22 @@ ecma_builtin_error_prototype_object_to_string (ecma_value_t this_arg) /**< this
ecma_op_object_get (obj_p, name_magic_string_p),
ret_value);
ecma_completion_value_t name_to_str_completion;
ecma_value_t name_to_str_completion;
if (ecma_is_value_undefined (name_get_ret_value))
{
ecma_string_t *error_magic_string_p = ecma_get_magic_string (LIT_MAGIC_STRING_ERROR_UL);
name_to_str_completion = ecma_make_normal_completion_value (ecma_make_string_value (error_magic_string_p));
name_to_str_completion = ecma_make_string_value (error_magic_string_p);
}
else
{
name_to_str_completion = ecma_op_to_string (name_get_ret_value);
}
if (unlikely (!ecma_is_completion_value_normal (name_to_str_completion)))
if (unlikely (ecma_is_value_error (name_to_str_completion)))
{
ret_value = ecma_copy_completion_value (name_to_str_completion);
ret_value = ecma_copy_value (name_to_str_completion, true);
}
else
{
@@ -98,27 +98,27 @@ ecma_builtin_error_prototype_object_to_string (ecma_value_t this_arg) /**< this
ecma_op_object_get (obj_p, message_magic_string_p),
ret_value);
ecma_completion_value_t msg_to_str_completion;
ecma_value_t msg_to_str_completion;
if (ecma_is_value_undefined (msg_get_ret_value))
{
ecma_string_t *empty_magic_string_p = ecma_get_magic_string (LIT_MAGIC_STRING__EMPTY);
msg_to_str_completion = ecma_make_normal_completion_value (ecma_make_string_value (empty_magic_string_p));
msg_to_str_completion = ecma_make_string_value (empty_magic_string_p);
}
else
{
msg_to_str_completion = ecma_op_to_string (msg_get_ret_value);
}
if (unlikely (!ecma_is_completion_value_normal (msg_to_str_completion)))
if (unlikely (ecma_is_value_error (msg_to_str_completion)))
{
ret_value = ecma_copy_completion_value (msg_to_str_completion);
ret_value = ecma_copy_value (msg_to_str_completion, true);
}
else
{
ecma_string_t *name_string_p = ecma_get_string_from_completion_value (name_to_str_completion);
ecma_string_t *msg_string_p = ecma_get_string_from_completion_value (msg_to_str_completion);
ecma_string_t *name_string_p = ecma_get_string_from_value (name_to_str_completion);
ecma_string_t *msg_string_p = ecma_get_string_from_value (msg_to_str_completion);
ecma_string_t *ret_str_p;
@@ -173,17 +173,17 @@ ecma_builtin_error_prototype_object_to_string (ecma_value_t this_arg) /**< this
MEM_FINALIZE_LOCAL_ARRAY (ret_str_buffer);
}
ret_value = ecma_make_normal_completion_value (ecma_make_string_value (ret_str_p));
ret_value = ecma_make_string_value (ret_str_p);
}
ecma_free_completion_value (msg_to_str_completion);
ecma_free_value (msg_to_str_completion);
ECMA_FINALIZE (msg_get_ret_value);
ecma_deref_ecma_string (message_magic_string_p);
}
ecma_free_completion_value (name_to_str_completion);
ecma_free_value (name_to_str_completion);
ECMA_FINALIZE (name_get_ret_value);
@@ -46,9 +46,9 @@
/**
* Handle calling [[Call]] of built-in Error object
*
* @return completion-value
* @return ecma value
*/
ecma_completion_value_t
ecma_value_t
ecma_builtin_error_dispatch_call (const ecma_value_t *arguments_list_p, /**< arguments list */
ecma_length_t arguments_list_len) /**< number of arguments */
{
@@ -57,7 +57,7 @@ ecma_builtin_error_dispatch_call (const ecma_value_t *arguments_list_p, /**< arg
if (arguments_list_len != 0
&& !ecma_is_value_undefined (arguments_list_p[0]))
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
ECMA_TRY_CATCH (msg_str_value,
ecma_op_to_string (arguments_list_p[0]),
@@ -66,7 +66,7 @@ ecma_builtin_error_dispatch_call (const ecma_value_t *arguments_list_p, /**< arg
ecma_string_t *message_string_p = ecma_get_string_from_value (msg_str_value);
ecma_object_t *new_error_object_p = ecma_new_standard_error_with_message (ECMA_ERROR_COMMON,
message_string_p);
ret_value = ecma_make_normal_completion_value (ecma_make_object_value (new_error_object_p));
ret_value = ecma_make_object_value (new_error_object_p);
ECMA_FINALIZE (msg_str_value);
@@ -76,16 +76,16 @@ ecma_builtin_error_dispatch_call (const ecma_value_t *arguments_list_p, /**< arg
{
ecma_object_t *new_error_object_p = ecma_new_standard_error (ECMA_ERROR_COMMON);
return ecma_make_normal_completion_value (ecma_make_object_value (new_error_object_p));
return ecma_make_object_value (new_error_object_p);
}
} /* ecma_builtin_error_dispatch_call */
/**
* Handle calling [[Construct]] of built-in Error object
*
* @return completion-value
* @return ecma value
*/
ecma_completion_value_t
ecma_value_t
ecma_builtin_error_dispatch_construct (const ecma_value_t *arguments_list_p, /**< arguments list */
ecma_length_t arguments_list_len) /**< number of arguments */
{
@@ -46,9 +46,9 @@
/**
* Handle calling [[Call]] of built-in EvalError object
*
* @return completion-value
* @return ecma value
*/
ecma_completion_value_t
ecma_value_t
ecma_builtin_eval_error_dispatch_call (const ecma_value_t *arguments_list_p, /**< arguments list */
ecma_length_t arguments_list_len) /**< number of arguments */
{
@@ -57,7 +57,7 @@ ecma_builtin_eval_error_dispatch_call (const ecma_value_t *arguments_list_p, /**
if (arguments_list_len != 0
&& !ecma_is_value_undefined (arguments_list_p[0]))
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
ECMA_TRY_CATCH (msg_str_value,
ecma_op_to_string (arguments_list_p[0]),
@@ -66,7 +66,7 @@ ecma_builtin_eval_error_dispatch_call (const ecma_value_t *arguments_list_p, /**
ecma_string_t *message_string_p = ecma_get_string_from_value (msg_str_value);
ecma_object_t *new_error_object_p = ecma_new_standard_error_with_message (ECMA_ERROR_EVAL,
message_string_p);
ret_value = ecma_make_normal_completion_value (ecma_make_object_value (new_error_object_p));
ret_value = ecma_make_object_value (new_error_object_p);
ECMA_FINALIZE (msg_str_value);
@@ -76,16 +76,16 @@ ecma_builtin_eval_error_dispatch_call (const ecma_value_t *arguments_list_p, /**
{
ecma_object_t *new_error_object_p = ecma_new_standard_error (ECMA_ERROR_EVAL);
return ecma_make_normal_completion_value (ecma_make_object_value (new_error_object_p));
return ecma_make_object_value (new_error_object_p);
}
} /* ecma_builtin_eval_error_dispatch_call */
/**
* Handle calling [[Construct]] of built-in EvalError object
*
* @return completion-value
* @return ecma value
*/
ecma_completion_value_t
ecma_value_t
ecma_builtin_eval_error_dispatch_construct (const ecma_value_t *arguments_list_p, /**< arguments list */
ecma_length_t arguments_list_len) /**< number of arguments */
{
@@ -1,5 +1,5 @@
/* Copyright 2014-2015 Samsung Electronics Co., Ltd.
* Copyright 2015 University of Szeged.
* Copyright 2015-2016 University of Szeged.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -50,22 +50,22 @@
* See also:
* ECMA-262 v5, 15.3.4.2
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_function_prototype_object_to_string (ecma_value_t this_arg) /**< this argument */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
if (!ecma_op_is_callable (this_arg))
{
ret_value = ecma_make_throw_obj_completion_value (ecma_new_standard_error (ECMA_ERROR_TYPE));
ret_value = ecma_raise_type_error ("");
}
else
{
ecma_string_t *function_to_string_p = ecma_get_magic_string (LIT_MAGIC_STRING__FUNCTION_TO_STRING);
ret_value = ecma_make_normal_completion_value (ecma_make_string_value (function_to_string_p));
ret_value = ecma_make_string_value (function_to_string_p);
}
return ret_value;
} /* ecma_builtin_function_prototype_object_to_string */
@@ -76,20 +76,20 @@ ecma_builtin_function_prototype_object_to_string (ecma_value_t this_arg) /**< th
* See also:
* ECMA-262 v5, 15.3.4.3
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_function_prototype_object_apply (ecma_value_t this_arg, /**< this argument */
ecma_value_t arg1, /**< first argument */
ecma_value_t arg2) /**< second argument */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
/* 1. */
if (!ecma_op_is_callable (this_arg))
{
ret_value = ecma_make_throw_obj_completion_value (ecma_new_standard_error (ECMA_ERROR_TYPE));
ret_value = ecma_raise_type_error ("");
}
else
{
@@ -105,7 +105,7 @@ ecma_builtin_function_prototype_object_apply (ecma_value_t this_arg, /**< this a
/* 3. */
if (!ecma_is_value_object (arg2))
{
ret_value = ecma_make_throw_obj_completion_value (ecma_new_standard_error (ECMA_ERROR_TYPE));
ret_value = ecma_raise_type_error ("");
}
else
{
@@ -130,7 +130,7 @@ ecma_builtin_function_prototype_object_apply (ecma_value_t this_arg, /**< this a
/* 7. */
for (uint32_t index = 0;
index < length && ecma_is_completion_value_empty (ret_value);
index < length && ecma_is_value_empty (ret_value);
index++)
{
ecma_string_t *curr_idx_str_p = ecma_new_ecma_string_from_uint32 (index);
@@ -146,7 +146,7 @@ ecma_builtin_function_prototype_object_apply (ecma_value_t this_arg, /**< this a
ecma_deref_ecma_string (curr_idx_str_p);
}
if (ecma_is_completion_value_empty (ret_value))
if (ecma_is_value_empty (ret_value))
{
JERRY_ASSERT (last_index == length);
ret_value = ecma_op_function_call (func_obj_p,
@@ -157,7 +157,7 @@ ecma_builtin_function_prototype_object_apply (ecma_value_t this_arg, /**< this a
for (uint32_t index = 0; index < last_index; index++)
{
ecma_free_value (arguments_list_p[index], true);
ecma_free_value (arguments_list_p[index]);
}
MEM_FINALIZE_LOCAL_ARRAY (arguments_list_p);
@@ -178,17 +178,17 @@ ecma_builtin_function_prototype_object_apply (ecma_value_t this_arg, /**< this a
* See also:
* ECMA-262 v5, 15.3.4.4
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_function_prototype_object_call (ecma_value_t this_arg, /**< this argument */
const ecma_value_t *arguments_list_p, /**< list of arguments */
ecma_length_t arguments_number) /**< number of arguments */
{
if (!ecma_op_is_callable (this_arg))
{
return ecma_make_throw_obj_completion_value (ecma_new_standard_error (ECMA_ERROR_TYPE));
return ecma_raise_type_error ("");
}
else
{
@@ -218,20 +218,20 @@ ecma_builtin_function_prototype_object_call (ecma_value_t this_arg, /**< this ar
* See also:
* ECMA-262 v5, 15.3.4.5
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_function_prototype_object_bind (ecma_value_t this_arg, /**< this argument */
const ecma_value_t *arguments_list_p, /**< list of arguments */
ecma_length_t arguments_number) /**< number of arguments */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
/* 2. */
if (!ecma_op_is_callable (this_arg))
{
ret_value = ecma_make_throw_obj_completion_value (ecma_new_standard_error (ECMA_ERROR_TYPE));
ret_value = ecma_raise_type_error ("");
}
else
{
@@ -285,18 +285,15 @@ ecma_builtin_function_prototype_object_bind (ecma_value_t this_arg, /**< this ar
/* 15. */
if (ecma_object_get_class_name (this_arg_obj_p) == LIT_MAGIC_STRING_FUNCTION_UL)
{
ecma_completion_value_t get_len_completion = ecma_op_object_get (this_arg_obj_p,
magic_string_length_p);
JERRY_ASSERT (ecma_is_completion_value_normal (get_len_completion));
ecma_value_t len_value = ecma_get_completion_value_value (get_len_completion);
JERRY_ASSERT (ecma_is_value_number (len_value));
ecma_value_t get_len_value = ecma_op_object_get (this_arg_obj_p, magic_string_length_p);
JERRY_ASSERT (!ecma_is_value_error (get_len_value));
JERRY_ASSERT (ecma_is_value_number (get_len_value));
const ecma_length_t bound_arg_count = arg_count > 1 ? arg_count - 1 : 0;
/* 15.a */
*length_p = *ecma_get_number_from_value (len_value) - ecma_uint32_to_number (bound_arg_count);
ecma_free_completion_value (get_len_completion);
*length_p = *ecma_get_number_from_value (get_len_value) - ecma_uint32_to_number (bound_arg_count);
ecma_free_value (get_len_value);
/* 15.b */
if (ecma_number_is_negative (*length_p))
@@ -311,16 +308,15 @@ ecma_builtin_function_prototype_object_bind (ecma_value_t this_arg, /**< this ar
}
/* 17. */
ecma_completion_value_t completion = ecma_builtin_helper_def_prop (function_p,
magic_string_length_p,
ecma_make_number_value (length_p),
false, /* Writable */
false, /* Enumerable */
false, /* Configurable */
false); /* Failure handling */
ecma_value_t completion = ecma_builtin_helper_def_prop (function_p,
magic_string_length_p,
ecma_make_number_value (length_p),
false, /* Writable */
false, /* Enumerable */
false, /* Configurable */
false); /* Failure handling */
JERRY_ASSERT (ecma_is_completion_value_normal_true (completion)
|| ecma_is_completion_value_normal_false (completion));
JERRY_ASSERT (ecma_is_value_boolean (completion));
ecma_deref_ecma_string (magic_string_length_p);
ecma_dealloc_number (length_p);
@@ -349,8 +345,7 @@ ecma_builtin_function_prototype_object_bind (ecma_value_t this_arg, /**< this ar
&prop_desc,
false);
JERRY_ASSERT (ecma_is_completion_value_normal_true (completion)
|| ecma_is_completion_value_normal_false (completion));
JERRY_ASSERT (ecma_is_value_boolean (completion));
ecma_deref_ecma_string (magic_string_caller_p);
@@ -360,14 +355,13 @@ ecma_builtin_function_prototype_object_bind (ecma_value_t this_arg, /**< this ar
&prop_desc,
false);
JERRY_ASSERT (ecma_is_completion_value_normal_true (completion)
|| ecma_is_completion_value_normal_false (completion));
JERRY_ASSERT (ecma_is_value_boolean (completion));
ecma_deref_ecma_string (magic_string_arguments_p);
ecma_deref_object (thrower_p);
/* 22. */
ret_value = ecma_make_normal_completion_value (ecma_make_object_value (function_p));
ret_value = ecma_make_object_value (function_p);
}
return ret_value;
@@ -376,29 +370,29 @@ ecma_builtin_function_prototype_object_bind (ecma_value_t this_arg, /**< this ar
/**
* Handle calling [[Call]] of built-in Function.prototype object
*
* @return completion-value
* @return ecma value
*/
ecma_completion_value_t
ecma_value_t
ecma_builtin_function_prototype_dispatch_call (const ecma_value_t *arguments_list_p, /**< arguments list */
ecma_length_t arguments_list_len) /**< number of arguments */
{
JERRY_ASSERT (arguments_list_len == 0 || arguments_list_p != NULL);
return ecma_make_simple_completion_value (ECMA_SIMPLE_VALUE_UNDEFINED);
return ecma_make_simple_value (ECMA_SIMPLE_VALUE_UNDEFINED);
} /* ecma_builtin_function_prototype_dispatch_call */
/**
* Handle calling [[Construct]] of built-in Function.prototype object
*
* @return completion-value
* @return ecma value
*/
ecma_completion_value_t
ecma_value_t
ecma_builtin_function_prototype_dispatch_construct (const ecma_value_t *arguments_list_p, /**< arguments list */
ecma_length_t arguments_list_len) /**< number of arguments */
{
JERRY_ASSERT (arguments_list_len == 0 || arguments_list_p != NULL);
return ecma_make_throw_obj_completion_value (ecma_new_standard_error (ECMA_ERROR_TYPE));
return ecma_raise_type_error ("");
} /* ecma_builtin_function_prototype_dispatch_construct */
/**
@@ -44,9 +44,9 @@
/**
* Handle calling [[Call]] of built-in Function object
*
* @return completion-value
* @return ecma value
*/
ecma_completion_value_t
ecma_value_t
ecma_builtin_function_dispatch_call (const ecma_value_t *arguments_list_p, /**< arguments list */
ecma_length_t arguments_list_len) /**< number of arguments */
{
@@ -61,16 +61,16 @@ ecma_builtin_function_dispatch_call (const ecma_value_t *arguments_list_p, /**<
* Performs the operation described in ECMA 262 v5.1 15.3.2.1 steps 5.a-d
*
*
* @return completion value - concatenated arguments as a string.
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value - concatenated arguments as a string.
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_function_helper_get_function_expression (const ecma_value_t *arguments_list_p, /**< arguments list */
ecma_length_t arguments_list_len) /**< number of arguments */
{
JERRY_ASSERT (arguments_list_len == 0 || arguments_list_p != NULL);
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
ecma_string_t *left_parenthesis_str_p, *right_parenthesis_str_p;
ecma_string_t *left_brace_str_p, *right_brace_str_p;
@@ -99,7 +99,7 @@ ecma_builtin_function_helper_get_function_expression (const ecma_value_t *argume
expr_str_p = concated_str_p;
for (ecma_length_t idx = 0;
idx < number_of_function_args && ecma_is_completion_value_empty (ret_value);
idx < number_of_function_args && ecma_is_value_empty (ret_value);
idx++)
{
ECMA_TRY_CATCH (str_arg_value,
@@ -122,7 +122,7 @@ ecma_builtin_function_helper_get_function_expression (const ecma_value_t *argume
ECMA_FINALIZE (str_arg_value);
}
if (ecma_is_completion_value_empty (ret_value))
if (ecma_is_value_empty (ret_value))
{
concated_str_p = ecma_concat_ecma_strings (expr_str_p, right_parenthesis_str_p);
ecma_deref_ecma_string (expr_str_p);
@@ -164,9 +164,9 @@ ecma_builtin_function_helper_get_function_expression (const ecma_value_t *argume
ecma_deref_ecma_string (function_kw_str_p);
ecma_deref_ecma_string (empty_str_p);
if (ecma_is_completion_value_empty (ret_value))
if (ecma_is_value_empty (ret_value))
{
ret_value = ecma_make_normal_completion_value (ecma_make_string_value (expr_str_p));
ret_value = ecma_make_string_value (expr_str_p);
}
else
{
@@ -182,15 +182,15 @@ ecma_builtin_function_helper_get_function_expression (const ecma_value_t *argume
* See also:
* ECMA-262 v5, 15.3.
*
* @return completion-value
* @return ecma value
*/
ecma_completion_value_t
ecma_value_t
ecma_builtin_function_dispatch_construct (const ecma_value_t *arguments_list_p, /**< arguments list */
ecma_length_t arguments_list_len) /**< number of arguments */
{
JERRY_ASSERT (arguments_list_len == 0 || arguments_list_p != NULL);
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
ECMA_TRY_CATCH (arguments_value,
ecma_builtin_function_helper_get_function_expression (arguments_list_p,
@@ -1,5 +1,5 @@
/* Copyright 2014-2015 Samsung Electronics Co., Ltd.
* Copyright 2015 University of Szeged
* Copyright 2015-2016 University of Szeged
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -57,15 +57,15 @@
* are outputted as is, using "%c" format argument, and other code points are outputted as "\uhhll",
* where hh and ll are values of code point's high and low bytes, correspondingly.
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_global_object_print (ecma_value_t this_arg __attr_unused___, /**< this argument */
const ecma_value_t args[], /**< arguments list */
ecma_length_t args_number) /**< number of arguments */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
/*
* TODO:
@@ -73,7 +73,7 @@ ecma_builtin_global_object_print (ecma_value_t this_arg __attr_unused___, /**< t
*/
for (ecma_length_t arg_index = 0;
ecma_is_completion_value_empty (ret_value) && arg_index < args_number;
ecma_is_value_empty (ret_value) && arg_index < args_number;
arg_index++)
{
ECMA_TRY_CATCH (str_value,
@@ -133,9 +133,9 @@ ecma_builtin_global_object_print (ecma_value_t this_arg __attr_unused___, /**< t
printf ("\n");
if (ecma_is_completion_value_empty (ret_value))
if (ecma_is_value_empty (ret_value))
{
ret_value = ecma_make_normal_completion_value (ecma_make_simple_value (ECMA_SIMPLE_VALUE_UNDEFINED));
ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_UNDEFINED);
}
return ret_value;
@@ -147,14 +147,14 @@ ecma_builtin_global_object_print (ecma_value_t this_arg __attr_unused___, /**< t
* See also:
* ECMA-262 v5, 15.1.2.1
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_global_object_eval (ecma_value_t this_arg __attr_unused___, /**< this argument */
ecma_value_t x) /**< routine's first argument */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
bool is_direct_eval = vm_is_direct_eval_form_call ();
@@ -172,7 +172,7 @@ ecma_builtin_global_object_eval (ecma_value_t this_arg __attr_unused___, /**< th
if (!ecma_is_value_string (x))
{
/* step 1 */
ret_value = ecma_make_normal_completion_value (ecma_copy_value (x, true));
ret_value = ecma_copy_value (x, true);
}
else
{
@@ -191,15 +191,15 @@ ecma_builtin_global_object_eval (ecma_value_t this_arg __attr_unused___, /**< th
* See also:
* ECMA-262 v5, 15.1.2.2
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_global_object_parse_int (ecma_value_t this_arg __attr_unused___, /**< this argument */
ecma_value_t string, /**< routine's first argument */
ecma_value_t radix) /**< routine's second argument */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
/* 1. */
ECMA_TRY_CATCH (string_var, ecma_op_to_string (string), ret_value);
@@ -273,7 +273,7 @@ ecma_builtin_global_object_parse_int (ecma_value_t this_arg __attr_unused___, /*
{
ecma_number_t *ret_num_p = ecma_alloc_number ();
*ret_num_p = ecma_number_make_nan ();
ret_value = ecma_make_normal_completion_value (ecma_make_number_value (ret_num_p));
ret_value = ecma_make_number_value (ret_num_p);
}
/* 8.b */
else if (rad != 16)
@@ -287,7 +287,7 @@ ecma_builtin_global_object_parse_int (ecma_value_t this_arg __attr_unused___, /*
rad = 10;
}
if (ecma_is_completion_value_empty (ret_value))
if (ecma_is_value_empty (ret_value))
{
/* 10. */
if (strip_prefix)
@@ -341,11 +341,11 @@ ecma_builtin_global_object_parse_int (ecma_value_t this_arg __attr_unused___, /*
{
ecma_number_t *ret_num_p = ecma_alloc_number ();
*ret_num_p = ecma_number_make_nan ();
ret_value = ecma_make_normal_completion_value (ecma_make_number_value (ret_num_p));
ret_value = ecma_make_number_value (ret_num_p);
}
}
if (ecma_is_completion_value_empty (ret_value))
if (ecma_is_value_empty (ret_value))
{
ecma_number_t *value_p = ecma_alloc_number ();
*value_p = 0;
@@ -386,7 +386,7 @@ ecma_builtin_global_object_parse_int (ecma_value_t this_arg __attr_unused___, /*
*value_p *= (ecma_number_t) sign;
}
ret_value = ecma_make_normal_completion_value (ecma_make_number_value (value_p));
ret_value = ecma_make_number_value (value_p);
}
ECMA_OP_TO_NUMBER_FINALIZE (radix_num);
@@ -395,7 +395,7 @@ ecma_builtin_global_object_parse_int (ecma_value_t this_arg __attr_unused___, /*
{
ecma_number_t *ret_num_p = ecma_alloc_number ();
*ret_num_p = ecma_number_make_nan ();
ret_value = ecma_make_normal_completion_value (ecma_make_number_value (ret_num_p));
ret_value = ecma_make_number_value (ret_num_p);
}
MEM_FINALIZE_LOCAL_ARRAY (string_buff);
@@ -404,7 +404,7 @@ ecma_builtin_global_object_parse_int (ecma_value_t this_arg __attr_unused___, /*
{
ecma_number_t *ret_num_p = ecma_alloc_number ();
*ret_num_p = ecma_number_make_nan ();
ret_value = ecma_make_normal_completion_value (ecma_make_number_value (ret_num_p));
ret_value = ecma_make_number_value (ret_num_p);
}
ECMA_FINALIZE (string_var);
@@ -417,14 +417,14 @@ ecma_builtin_global_object_parse_int (ecma_value_t this_arg __attr_unused___, /*
* See also:
* ECMA-262 v5, 15.1.2.3
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_global_object_parse_float (ecma_value_t this_arg __attr_unused___, /**< this argument */
ecma_value_t string) /**< routine's first argument */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
/* 1. */
ECMA_TRY_CATCH (string_var, ecma_op_to_string (string), ret_value);
@@ -494,7 +494,7 @@ ecma_builtin_global_object_parse_float (ecma_value_t this_arg __attr_unused___,
{
/* String matched Infinity. */
*ret_num_p = ecma_number_make_infinity (sign);
ret_value = ecma_make_normal_completion_value (ecma_make_number_value (ret_num_p));
ret_value = ecma_make_number_value (ret_num_p);
break;
}
}
@@ -502,7 +502,7 @@ ecma_builtin_global_object_parse_float (ecma_value_t this_arg __attr_unused___,
/* Reset to starting position. */
str_curr_p = start_p;
if (ecma_is_completion_value_empty (ret_value) && str_curr_p < str_end_p)
if (ecma_is_value_empty (ret_value) && str_curr_p < str_end_p)
{
current = *str_curr_p;
@@ -606,7 +606,7 @@ ecma_builtin_global_object_parse_float (ecma_value_t this_arg __attr_unused___,
if (start_p == end_p)
{
*ret_num_p = ecma_number_make_nan ();
ret_value = ecma_make_normal_completion_value (ecma_make_number_value (ret_num_p));
ret_value = ecma_make_number_value (ret_num_p);
}
else
{
@@ -619,14 +619,14 @@ ecma_builtin_global_object_parse_float (ecma_value_t this_arg __attr_unused___,
*ret_num_p *= -1;
}
ret_value = ecma_make_normal_completion_value (ecma_make_number_value (ret_num_p));
ret_value = ecma_make_number_value (ret_num_p);
}
}
/* String ended after sign character, or was empty after removing leading whitespace. */
else if (ecma_is_completion_value_empty (ret_value))
else if (ecma_is_value_empty (ret_value))
{
*ret_num_p = ecma_number_make_nan ();
ret_value = ecma_make_normal_completion_value (ecma_make_number_value (ret_num_p));
ret_value = ecma_make_number_value (ret_num_p);
}
MEM_FINALIZE_LOCAL_ARRAY (string_buff);
}
@@ -635,7 +635,7 @@ ecma_builtin_global_object_parse_float (ecma_value_t this_arg __attr_unused___,
{
ecma_number_t *ret_num_p = ecma_alloc_number ();
*ret_num_p = ecma_number_make_nan ();
ret_value = ecma_make_normal_completion_value (ecma_make_number_value (ret_num_p));
ret_value = ecma_make_number_value (ret_num_p);
}
ECMA_FINALIZE (string_var);
@@ -649,21 +649,21 @@ ecma_builtin_global_object_parse_float (ecma_value_t this_arg __attr_unused___,
* See also:
* ECMA-262 v5, 15.1.2.4
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_global_object_is_nan (ecma_value_t this_arg __attr_unused___, /**< this argument */
ecma_value_t arg) /**< routine's first argument */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
ECMA_OP_TO_NUMBER_TRY_CATCH (arg_num, arg, ret_value);
bool is_nan = ecma_number_is_nan (arg_num);
ret_value = ecma_make_simple_completion_value (is_nan ? ECMA_SIMPLE_VALUE_TRUE
: ECMA_SIMPLE_VALUE_FALSE);
ret_value = ecma_make_simple_value (is_nan ? ECMA_SIMPLE_VALUE_TRUE
: ECMA_SIMPLE_VALUE_FALSE);
ECMA_OP_TO_NUMBER_FINALIZE (arg_num);
@@ -676,22 +676,22 @@ ecma_builtin_global_object_is_nan (ecma_value_t this_arg __attr_unused___, /**<
* See also:
* ECMA-262 v5, 15.1.2.5
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_global_object_is_finite (ecma_value_t this_arg __attr_unused___, /**< this argument */
ecma_value_t arg) /**< routine's first argument */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
ECMA_OP_TO_NUMBER_TRY_CATCH (arg_num, arg, ret_value);
bool is_finite = !(ecma_number_is_nan (arg_num)
|| ecma_number_is_infinity (arg_num));
ret_value = ecma_make_simple_completion_value (is_finite ? ECMA_SIMPLE_VALUE_TRUE
: ECMA_SIMPLE_VALUE_FALSE);
ret_value = ecma_make_simple_value (is_finite ? ECMA_SIMPLE_VALUE_TRUE
: ECMA_SIMPLE_VALUE_FALSE);
ECMA_OP_TO_NUMBER_FINALIZE (arg_num);
@@ -708,7 +708,7 @@ ecma_builtin_global_object_character_is_in (uint32_t character, /**< character *
const uint8_t *bitset) /**< character set */
{
JERRY_ASSERT (character < 128);
return (bitset[character >> 3] & (1 << (character & 0x7))) != 0;
return (bitset[character >> 3] & (1u << (character & 0x7))) != 0;
} /* ecma_builtin_global_object_character_is_in */
/*
@@ -748,14 +748,14 @@ static const uint8_t unescaped_uri_component_set[16] =
/**
* Helper function to decode URI.
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_global_object_decode_uri_helper (ecma_value_t uri __attr_unused___, /**< uri argument */
const uint8_t *reserved_uri_bitset) /**< reserved characters bitset */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
ECMA_TRY_CATCH (string,
ecma_op_to_string (uri),
@@ -804,7 +804,7 @@ ecma_builtin_global_object_decode_uri_helper (ecma_value_t uri __attr_unused___,
if (!lit_read_code_point_from_hex (input_char_p + 1, 2, &decoded_byte))
{
ret_value = ecma_make_throw_obj_completion_value (ecma_new_standard_error (ECMA_ERROR_URI));
ret_value = ecma_raise_uri_error ("");
break;
}
@@ -836,7 +836,7 @@ ecma_builtin_global_object_decode_uri_helper (ecma_value_t uri __attr_unused___,
}
}
if (ecma_is_completion_value_empty (ret_value))
if (ecma_is_value_empty (ret_value))
{
MEM_DEFINE_LOCAL_ARRAY (output_start_p,
output_size,
@@ -860,7 +860,7 @@ ecma_builtin_global_object_decode_uri_helper (ecma_value_t uri __attr_unused___,
if (!lit_read_code_point_from_hex (input_char_p + 1, 2, &decoded_byte))
{
ret_value = ecma_make_throw_obj_completion_value (ecma_new_standard_error (ECMA_ERROR_URI));
ret_value = ecma_raise_uri_error ("");
break;
}
@@ -898,7 +898,7 @@ ecma_builtin_global_object_decode_uri_helper (ecma_value_t uri __attr_unused___,
}
else
{
ret_value = ecma_make_throw_obj_completion_value (ecma_new_standard_error (ECMA_ERROR_URI));
ret_value = ecma_raise_uri_error ("");
break;
}
@@ -932,7 +932,7 @@ ecma_builtin_global_object_decode_uri_helper (ecma_value_t uri __attr_unused___,
if (!is_valid
|| !lit_is_utf8_string_valid (octets, bytes_count))
{
ret_value = ecma_make_throw_obj_completion_value (ecma_new_standard_error (ECMA_ERROR_URI));
ret_value = ecma_raise_uri_error ("");
break;
}
@@ -942,7 +942,7 @@ ecma_builtin_global_object_decode_uri_helper (ecma_value_t uri __attr_unused___,
if (lit_is_code_point_utf16_high_surrogate (cp)
|| lit_is_code_point_utf16_low_surrogate (cp))
{
ret_value = ecma_make_throw_obj_completion_value (ecma_new_standard_error (ECMA_ERROR_URI));
ret_value = ecma_raise_uri_error ("");
break;
}
@@ -950,18 +950,18 @@ ecma_builtin_global_object_decode_uri_helper (ecma_value_t uri __attr_unused___,
}
}
if (ecma_is_completion_value_empty (ret_value))
if (ecma_is_value_empty (ret_value))
{
JERRY_ASSERT (output_start_p + output_size == output_char_p);
if (lit_is_cesu8_string_valid (output_start_p, output_size))
{
ecma_string_t *output_string_p = ecma_new_ecma_string_from_utf8 (output_start_p, output_size);
ret_value = ecma_make_normal_completion_value (ecma_make_string_value (output_string_p));
ret_value = ecma_make_string_value (output_string_p);
}
else
{
ret_value = ecma_make_throw_obj_completion_value (ecma_new_standard_error (ECMA_ERROR_URI));
ret_value = ecma_raise_uri_error ("");
}
}
@@ -980,10 +980,10 @@ ecma_builtin_global_object_decode_uri_helper (ecma_value_t uri __attr_unused___,
* See also:
* ECMA-262 v5, 15.1.3.1
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_global_object_decode_uri (ecma_value_t this_arg __attr_unused___, /**< this argument */
ecma_value_t encoded_uri) /**< routine's first argument */
{
@@ -996,10 +996,10 @@ ecma_builtin_global_object_decode_uri (ecma_value_t this_arg __attr_unused___, /
* See also:
* ECMA-262 v5, 15.1.3.2
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_global_object_decode_uri_component (ecma_value_t this_arg __attr_unused___, /**< this argument */
ecma_value_t encoded_uri_component) /**< routine's
* first argument */
@@ -1026,14 +1026,14 @@ ecma_builtin_global_object_byte_to_hex (lit_utf8_byte_t *dest_p, /**< destinatio
/**
* Helper function to encode URI.
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_global_object_encode_uri_helper (ecma_value_t uri, /**< uri argument */
const uint8_t *unescaped_uri_bitset_p) /**< unescaped bitset */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
ECMA_TRY_CATCH (string,
ecma_op_to_string (uri),
@@ -1073,7 +1073,7 @@ ecma_builtin_global_object_encode_uri_helper (ecma_value_t uri, /**< uri argumen
if (lit_is_code_point_utf16_low_surrogate (ch))
{
ret_value = ecma_make_throw_obj_completion_value (ecma_new_standard_error (ECMA_ERROR_URI));
ret_value = ecma_raise_uri_error ("");
break;
}
@@ -1083,7 +1083,7 @@ ecma_builtin_global_object_encode_uri_helper (ecma_value_t uri, /**< uri argumen
{
if (input_char_p == input_end_p)
{
ret_value = ecma_make_throw_obj_completion_value (ecma_new_standard_error (ECMA_ERROR_URI));
ret_value = ecma_raise_uri_error ("");
break;
}
@@ -1097,7 +1097,7 @@ ecma_builtin_global_object_encode_uri_helper (ecma_value_t uri, /**< uri argumen
}
else
{
ret_value = ecma_make_throw_obj_completion_value (ecma_new_standard_error (ECMA_ERROR_URI));
ret_value = ecma_raise_uri_error ("");
break;
}
}
@@ -1121,7 +1121,7 @@ ecma_builtin_global_object_encode_uri_helper (ecma_value_t uri, /**< uri argumen
}
}
if (ecma_is_completion_value_empty (ret_value))
if (ecma_is_value_empty (ret_value))
{
MEM_DEFINE_LOCAL_ARRAY (output_start_p,
output_length,
@@ -1176,7 +1176,7 @@ ecma_builtin_global_object_encode_uri_helper (ecma_value_t uri, /**< uri argumen
ecma_string_t *output_string_p = ecma_new_ecma_string_from_utf8 (output_start_p, output_length);
ret_value = ecma_make_normal_completion_value (ecma_make_string_value (output_string_p));
ret_value = ecma_make_string_value (output_string_p);
MEM_FINALIZE_LOCAL_ARRAY (output_start_p);
}
@@ -1193,10 +1193,10 @@ ecma_builtin_global_object_encode_uri_helper (ecma_value_t uri, /**< uri argumen
* See also:
* ECMA-262 v5, 15.1.3.3
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_global_object_encode_uri (ecma_value_t this_arg __attr_unused___, /**< this argument */
ecma_value_t uri) /**< routine's first argument */
{
@@ -1209,10 +1209,10 @@ ecma_builtin_global_object_encode_uri (ecma_value_t this_arg __attr_unused___, /
* See also:
* ECMA-262 v5, 15.1.3.4
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_global_object_encode_uri_component (ecma_value_t this_arg __attr_unused___, /**< this argument */
ecma_value_t uri_component) /**< routine's first argument */
{
@@ -1249,14 +1249,14 @@ static const uint8_t ecma_escape_set[16] =
* See also:
* ECMA-262 v5, B.2.1
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_global_object_escape (ecma_value_t this_arg __attr_unused___, /**< this argument */
ecma_value_t arg) /**< routine's first argument */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
ECMA_TRY_CATCH (string,
ecma_op_to_string (arg),
@@ -1356,7 +1356,7 @@ ecma_builtin_global_object_escape (ecma_value_t this_arg __attr_unused___, /**<
ecma_string_t *output_string_p = ecma_new_ecma_string_from_utf8 (output_start_p, output_length);
ret_value = ecma_make_normal_completion_value (ecma_make_string_value (output_string_p));
ret_value = ecma_make_string_value (output_string_p);
MEM_FINALIZE_LOCAL_ARRAY (output_start_p);
@@ -1372,14 +1372,14 @@ ecma_builtin_global_object_escape (ecma_value_t this_arg __attr_unused___, /**<
* See also:
* ECMA-262 v5, B.2.2
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_global_object_unescape (ecma_value_t this_arg __attr_unused___, /**< this argument */
ecma_value_t arg) /**< routine's first argument */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
/* 1. */
ECMA_TRY_CATCH (string, ecma_op_to_string (arg), ret_value);
@@ -1455,7 +1455,7 @@ ecma_builtin_global_object_unescape (ecma_value_t this_arg __attr_unused___, /**
lit_utf8_size_t output_length = (lit_utf8_size_t) (output_char_p - input_start_p);
ecma_string_t *output_string_p = ecma_new_ecma_string_from_utf8 (input_start_p, output_length);
ret_value = ecma_make_normal_completion_value (ecma_make_string_value (output_string_p));
ret_value = ecma_make_string_value (output_string_p);
MEM_FINALIZE_LOCAL_ARRAY (input_start_p);
@@ -1,5 +1,5 @@
/* Copyright 2015 Samsung Electronics Co., Ltd.
* Copyright 2015 University of Szeged.
/* Copyright 2015-2016 Samsung Electronics Co., Ltd.
* Copyright 2015-2016 University of Szeged.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -875,10 +875,10 @@ ecma_date_timezone_offset (ecma_number_t time) /**< time value */
* Used by:
* - All Date.prototype.set *routine except Date.prototype.setTime.
*
* @return completion value containing the new internal time value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value containing the new internal time value
* Returned value must be freed with ecma_free_value.
*/
ecma_completion_value_t
ecma_value_t
ecma_date_set_internal_property (ecma_value_t this_arg, /**< this argument */
ecma_number_t day, /**< day */
ecma_number_t time, /**< time */
@@ -903,7 +903,7 @@ ecma_date_set_internal_property (ecma_value_t this_arg, /**< this argument */
prim_value_prop_p->u.internal_property.value);
*prim_value_num_p = *value_p;
return ecma_make_normal_completion_value (ecma_make_number_value (value_p));
return ecma_make_number_value (value_p);
} /* ecma_date_set_internal_property */
/**
@@ -1053,10 +1053,10 @@ ecma_date_value_to_string_common (lit_utf8_byte_t *dest_p, /**< destination buff
* - The Date routine.
* - The Date.prototype.toString routine.
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
ecma_completion_value_t
ecma_value_t
ecma_date_value_to_string (ecma_number_t datetime_number) /**< datetime */
{
/*
@@ -1092,7 +1092,7 @@ ecma_date_value_to_string (ecma_number_t datetime_number) /**< datetime */
ecma_string_t *date_string_p = ecma_new_ecma_string_from_utf8 (character_buffer,
result_string_length);
return ecma_make_normal_completion_value (ecma_make_string_value (date_string_p));
return ecma_make_string_value (date_string_p);
} /* ecma_date_value_to_string */
/**
@@ -1101,10 +1101,10 @@ ecma_date_value_to_string (ecma_number_t datetime_number) /**< datetime */
* Used by:
* - The Date.prototype.toUTCString routine.
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
ecma_completion_value_t
ecma_value_t
ecma_date_value_to_utc_string (ecma_number_t datetime_number) /**< datetime */
{
/*
@@ -1133,7 +1133,7 @@ ecma_date_value_to_utc_string (ecma_number_t datetime_number) /**< datetime */
ecma_string_t *date_string_p = ecma_new_ecma_string_from_utf8 (character_buffer,
result_string_length);
return ecma_make_normal_completion_value (ecma_make_string_value (date_string_p));
return ecma_make_string_value (date_string_p);
} /* ecma_date_value_to_utc_string */
/**
@@ -1142,10 +1142,10 @@ ecma_date_value_to_utc_string (ecma_number_t datetime_number) /**< datetime */
* Used by:
* - The Date.prototype.toISOString routine.
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
ecma_completion_value_t
ecma_value_t
ecma_date_value_to_iso_string (ecma_number_t datetime_number) /**<datetime */
{
/*
@@ -1194,7 +1194,7 @@ ecma_date_value_to_iso_string (ecma_number_t datetime_number) /**<datetime */
ecma_string_t *date_string_p = ecma_new_ecma_string_from_utf8 (character_buffer,
result_string_length);
return ecma_make_normal_completion_value (ecma_make_string_value (date_string_p));
return ecma_make_string_value (date_string_p);
} /* ecma_date_value_to_iso_string */
/**
@@ -1203,10 +1203,10 @@ ecma_date_value_to_iso_string (ecma_number_t datetime_number) /**<datetime */
* Used by:
* - The Date.prototype.toDateString routine.
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
ecma_completion_value_t
ecma_value_t
ecma_date_value_to_date_string (ecma_number_t datetime_number) /**<datetime */
{
/*
@@ -1238,7 +1238,7 @@ ecma_date_value_to_date_string (ecma_number_t datetime_number) /**<datetime */
ecma_string_t *date_string_p = ecma_new_ecma_string_from_utf8 (character_buffer,
result_string_length);
return ecma_make_normal_completion_value (ecma_make_string_value (date_string_p));
return ecma_make_string_value (date_string_p);
} /* ecma_date_value_to_date_string */
/**
@@ -1247,10 +1247,10 @@ ecma_date_value_to_date_string (ecma_number_t datetime_number) /**<datetime */
* Used by:
* - The Date.prototype.toTimeString routine.
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
ecma_completion_value_t
ecma_value_t
ecma_date_value_to_time_string (ecma_number_t datetime_number) /**<datetime */
{
/*
@@ -1281,7 +1281,7 @@ ecma_date_value_to_time_string (ecma_number_t datetime_number) /**<datetime */
ecma_string_t *time_string_p = ecma_new_ecma_string_from_utf8 (character_buffer,
result_string_length);
return ecma_make_normal_completion_value (ecma_make_string_value (time_string_p));
return ecma_make_string_value (time_string_p);
} /* ecma_date_value_to_time_string */
/**
@@ -1292,13 +1292,13 @@ ecma_date_value_to_time_string (ecma_number_t datetime_number) /**<datetime */
* - The Date.prototype.toISOString routine.
* - The Date.prototype.toUTCString routine.
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
ecma_completion_value_t
ecma_value_t
ecma_date_get_primitive_value (ecma_value_t this_arg) /**< this argument */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
if (!ecma_is_value_object (this_arg)
|| ecma_object_get_class_name (ecma_get_object_from_value (this_arg)) != LIT_MAGIC_STRING_DATE_UL)
@@ -1315,7 +1315,7 @@ ecma_date_get_primitive_value (ecma_value_t this_arg) /**< this argument */
ecma_number_t *prim_value_num_p = ecma_alloc_number ();
*prim_value_num_p = *ECMA_GET_NON_NULL_POINTER (ecma_number_t,
prim_value_prop_p->u.internal_property.value);
ret_value = ecma_make_normal_completion_value (ecma_make_number_value (prim_value_num_p));
ret_value = ecma_make_number_value (prim_value_num_p);
}
return ret_value;
@@ -1,5 +1,5 @@
/* Copyright 2014-2015 Samsung Electronics Co., Ltd.
* Copyright 2015 University of Szeged.
* Copyright 2015-2016 University of Szeged.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -155,10 +155,10 @@ ecma_builtin_helper_json_create_separated_properties (ecma_collection_header_t *
* - ecma_builtin_json_object step 10.b
* - ecma_builtin_json_array step 10.b
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
ecma_completion_value_t
ecma_value_t
ecma_builtin_helper_json_create_formatted_json (ecma_string_t *left_bracket_p, /**< left bracket*/
ecma_string_t *right_bracket_p, /**< right bracket*/
ecma_string_t *stepback_p, /**< stepback*/
@@ -212,7 +212,7 @@ ecma_builtin_helper_json_create_formatted_json (ecma_string_t *left_bracket_p, /
ecma_deref_ecma_string (final_str_p);
final_str_p = tmp_str_p;
return ecma_make_normal_completion_value (ecma_make_string_value (final_str_p));
return ecma_make_string_value (final_str_p);
} /* ecma_builtin_helper_json_create_formatted_json */
/**
@@ -225,10 +225,10 @@ ecma_builtin_helper_json_create_formatted_json (ecma_string_t *left_bracket_p, /
* - ecma_builtin_json_object step 10.a
* - ecma_builtin_json_array step 10.a
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
ecma_completion_value_t
ecma_value_t
ecma_builtin_helper_json_create_non_formatted_json (ecma_string_t *left_bracket_p, /**< left bracket*/
ecma_string_t *right_bracket_p, /**< right bracket*/
ecma_collection_header_t *partial_p) /**< key-value pairs*/
@@ -251,7 +251,7 @@ ecma_builtin_helper_json_create_non_formatted_json (ecma_string_t *left_bracket_
ecma_deref_ecma_string (properties_str_p);
properties_str_p = tmp_str_p;
return ecma_make_normal_completion_value (ecma_make_string_value (properties_str_p));
return ecma_make_string_value (properties_str_p);
} /* ecma_builtin_helper_json_create_non_formatted_json */
/**
@@ -1,5 +1,5 @@
/* Copyright 2015 Samsung Electronics Co., Ltd.
* Copyright 2015 University of Szeged.
/* Copyright 2015-2016 Samsung Electronics Co., Ltd.
* Copyright 2015-2016 University of Szeged.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -44,11 +44,11 @@
* - The Object.prototype.toString routine.
* - The Array.prototype.toString routine as fallback.
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
ecma_completion_value_t
ecma_value_t
ecma_builtin_helper_object_to_string (const ecma_value_t this_arg) /**< this argument */
{
lit_magic_string_id_t type_string;
@@ -63,20 +63,20 @@ ecma_builtin_helper_object_to_string (const ecma_value_t this_arg) /**< this arg
}
else
{
ecma_completion_value_t obj_this = ecma_op_to_object (this_arg);
ecma_value_t obj_this = ecma_op_to_object (this_arg);
if (!ecma_is_completion_value_normal (obj_this))
if (ecma_is_value_error (obj_this))
{
return obj_this;
}
JERRY_ASSERT (ecma_is_value_object (ecma_get_completion_value_value (obj_this)));
JERRY_ASSERT (ecma_is_value_object (obj_this));
ecma_object_t *obj_p = ecma_get_object_from_completion_value (obj_this);
ecma_object_t *obj_p = ecma_get_object_from_value (obj_this);
type_string = ecma_object_get_class_name (obj_p);
ecma_free_completion_value (obj_this);
ecma_free_value (obj_this);
}
ecma_string_t *ret_string_p;
@@ -111,7 +111,7 @@ ecma_builtin_helper_object_to_string (const ecma_value_t this_arg) /**< this arg
MEM_FINALIZE_LOCAL_ARRAY (str_buffer);
return ecma_make_normal_completion_value (ecma_make_string_value (ret_string_p));
return ecma_make_string_value (ret_string_p);
} /* ecma_builtin_helper_object_to_string */
/**
@@ -120,14 +120,14 @@ ecma_builtin_helper_object_to_string (const ecma_value_t this_arg) /**< this arg
* See also:
* ECMA-262 v5, 15.4.4.3 steps 6-8 and 10.b-d
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
ecma_completion_value_t
ecma_value_t
ecma_builtin_helper_get_to_locale_string_at_index (ecma_object_t *obj_p, /**< this object */
uint32_t index) /**< array index */
uint32_t index) /** <array index */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
ecma_string_t *index_string_p = ecma_new_ecma_string_from_uint32 (index);
ECMA_TRY_CATCH (index_value,
@@ -137,7 +137,7 @@ ecma_builtin_helper_get_to_locale_string_at_index (ecma_object_t *obj_p, /**< th
if (ecma_is_value_undefined (index_value) || ecma_is_value_null (index_value))
{
ecma_string_t *return_string_p = ecma_get_magic_string (LIT_MAGIC_STRING__EMPTY);
ret_value = ecma_make_normal_completion_value (ecma_make_string_value (return_string_p));
ret_value = ecma_make_string_value (return_string_p);
}
else
{
@@ -167,7 +167,7 @@ ecma_builtin_helper_get_to_locale_string_at_index (ecma_object_t *obj_p, /**< th
}
else
{
ret_value = ecma_make_throw_obj_completion_value (ecma_new_standard_error (ECMA_ERROR_TYPE));
ret_value = ecma_raise_type_error ("");
}
ECMA_FINALIZE (to_locale_value);
@@ -192,18 +192,18 @@ ecma_builtin_helper_get_to_locale_string_at_index (ecma_object_t *obj_p, /**< th
* ECMA-262 v5, 15.2.3.4 steps 2-5
* ECMA-262 v5, 15.2.3.14 steps 3-6
*
* @return completion value - Array of property names.
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value - Array of property names.
* Returned value must be freed with ecma_free_value.
*/
ecma_completion_value_t
ecma_value_t
ecma_builtin_helper_object_get_properties (ecma_object_t *obj_p, /**< object */
bool only_enumerable_properties) /**< list enumerable properties? */
{
JERRY_ASSERT (obj_p != NULL);
ecma_completion_value_t new_array = ecma_op_create_array_object (NULL, 0, false);
JERRY_ASSERT (ecma_is_completion_value_normal (new_array));
ecma_object_t *new_array_p = ecma_get_object_from_completion_value (new_array);
ecma_value_t new_array = ecma_op_create_array_object (NULL, 0, false);
JERRY_ASSERT (!ecma_is_value_error (new_array));
ecma_object_t *new_array_p = ecma_get_object_from_value (new_array);
uint32_t index = 0;
@@ -219,15 +219,15 @@ ecma_builtin_helper_object_get_properties (ecma_object_t *obj_p, /**< object */
{
ecma_string_t *index_string_p = ecma_new_ecma_string_from_uint32 (index);
ecma_completion_value_t completion = ecma_builtin_helper_def_prop (new_array_p,
index_string_p,
*iter.current_value_p,
true, /* Writable */
true, /* Enumerable */
true, /* Configurable */
false); /* Failure handling */
ecma_value_t completion = ecma_builtin_helper_def_prop (new_array_p,
index_string_p,
*iter.current_value_p,
true, /* Writable */
true, /* Enumerable */
true, /* Configurable */
false); /* Failure handling */
JERRY_ASSERT (ecma_is_completion_value_normal_true (completion));
JERRY_ASSERT (ecma_is_value_true (completion));
ecma_deref_ecma_string (index_string_p);
@@ -323,15 +323,15 @@ ecma_builtin_helper_array_index_normalize (ecma_number_t index, /**< index */
* Used by:
* - The Array.prototype.concat routine.
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
ecma_completion_value_t
ecma_value_t
ecma_builtin_helper_array_concat_value (ecma_object_t *obj_p, /**< array */
uint32_t *length_p, /**< in-out: array's length */
ecma_value_t value) /**< value to concat */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
/* 5.b */
if (ecma_is_value_object (value)
@@ -349,7 +349,7 @@ ecma_builtin_helper_array_concat_value (ecma_object_t *obj_p, /**< array */
/* 5.b.iii */
for (uint32_t array_index = 0;
array_index < arg_len && ecma_is_completion_value_empty (ret_value);
array_index < arg_len && ecma_is_value_empty (ret_value);
array_index++)
{
ecma_string_t *array_index_string_p = ecma_new_ecma_string_from_uint32 (array_index);
@@ -368,15 +368,15 @@ ecma_builtin_helper_array_concat_value (ecma_object_t *obj_p, /**< array */
/* 5.b.iii.3.b */
/* This will always be a simple value since 'is_throw' is false, so no need to free. */
ecma_completion_value_t put_comp = ecma_builtin_helper_def_prop (obj_p,
new_array_index_string_p,
get_value,
true, /* Writable */
true, /* Enumerable */
true, /* Configurable */
false); /* Failure handling */
ecma_value_t put_comp = ecma_builtin_helper_def_prop (obj_p,
new_array_index_string_p,
get_value,
true, /* Writable */
true, /* Enumerable */
true, /* Configurable */
false); /* Failure handling */
JERRY_ASSERT (ecma_is_completion_value_normal_true (put_comp));
JERRY_ASSERT (ecma_is_value_true (put_comp));
ECMA_FINALIZE (get_value);
ecma_deref_ecma_string (new_array_index_string_p);
@@ -397,22 +397,22 @@ ecma_builtin_helper_array_concat_value (ecma_object_t *obj_p, /**< array */
/* 5.c.i */
/* This will always be a simple value since 'is_throw' is false, so no need to free. */
ecma_completion_value_t put_comp = ecma_builtin_helper_def_prop (obj_p,
new_array_index_string_p,
value,
true, /* Writable */
true, /* Enumerable */
true, /* Configurable */
false); /* Failure handling */
ecma_value_t put_comp = ecma_builtin_helper_def_prop (obj_p,
new_array_index_string_p,
value,
true, /* Writable */
true, /* Enumerable */
true, /* Configurable */
false); /* Failure handling */
JERRY_ASSERT (ecma_is_completion_value_normal_true (put_comp));
JERRY_ASSERT (ecma_is_value_true (put_comp));
ecma_deref_ecma_string (new_array_index_string_p);
}
if (ecma_is_completion_value_empty (ret_value))
if (ecma_is_value_empty (ret_value))
{
ret_value = ecma_make_simple_completion_value (ECMA_SIMPLE_VALUE_TRUE);
ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_TRUE);
}
return ret_value;
@@ -484,13 +484,13 @@ ecma_builtin_helper_string_index_normalize (ecma_number_t index, /**< index */
*
* @return uint32_t - (last)index of search string
*/
ecma_completion_value_t
ecma_value_t
ecma_builtin_helper_string_prototype_object_index_of (ecma_value_t this_arg, /**< this argument */
ecma_value_t arg1, /**< routine's first argument */
ecma_value_t arg2, /**< routine's second argument */
bool first_index) /**< routine's third argument */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
/* 1 */
ECMA_TRY_CATCH (check_coercible_val,
@@ -532,7 +532,7 @@ ecma_builtin_helper_string_prototype_object_index_of (ecma_value_t this_arg, /**
*ret_num_p = ecma_uint32_to_number (index_of);
}
ret_value = ecma_make_normal_completion_value (ecma_make_number_value (ret_num_p));
ret_value = ecma_make_number_value (ret_num_p);
ECMA_OP_TO_NUMBER_FINALIZE (pos_num);
ECMA_FINALIZE (search_str_val);
@@ -684,10 +684,10 @@ ecma_builtin_helper_string_find_index (ecma_string_t *original_str_p, /**< index
* ECMA-262 v5, 8.12.9
* ECMA-262 v5, 15.4.5.1
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
ecma_completion_value_t
ecma_value_t
ecma_builtin_helper_def_prop (ecma_object_t *obj_p, /**< object */
ecma_string_t *index_p, /**< index string */
ecma_value_t value, /**< value */
@@ -1,5 +1,5 @@
/* Copyright 2015 Samsung Electronics Co., Ltd.
* Copyright 2015 University of Szeged.
/* Copyright 2015-2016 Samsung Electronics Co., Ltd.
* Copyright 2015-2016 University of Szeged.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -26,24 +26,24 @@
* @{
*/
extern ecma_completion_value_t
extern ecma_value_t
ecma_builtin_helper_object_to_string (const ecma_value_t);
extern ecma_completion_value_t
extern ecma_value_t
ecma_builtin_helper_get_to_locale_string_at_index (ecma_object_t *, uint32_t);
extern ecma_completion_value_t
extern ecma_value_t
ecma_builtin_helper_object_get_properties (ecma_object_t *, bool);
extern ecma_completion_value_t
extern ecma_value_t
ecma_builtin_helper_array_concat_value (ecma_object_t *, uint32_t *, ecma_value_t);
extern uint32_t
ecma_builtin_helper_array_index_normalize (ecma_number_t, uint32_t);
extern uint32_t
ecma_builtin_helper_string_index_normalize (ecma_number_t, uint32_t, bool);
extern ecma_completion_value_t
extern ecma_value_t
ecma_builtin_helper_string_prototype_object_index_of (ecma_value_t, ecma_value_t,
ecma_value_t, bool);
extern bool
ecma_builtin_helper_string_find_index (ecma_string_t *, ecma_string_t *, bool, ecma_length_t, ecma_length_t *);
extern ecma_completion_value_t
extern ecma_value_t
ecma_builtin_helper_def_prop (ecma_object_t *, ecma_string_t *, ecma_value_t,
bool, bool, bool, bool);
@@ -108,16 +108,16 @@ extern ecma_number_t ecma_date_make_day (ecma_number_t, ecma_number_t, ecma_numb
extern ecma_number_t ecma_date_make_date (ecma_number_t, ecma_number_t);
extern ecma_number_t ecma_date_time_clip (ecma_number_t);
extern ecma_number_t ecma_date_timezone_offset (ecma_number_t);
extern ecma_completion_value_t ecma_date_set_internal_property (ecma_value_t, ecma_number_t,
extern ecma_value_t ecma_date_set_internal_property (ecma_value_t, ecma_number_t,
ecma_number_t, ecma_date_timezone_t);
extern void ecma_date_insert_leading_zeros (ecma_string_t **, ecma_number_t, uint32_t);
extern ecma_completion_value_t ecma_date_value_to_string (ecma_number_t);
extern ecma_completion_value_t ecma_date_value_to_utc_string (ecma_number_t);
extern ecma_completion_value_t ecma_date_value_to_iso_string (ecma_number_t);
extern ecma_completion_value_t ecma_date_value_to_date_string (ecma_number_t);
extern ecma_completion_value_t ecma_date_value_to_time_string (ecma_number_t);
extern ecma_completion_value_t ecma_date_get_primitive_value (ecma_value_t);
extern ecma_value_t ecma_date_value_to_string (ecma_number_t);
extern ecma_value_t ecma_date_value_to_utc_string (ecma_number_t);
extern ecma_value_t ecma_date_value_to_iso_string (ecma_number_t);
extern ecma_value_t ecma_date_value_to_date_string (ecma_number_t);
extern ecma_value_t ecma_date_value_to_time_string (ecma_number_t);
extern ecma_value_t ecma_date_get_primitive_value (ecma_value_t);
#endif /* !CONFIG_ECMA_COMPACT_PROFILE_DISABLE_DATE_BUILTIN */
@@ -147,14 +147,14 @@ typedef struct
extern bool ecma_has_object_value_in_collection (ecma_collection_header_t *, ecma_value_t);
extern bool ecma_has_string_value_in_collection (ecma_collection_header_t *, ecma_value_t);
extern ecma_string_t *ecma_builtin_helper_json_create_hex_digit_ecma_string (uint8_t);
extern ecma_string_t *
ecma_builtin_helper_json_create_hex_digit_ecma_string (uint8_t);
extern ecma_string_t *
ecma_builtin_helper_json_create_separated_properties (ecma_collection_header_t *, ecma_string_t *);
extern ecma_completion_value_t
extern ecma_value_t
ecma_builtin_helper_json_create_formatted_json (ecma_string_t *, ecma_string_t *, ecma_string_t *,
ecma_collection_header_t *, ecma_json_stringify_context_t *);
extern ecma_completion_value_t
extern ecma_value_t
ecma_builtin_helper_json_create_non_formatted_json (ecma_string_t *, ecma_string_t *, ecma_collection_header_t *);
/**
@@ -44,7 +44,7 @@
#define ROUTINE_ARG_LIST_NON_FIXED ROUTINE_ARG_LIST_0, \
const ecma_value_t *arguments_list_p, ecma_length_t arguments_list_len
#define ROUTINE(name, c_function_name, args_number, length_prop_value) \
static ecma_completion_value_t c_function_name (ROUTINE_ARG_LIST_ ## args_number);
static ecma_value_t c_function_name (ROUTINE_ARG_LIST_ ## args_number);
#include BUILTIN_INC_HEADER_NAME
#undef ROUTINE_ARG_LIST_NON_FIXED
#undef ROUTINE_ARG_LIST_3
@@ -270,7 +270,7 @@ TRY_TO_INSTANTIATE_PROPERTY_ROUTINE_NAME (BUILTIN_UNDERSCORED_ID) (ecma_object_t
ecma_named_data_property_assign_value (obj_p, prop_p, value);
ecma_free_value (value, true);
ecma_free_value (value);
return prop_p;
} /* TRY_TO_INSTANTIATE_PROPERTY_ROUTINE_NAME */
@@ -394,10 +394,10 @@ LIST_LAZY_PROPERTY_NAMES_ROUTINE_NAME (BUILTIN_UNDERSCORED_ID) (ecma_object_t *o
/**
* Dispatcher of the built-in's routines
*
* @return completion-value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
ecma_completion_value_t
ecma_value_t
DISPATCH_ROUTINE_ROUTINE_NAME (BUILTIN_UNDERSCORED_ID) (uint16_t builtin_routine_id, /**< built-in wide routine
identifier */
ecma_value_t this_arg_value, /**< 'this' argument
@@ -1,5 +1,5 @@
/* Copyright 2015 Samsung Electronics Co., Ltd.
* Copyright 2015 University of Szeged.
/* Copyright 2015-2016 Samsung Electronics Co., Ltd.
* Copyright 2015-2016 University of Szeged.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -423,16 +423,15 @@ ecma_builtin_json_define_value_property (ecma_object_t *obj_p, /**< this object
ecma_string_t *property_name_p, /**< property name */
ecma_value_t value) /**< value */
{
ecma_completion_value_t completion_value = ecma_builtin_helper_def_prop (obj_p,
property_name_p,
value,
true, /* Writable */
true, /* Enumerable */
true, /* Configurable */
false); /* Failure handling */
ecma_value_t completion_value = ecma_builtin_helper_def_prop (obj_p,
property_name_p,
value,
true, /* Writable */
true, /* Enumerable */
true, /* Configurable */
false); /* Failure handling */
JERRY_ASSERT (ecma_is_completion_value_normal_true (completion_value)
|| ecma_is_completion_value_normal_false (completion_value));
JERRY_ASSERT (ecma_is_value_boolean (completion_value));
} /* ecma_builtin_json_define_value_property */
/**
@@ -520,7 +519,7 @@ ecma_builtin_json_parse_value (ecma_json_token_t *token_p) /**< token argument *
ecma_string_t *name_p = ecma_new_ecma_string_from_utf8 (string_start_p, string_size);
ecma_builtin_json_define_value_property (object_p, name_p, value);
ecma_deref_ecma_string (name_p);
ecma_free_value (value, true);
ecma_free_value (value);
parse_comma = true;
}
@@ -535,10 +534,10 @@ ecma_builtin_json_parse_value (ecma_json_token_t *token_p) /**< token argument *
bool parse_comma = false;
uint32_t length = 0;
ecma_completion_value_t array_construction = ecma_op_create_array_object (NULL, 0, false);
JERRY_ASSERT (ecma_is_completion_value_normal (array_construction));
ecma_value_t array_construction = ecma_op_create_array_object (NULL, 0, false);
JERRY_ASSERT (!ecma_is_value_error (array_construction));
ecma_object_t *array_p = ecma_get_object_from_value (ecma_get_completion_value_value (array_construction));
ecma_object_t *array_p = ecma_get_object_from_value (array_construction);
while (true)
{
@@ -565,19 +564,19 @@ ecma_builtin_json_parse_value (ecma_json_token_t *token_p) /**< token argument *
ecma_string_t *index_str_p = ecma_new_ecma_string_from_uint32 (length);
ecma_completion_value_t completion = ecma_builtin_helper_def_prop (array_p,
index_str_p,
value,
true, /* Writable */
true, /* Enumerable */
true, /* Configurable */
false); /* Failure handling */
ecma_value_t completion = ecma_builtin_helper_def_prop (array_p,
index_str_p,
value,
true, /* Writable */
true, /* Enumerable */
true, /* Configurable */
false); /* Failure handling */
JERRY_ASSERT (ecma_is_completion_value_normal_true (completion));
JERRY_ASSERT (ecma_is_value_true (completion));
ecma_deref_ecma_string (index_str_p);
ecma_free_value (value, true);
ecma_free_value (value);
length++;
parse_comma = true;
@@ -602,10 +601,10 @@ ecma_builtin_json_parse_value (ecma_json_token_t *token_p) /**< token argument *
* See also:
* ECMA-262 v5, 15.12.2
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_json_walk (ecma_object_t *reviver_p, /**< reviver function */
ecma_object_t *holder_p, /**< holder object */
ecma_string_t *name_p) /**< property name */
@@ -614,7 +613,7 @@ ecma_builtin_json_walk (ecma_object_t *reviver_p, /**< reviver function */
JERRY_ASSERT (holder_p);
JERRY_ASSERT (name_p);
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
ECMA_TRY_CATCH (value_get,
ecma_op_object_get (holder_p, name_p),
@@ -630,7 +629,7 @@ ecma_builtin_json_walk (ecma_object_t *reviver_p, /**< reviver function */
ecma_collection_iterator_init (&iter, props_p);
while (ecma_collection_iterator_next (&iter)
&& ecma_is_completion_value_empty (ret_value))
&& ecma_is_value_empty (ret_value))
{
ecma_string_t *property_name_p = ecma_get_string_from_value (*iter.current_value_p);
@@ -646,11 +645,10 @@ ecma_builtin_json_walk (ecma_object_t *reviver_p, /**< reviver function */
*/
if (ecma_is_value_undefined (value_walk))
{
ecma_completion_value_t delete_val = ecma_op_general_object_delete (object_p,
property_name_p,
false);
JERRY_ASSERT (ecma_is_completion_value_normal_true (delete_val)
|| ecma_is_completion_value_normal_false (delete_val));
ecma_value_t delete_val = ecma_op_general_object_delete (object_p,
property_name_p,
false);
JERRY_ASSERT (ecma_is_value_boolean (delete_val));
}
else
{
@@ -665,7 +663,7 @@ ecma_builtin_json_walk (ecma_object_t *reviver_p, /**< reviver function */
ecma_free_values_collection (props_p, true);
}
if (ecma_is_completion_value_empty (ret_value))
if (ecma_is_value_empty (ret_value))
{
ecma_value_t arguments_list[2];
@@ -682,7 +680,7 @@ ecma_builtin_json_walk (ecma_object_t *reviver_p, /**< reviver function */
}
else
{
JERRY_ASSERT (ecma_is_completion_value_throw (ret_value));
JERRY_ASSERT (ecma_is_value_error (ret_value));
}
ECMA_FINALIZE (value_get);
@@ -696,15 +694,15 @@ ecma_builtin_json_walk (ecma_object_t *reviver_p, /**< reviver function */
* See also:
* ECMA-262 v5, 15.12.2
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_json_parse (ecma_value_t this_arg __attr_unused___, /**< 'this' argument */
ecma_value_t arg1, /**< string argument */
ecma_value_t arg2) /**< reviver argument */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
ECMA_TRY_CATCH (string,
ecma_op_to_string (arg1),
@@ -733,14 +731,14 @@ ecma_builtin_json_parse (ecma_value_t this_arg __attr_unused___, /**< 'this' arg
if (token.type != end_token)
{
ecma_free_value (final_result, true);
ecma_free_value (final_result);
final_result = ecma_make_simple_value (ECMA_SIMPLE_VALUE_UNDEFINED);
}
}
if (ecma_is_value_undefined (final_result))
{
ret_value = ecma_make_throw_obj_completion_value (ecma_new_standard_error (ECMA_ERROR_SYNTAX));
ret_value = ecma_raise_syntax_error ("");
}
else
{
@@ -755,7 +753,7 @@ ecma_builtin_json_parse (ecma_value_t this_arg __attr_unused___, /**< 'this' arg
true);
ecma_named_data_property_assign_value (object_p, property_p, final_result);
ecma_free_value (final_result, true);
ecma_free_value (final_result);
ret_value = ecma_builtin_json_walk (ecma_get_object_from_value (arg2),
object_p,
@@ -765,7 +763,7 @@ ecma_builtin_json_parse (ecma_value_t this_arg __attr_unused___, /**< 'this' arg
}
else
{
ret_value = ecma_make_normal_completion_value (final_result);
ret_value = final_result;
}
}
@@ -775,13 +773,13 @@ ecma_builtin_json_parse (ecma_value_t this_arg __attr_unused___, /**< 'this' arg
return ret_value;
} /* ecma_builtin_json_parse */
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_json_str (ecma_string_t *key_p, ecma_object_t *holder_p, ecma_json_stringify_context_t *context_p);
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_json_object (ecma_object_t *obj_p, ecma_json_stringify_context_t *context_p);
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_json_array (ecma_object_t *obj_p, ecma_json_stringify_context_t *context_p);
/**
@@ -790,16 +788,16 @@ ecma_builtin_json_array (ecma_object_t *obj_p, ecma_json_stringify_context_t *co
* See also:
* ECMA-262 v5, 15.12.3
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_json_stringify (ecma_value_t this_arg __attr_unused___, /**< 'this' argument */
ecma_value_t arg1, /**< value */
ecma_value_t arg2, /**< replacer */
ecma_value_t arg3) /**< space */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
ecma_json_stringify_context_t context;
@@ -841,7 +839,7 @@ ecma_builtin_json_stringify (ecma_value_t this_arg __attr_unused___, /**< 'this'
uint32_t index = 0;
/* 4.b.ii */
while ((index < array_length) && ecma_is_completion_value_empty (ret_value))
while ((index < array_length) && ecma_is_value_empty (ret_value))
{
ecma_string_t *index_str_p = ecma_new_ecma_string_from_uint32 (index);
@@ -898,7 +896,7 @@ ecma_builtin_json_stringify (ecma_value_t this_arg __attr_unused___, /**< 'this'
}
else
{
ecma_free_value (item, true);
ecma_free_value (item);
}
}
@@ -916,7 +914,7 @@ ecma_builtin_json_stringify (ecma_value_t this_arg __attr_unused___, /**< 'this'
}
}
if (ecma_is_completion_value_empty (ret_value))
if (ecma_is_value_empty (ret_value))
{
ecma_value_t space = ecma_copy_value (arg3, true);
@@ -933,7 +931,7 @@ ecma_builtin_json_stringify (ecma_value_t this_arg __attr_unused___, /**< 'this'
ecma_op_to_number (arg3),
ret_value);
ecma_free_value (space, true);
ecma_free_value (space);
space = ecma_copy_value (val, true);
ECMA_FINALIZE (val);
@@ -945,14 +943,14 @@ ecma_builtin_json_stringify (ecma_value_t this_arg __attr_unused___, /**< 'this'
ecma_op_to_string (arg3),
ret_value);
ecma_free_value (space, true);
ecma_free_value (space);
space = ecma_copy_value (val, true);
ECMA_FINALIZE (val);
}
}
if (ecma_is_completion_value_empty (ret_value))
if (ecma_is_value_empty (ret_value))
{
/* 6. */
if (ecma_is_value_number (space))
@@ -1008,29 +1006,29 @@ ecma_builtin_json_stringify (ecma_value_t this_arg __attr_unused___, /**< 'this'
}
}
ecma_free_value (space, true);
ecma_free_value (space);
if (ecma_is_completion_value_empty (ret_value))
if (ecma_is_value_empty (ret_value))
{
/* 9. */
ecma_object_t *obj_wrapper_p = ecma_op_create_object_object_noarg ();
ecma_string_t *empty_str_p = ecma_get_magic_string (LIT_MAGIC_STRING__EMPTY);
/* 10. */
ecma_completion_value_t put_comp_val = ecma_op_object_put (obj_wrapper_p,
empty_str_p,
arg1,
false);
ecma_value_t put_comp_val = ecma_op_object_put (obj_wrapper_p,
empty_str_p,
arg1,
false);
JERRY_ASSERT (ecma_is_completion_value_normal_true (put_comp_val));
ecma_free_completion_value (put_comp_val);
JERRY_ASSERT (ecma_is_value_true (put_comp_val));
ecma_free_value (put_comp_val);
/* 11. */
ECMA_TRY_CATCH (str_val,
ecma_builtin_json_str (empty_str_p, obj_wrapper_p, &context),
ret_value);
ret_value = ecma_make_normal_completion_value (ecma_copy_value (str_val, true));
ret_value = ecma_copy_value (str_val, true);
ECMA_FINALIZE (str_val);
@@ -1055,10 +1053,10 @@ ecma_builtin_json_stringify (ecma_value_t this_arg __attr_unused___, /**< 'this'
* See also:
* ECMA-262 v5, 15.12.3
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_json_quote (ecma_string_t *string_p) /**< string that should be quoted*/
{
/* 1. */
@@ -1207,7 +1205,7 @@ ecma_builtin_json_quote (ecma_string_t *string_p) /**< string that should be quo
product_str_p = tmp_str_p;
/* 4. */
return ecma_make_normal_completion_value (ecma_make_string_value (product_str_p));
return ecma_make_string_value (product_str_p);
} /* ecma_builtin_json_quote */
/**
@@ -1216,15 +1214,15 @@ ecma_builtin_json_quote (ecma_string_t *string_p) /**< string that should be quo
* See also:
* ECMA-262 v5, 15.12.3
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_json_str (ecma_string_t *key_p, /**< property key*/
ecma_object_t *holder_p, /**< the object*/
ecma_json_stringify_context_t *context_p) /**< context*/
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
/* 1. */
ECMA_TRY_CATCH (value,
@@ -1255,7 +1253,7 @@ ecma_builtin_json_str (ecma_string_t *key_p, /**< property key*/
ecma_op_function_call (toJSON_obj_p, my_val, call_args, 1),
ret_value);
ecma_free_value (my_val, true);
ecma_free_value (my_val);
my_val = ecma_copy_value (func_ret_val, true);
ECMA_FINALIZE (func_ret_val);
@@ -1267,7 +1265,7 @@ ecma_builtin_json_str (ecma_string_t *key_p, /**< property key*/
}
/* 3. */
if (context_p->replacer_function_p && ecma_is_completion_value_empty (ret_value))
if (context_p->replacer_function_p && ecma_is_value_empty (ret_value))
{
ecma_value_t holder_value = ecma_make_object_value (holder_p);
ecma_value_t key_value = ecma_make_string_value (key_p);
@@ -1277,14 +1275,14 @@ ecma_builtin_json_str (ecma_string_t *key_p, /**< property key*/
ecma_op_function_call (context_p->replacer_function_p, holder_value, call_args, 2),
ret_value);
ecma_free_value (my_val, true);
ecma_free_value (my_val);
my_val = ecma_copy_value (func_ret_val, true);
ECMA_FINALIZE (func_ret_val);
}
/* 4. */
if (ecma_is_value_object (my_val) && ecma_is_completion_value_empty (ret_value))
if (ecma_is_value_object (my_val) && ecma_is_value_empty (ret_value))
{
ecma_object_t *obj_p = ecma_get_object_from_value (my_val);
lit_magic_string_id_t class_name = ecma_object_get_class_name (obj_p);
@@ -1296,7 +1294,7 @@ ecma_builtin_json_str (ecma_string_t *key_p, /**< property key*/
ecma_op_to_number (my_val),
ret_value);
ecma_free_value (my_val, true);
ecma_free_value (my_val);
my_val = ecma_copy_value (val, true);
ECMA_FINALIZE (val);
@@ -1308,7 +1306,7 @@ ecma_builtin_json_str (ecma_string_t *key_p, /**< property key*/
ecma_op_to_string (my_val),
ret_value);
ecma_free_value (my_val, true);
ecma_free_value (my_val);
my_val = ecma_copy_value (val, true);
ECMA_FINALIZE (val);
@@ -1320,20 +1318,20 @@ ecma_builtin_json_str (ecma_string_t *key_p, /**< property key*/
ecma_op_to_primitive (my_val, ECMA_PREFERRED_TYPE_NO),
ret_value);
ecma_free_value (my_val, true);
ecma_free_value (my_val);
my_val = ecma_copy_value (val, true);
ECMA_FINALIZE (val);
}
}
if (ecma_is_completion_value_empty (ret_value))
if (ecma_is_value_empty (ret_value))
{
/* 5. - 7. */
if (ecma_is_value_null (my_val) || ecma_is_value_boolean (my_val))
{
ret_value = ecma_op_to_string (my_val);
JERRY_ASSERT (ecma_is_completion_value_normal (ret_value));
JERRY_ASSERT (!ecma_is_value_error (ret_value));
}
/* 8. */
else if (ecma_is_value_string (my_val))
@@ -1350,13 +1348,13 @@ ecma_builtin_json_str (ecma_string_t *key_p, /**< property key*/
if (!ecma_number_is_nan (num_value_p) && !ecma_number_is_infinity (num_value_p))
{
ret_value = ecma_op_to_string (my_val);
JERRY_ASSERT (ecma_is_completion_value_normal (ret_value));
JERRY_ASSERT (!ecma_is_value_error (ret_value));
}
else
{
/* 9.b */
ecma_string_t *null_str_p = ecma_get_magic_string (LIT_MAGIC_STRING_NULL);
ret_value = ecma_make_normal_completion_value (ecma_make_string_value (null_str_p));
ret_value = ecma_make_string_value (null_str_p);
}
}
/* 10. */
@@ -1372,7 +1370,7 @@ ecma_builtin_json_str (ecma_string_t *key_p, /**< property key*/
ecma_builtin_json_array (obj_p, context_p),
ret_value);
ret_value = ecma_make_normal_completion_value (ecma_copy_value (val, true));
ret_value = ecma_copy_value (val, true);
ECMA_FINALIZE (val);
}
@@ -1383,7 +1381,7 @@ ecma_builtin_json_str (ecma_string_t *key_p, /**< property key*/
ecma_builtin_json_object (obj_p, context_p),
ret_value);
ret_value = ecma_make_normal_completion_value (ecma_copy_value (val, true));
ret_value = ecma_copy_value (val, true);
ECMA_FINALIZE (val);
}
@@ -1391,11 +1389,11 @@ ecma_builtin_json_str (ecma_string_t *key_p, /**< property key*/
else
{
/* 11. */
ret_value = ecma_make_simple_completion_value (ECMA_SIMPLE_VALUE_UNDEFINED);
ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_UNDEFINED);
}
}
ecma_free_value (my_val, true);
ecma_free_value (my_val);
ECMA_FINALIZE (value);
return ret_value;
@@ -1407,10 +1405,10 @@ ecma_builtin_json_str (ecma_string_t *key_p, /**< property key*/
* See also:
* ECMA-262 v5, 15.12.3
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_json_object (ecma_object_t *obj_p, /**< the object*/
ecma_json_stringify_context_t *context_p) /**< context*/
{
@@ -1419,10 +1417,10 @@ ecma_builtin_json_object (ecma_object_t *obj_p, /**< the object*/
/* 1. */
if (ecma_has_object_value_in_collection (context_p->occurence_stack_p, obj_value))
{
return ecma_make_throw_obj_completion_value (ecma_new_standard_error (ECMA_ERROR_TYPE));
return ecma_raise_type_error ("");
}
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
/* 2. */
ecma_append_to_values_collection (context_p->occurence_stack_p, obj_value, true);
@@ -1473,7 +1471,7 @@ ecma_builtin_json_object (ecma_object_t *obj_p, /**< the object*/
ecma_collection_iterator_t iterator;
ecma_collection_iterator_init (&iterator, property_keys_p);
while (ecma_collection_iterator_next (&iterator) && ecma_is_completion_value_empty (ret_value))
while (ecma_collection_iterator_next (&iterator) && ecma_is_value_empty (ret_value))
{
ecma_value_t value = *iterator.current_value_p;
ecma_string_t *key_p = ecma_get_string_from_value (value);
@@ -1491,14 +1489,14 @@ ecma_builtin_json_object (ecma_object_t *obj_p, /**< the object*/
ecma_string_t *tmp_str_p;
/* 8.b.i */
ecma_completion_value_t str_comp_val = ecma_builtin_json_quote (key_p);
JERRY_ASSERT (ecma_is_completion_value_normal (str_comp_val));
ecma_value_t str_comp_val = ecma_builtin_json_quote (key_p);
JERRY_ASSERT (!ecma_is_value_error (str_comp_val));
ecma_string_t *member_str_p = ecma_get_string_from_value (str_comp_val);
/* 8.b.ii */
tmp_str_p = ecma_concat_ecma_strings (member_str_p, colon_p);
ecma_free_completion_value (str_comp_val);
ecma_free_value (str_comp_val);
ecma_deref_ecma_string (colon_p);
member_str_p = tmp_str_p;
@@ -1534,7 +1532,7 @@ ecma_builtin_json_object (ecma_object_t *obj_p, /**< the object*/
ecma_free_values_collection (property_keys_p, true);
}
if (!ecma_is_completion_value_empty (ret_value))
if (!ecma_is_value_empty (ret_value))
{
ecma_free_values_collection (partial_p, true);
ecma_deref_ecma_string (stepback_p);
@@ -1548,7 +1546,7 @@ ecma_builtin_json_object (ecma_object_t *obj_p, /**< the object*/
ecma_string_t *right_brace_str_p = ecma_get_magic_string (LIT_MAGIC_STRING_RIGHT_BRACE_CHAR);
ecma_string_t *final_str_p = ecma_concat_ecma_strings (left_brace_str_p, right_brace_str_p);
ret_value = ecma_make_normal_completion_value (ecma_make_string_value (final_str_p));
ret_value = ecma_make_string_value (final_str_p);
ecma_deref_ecma_string (left_brace_str_p);
ecma_deref_ecma_string (right_brace_str_p);
@@ -1591,7 +1589,7 @@ ecma_builtin_json_object (ecma_object_t *obj_p, /**< the object*/
ecma_free_values_collection (partial_p, true);
/* 11. */
ecma_remove_last_value_from_values_collection (context_p->occurence_stack_p, true);
ecma_remove_last_value_from_values_collection (context_p->occurence_stack_p);
/* 12. */
ecma_deref_ecma_string (context_p->indent_str_p);
@@ -1607,10 +1605,10 @@ ecma_builtin_json_object (ecma_object_t *obj_p, /**< the object*/
* See also:
* ECMA-262 v5, 15.12.3
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_json_array (ecma_object_t *obj_p, /**< the array object*/
ecma_json_stringify_context_t *context_p) /**< context*/
{
@@ -1619,10 +1617,10 @@ ecma_builtin_json_array (ecma_object_t *obj_p, /**< the array object*/
/* 1. */
if (ecma_has_object_value_in_collection (context_p->occurence_stack_p, obj_value))
{
return ecma_make_throw_obj_completion_value (ecma_new_standard_error (ECMA_ERROR_TYPE));
return ecma_raise_type_error ("");
}
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
/* 2. */
ecma_append_to_values_collection (context_p->occurence_stack_p, obj_value, true);
@@ -1651,7 +1649,7 @@ ecma_builtin_json_array (ecma_object_t *obj_p, /**< the array object*/
/* 7. - 8. */
for (uint32_t index = 0;
index < array_length && ecma_is_completion_value_empty (ret_value);
index < array_length && ecma_is_value_empty (ret_value);
index++)
{
@@ -1679,7 +1677,7 @@ ecma_builtin_json_array (ecma_object_t *obj_p, /**< the array object*/
ecma_deref_ecma_string (index_str_p);
}
if (ecma_is_completion_value_empty (ret_value))
if (ecma_is_value_empty (ret_value))
{
/* 9. */
if (partial_p->unit_number == 0)
@@ -1688,7 +1686,7 @@ ecma_builtin_json_array (ecma_object_t *obj_p, /**< the array object*/
ecma_string_t *right_square_str_p = ecma_get_magic_string (LIT_MAGIC_STRING_RIGHT_SQUARE_CHAR);
ecma_string_t *final_str_p = ecma_concat_ecma_strings (left_square_str_p, right_square_str_p);
ret_value = ecma_make_normal_completion_value (ecma_make_string_value (final_str_p));
ret_value = ecma_make_string_value (final_str_p);
ecma_deref_ecma_string (left_square_str_p);
ecma_deref_ecma_string (right_square_str_p);
@@ -1735,7 +1733,7 @@ ecma_builtin_json_array (ecma_object_t *obj_p, /**< the array object*/
ecma_free_values_collection (partial_p, true);
/* 11. */
ecma_remove_last_value_from_values_collection (context_p->occurence_stack_p, true);
ecma_remove_last_value_from_values_collection (context_p->occurence_stack_p);
/* 12. */
ecma_deref_ecma_string (context_p->indent_str_p);
@@ -1,5 +1,5 @@
/* Copyright 2014-2015 Samsung Electronics Co., Ltd.
* Copyright 2015 University of Szeged.
* Copyright 2015-2016 University of Szeged.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -54,14 +54,14 @@
* See also:
* ECMA-262 v5, 15.8.2.1
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_math_object_abs (ecma_value_t this_arg __attr_unused___, /**< 'this' argument */
ecma_value_t arg) /**< routine's argument */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
ECMA_OP_TO_NUMBER_TRY_CATCH (arg_num, arg, ret_value);
@@ -69,7 +69,7 @@ ecma_builtin_math_object_abs (ecma_value_t this_arg __attr_unused___, /**< 'this
*num_p = DOUBLE_TO_ECMA_NUMBER_T (fabs (arg_num));
ret_value = ecma_make_normal_completion_value (ecma_make_number_value (num_p));
ret_value = ecma_make_number_value (num_p);
ECMA_OP_TO_NUMBER_FINALIZE (arg_num);
@@ -82,21 +82,21 @@ ecma_builtin_math_object_abs (ecma_value_t this_arg __attr_unused___, /**< 'this
* See also:
* ECMA-262 v5, 15.8.2.2
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_math_object_acos (ecma_value_t this_arg __attr_unused___, /**< 'this' argument */
ecma_value_t arg) /**< routine's argument */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
ECMA_OP_TO_NUMBER_TRY_CATCH (arg_num, arg, ret_value);
ecma_number_t *num_p = ecma_alloc_number ();
*num_p = DOUBLE_TO_ECMA_NUMBER_T (acos (arg_num));
ret_value = ecma_make_normal_completion_value (ecma_make_number_value (num_p));
ret_value = ecma_make_number_value (num_p);
ECMA_OP_TO_NUMBER_FINALIZE (arg_num);
return ret_value;
@@ -108,21 +108,21 @@ ecma_builtin_math_object_acos (ecma_value_t this_arg __attr_unused___, /**< 'thi
* See also:
* ECMA-262 v5, 15.8.2.3
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_math_object_asin (ecma_value_t this_arg __attr_unused___, /**< 'this' argument */
ecma_value_t arg) /**< routine's argument */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
ECMA_OP_TO_NUMBER_TRY_CATCH (arg_num, arg, ret_value);
ecma_number_t *num_p = ecma_alloc_number ();
*num_p = DOUBLE_TO_ECMA_NUMBER_T (asin (arg_num));
ret_value = ecma_make_normal_completion_value (ecma_make_number_value (num_p));
ret_value = ecma_make_number_value (num_p);
ECMA_OP_TO_NUMBER_FINALIZE (arg_num);
return ret_value;
@@ -134,21 +134,21 @@ ecma_builtin_math_object_asin (ecma_value_t this_arg __attr_unused___, /**< 'thi
* See also:
* ECMA-262 v5, 15.8.2.4
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_math_object_atan (ecma_value_t this_arg __attr_unused___, /**< 'this' argument */
ecma_value_t arg) /**< routine's argument */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
ECMA_OP_TO_NUMBER_TRY_CATCH (arg_num, arg, ret_value);
ecma_number_t *num_p = ecma_alloc_number ();
*num_p = DOUBLE_TO_ECMA_NUMBER_T (atan (arg_num));
ret_value = ecma_make_normal_completion_value (ecma_make_number_value (num_p));
ret_value = ecma_make_number_value (num_p);
ECMA_OP_TO_NUMBER_FINALIZE (arg_num);
return ret_value;
@@ -160,15 +160,15 @@ ecma_builtin_math_object_atan (ecma_value_t this_arg __attr_unused___, /**< 'thi
* See also:
* ECMA-262 v5, 15.8.2.5
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_math_object_atan2 (ecma_value_t this_arg __attr_unused___, /**< 'this' argument */
ecma_value_t arg1, /**< first routine's argument */
ecma_value_t arg2) /**< second routine's argument */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
ECMA_OP_TO_NUMBER_TRY_CATCH (x, arg1, ret_value);
ECMA_OP_TO_NUMBER_TRY_CATCH (y, arg2, ret_value);
@@ -176,7 +176,7 @@ ecma_builtin_math_object_atan2 (ecma_value_t this_arg __attr_unused___, /**< 'th
ecma_number_t *num_p = ecma_alloc_number ();
*num_p = DOUBLE_TO_ECMA_NUMBER_T (atan2 (x, y));
ret_value = ecma_make_normal_completion_value (ecma_make_number_value (num_p));
ret_value = ecma_make_number_value (num_p);
ECMA_OP_TO_NUMBER_FINALIZE (y);
ECMA_OP_TO_NUMBER_FINALIZE (x);
@@ -189,20 +189,20 @@ ecma_builtin_math_object_atan2 (ecma_value_t this_arg __attr_unused___, /**< 'th
* See also:
* ECMA-262 v5, 15.8.2.6
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_math_object_ceil (ecma_value_t this_arg __attr_unused___, /**< 'this' argument */
ecma_value_t arg) /**< routine's argument */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
ECMA_OP_TO_NUMBER_TRY_CATCH (arg_num, arg, ret_value);
ecma_number_t *num_p = ecma_alloc_number ();
*num_p = DOUBLE_TO_ECMA_NUMBER_T (ceil (arg_num));
ret_value = ecma_make_normal_completion_value (ecma_make_number_value (num_p));
ret_value = ecma_make_number_value (num_p);
ECMA_OP_TO_NUMBER_FINALIZE (arg_num);
return ret_value;
@@ -214,20 +214,20 @@ ecma_builtin_math_object_ceil (ecma_value_t this_arg __attr_unused___, /**< 'thi
* See also:
* ECMA-262 v5, 15.8.2.7
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_math_object_cos (ecma_value_t this_arg __attr_unused___, /**< 'this' argument */
ecma_value_t arg) /**< routine's argument */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
ECMA_OP_TO_NUMBER_TRY_CATCH (arg_num, arg, ret_value);
ecma_number_t *num_p = ecma_alloc_number ();
*num_p = DOUBLE_TO_ECMA_NUMBER_T (cos (arg_num));
ret_value = ecma_make_normal_completion_value (ecma_make_number_value (num_p));
ret_value = ecma_make_number_value (num_p);
ECMA_OP_TO_NUMBER_FINALIZE (arg_num);
return ret_value;
@@ -239,14 +239,14 @@ ecma_builtin_math_object_cos (ecma_value_t this_arg __attr_unused___, /**< 'this
* See also:
* ECMA-262 v5, 15.8.2.8
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_math_object_exp (ecma_value_t this_arg __attr_unused___, /**< 'this' argument */
ecma_value_t arg) /**< routine's argument */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
ECMA_OP_TO_NUMBER_TRY_CATCH (arg_num, arg, ret_value);
@@ -254,7 +254,7 @@ ecma_builtin_math_object_exp (ecma_value_t this_arg __attr_unused___, /**< 'this
*num_p = DOUBLE_TO_ECMA_NUMBER_T (exp (arg_num));
ret_value = ecma_make_normal_completion_value (ecma_make_number_value (num_p));
ret_value = ecma_make_number_value (num_p);
ECMA_OP_TO_NUMBER_FINALIZE (arg_num);
@@ -267,20 +267,20 @@ ecma_builtin_math_object_exp (ecma_value_t this_arg __attr_unused___, /**< 'this
* See also:
* ECMA-262 v5, 15.8.2.9
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_math_object_floor (ecma_value_t this_arg __attr_unused___, /**< 'this' argument */
ecma_value_t arg) /**< routine's argument */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
ECMA_OP_TO_NUMBER_TRY_CATCH (arg_num, arg, ret_value);
ecma_number_t *num_p = ecma_alloc_number ();
*num_p = DOUBLE_TO_ECMA_NUMBER_T (floor (arg_num));
ret_value = ecma_make_normal_completion_value (ecma_make_number_value (num_p));
ret_value = ecma_make_number_value (num_p);
ECMA_OP_TO_NUMBER_FINALIZE (arg_num);
return ret_value;
@@ -292,14 +292,14 @@ ecma_builtin_math_object_floor (ecma_value_t this_arg __attr_unused___, /**< 'th
* See also:
* ECMA-262 v5, 15.8.2.10
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_math_object_log (ecma_value_t this_arg __attr_unused___, /**< 'this' argument */
ecma_value_t arg) /**< routine's argument */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
ECMA_OP_TO_NUMBER_TRY_CATCH (arg_num, arg, ret_value);
@@ -307,7 +307,7 @@ ecma_builtin_math_object_log (ecma_value_t this_arg __attr_unused___, /**< 'this
*num_p = DOUBLE_TO_ECMA_NUMBER_T (log (arg_num));
ret_value = ecma_make_normal_completion_value (ecma_make_number_value (num_p));
ret_value = ecma_make_number_value (num_p);
ECMA_OP_TO_NUMBER_FINALIZE (arg_num);
@@ -320,22 +320,22 @@ ecma_builtin_math_object_log (ecma_value_t this_arg __attr_unused___, /**< 'this
* See also:
* ECMA-262 v5, 15.8.2.11
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_math_object_max (ecma_value_t this_arg __attr_unused___, /**< 'this' argument */
const ecma_value_t args[], /**< arguments list */
ecma_length_t args_number) /**< number of arguments */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
ecma_number_t ret_num = ecma_number_make_infinity (true);
bool is_NaN = false;
for (ecma_length_t arg_index = 0;
arg_index < args_number && ecma_is_completion_value_empty (ret_value);
arg_index < args_number && ecma_is_value_empty (ret_value);
arg_index++)
{
ECMA_OP_TO_NUMBER_TRY_CATCH (arg_num, args[arg_index], ret_value);
@@ -386,11 +386,11 @@ ecma_builtin_math_object_max (ecma_value_t this_arg __attr_unused___, /**< 'this
ECMA_OP_TO_NUMBER_FINALIZE (arg_num);
}
if (ecma_is_completion_value_empty (ret_value))
if (ecma_is_value_empty (ret_value))
{
ecma_number_t *num_p = ecma_alloc_number ();
*num_p = ret_num;
ret_value = ecma_make_normal_completion_value (ecma_make_number_value (num_p));
ret_value = ecma_make_number_value (num_p);
}
return ret_value;
@@ -402,22 +402,22 @@ ecma_builtin_math_object_max (ecma_value_t this_arg __attr_unused___, /**< 'this
* See also:
* ECMA-262 v5, 15.8.2.12
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_math_object_min (ecma_value_t this_arg __attr_unused___, /**< 'this' argument */
const ecma_value_t args[], /**< arguments list */
ecma_length_t args_number) /**< number of arguments */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
ecma_number_t ret_num = ecma_number_make_infinity (false);
bool is_NaN = false;
for (ecma_length_t arg_index = 0;
arg_index < args_number && ecma_is_completion_value_empty (ret_value);
arg_index < args_number && ecma_is_value_empty (ret_value);
arg_index++)
{
ECMA_OP_TO_NUMBER_TRY_CATCH (arg_num, args[arg_index], ret_value);
@@ -468,11 +468,11 @@ ecma_builtin_math_object_min (ecma_value_t this_arg __attr_unused___, /**< 'this
ECMA_OP_TO_NUMBER_FINALIZE (arg_num);
}
if (ecma_is_completion_value_empty (ret_value))
if (ecma_is_value_empty (ret_value))
{
ecma_number_t *num_p = ecma_alloc_number ();
*num_p = ret_num;
ret_value = ecma_make_normal_completion_value (ecma_make_number_value (num_p));
ret_value = ecma_make_number_value (num_p);
}
return ret_value;
@@ -484,22 +484,22 @@ ecma_builtin_math_object_min (ecma_value_t this_arg __attr_unused___, /**< 'this
* See also:
* ECMA-262 v5, 15.8.2.13
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_math_object_pow (ecma_value_t this_arg __attr_unused___, /**< 'this' argument */
ecma_value_t arg1, /**< first routine's argument */
ecma_value_t arg2) /**< second routine's argument */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
ECMA_OP_TO_NUMBER_TRY_CATCH (x, arg1, ret_value);
ECMA_OP_TO_NUMBER_TRY_CATCH (y, arg2, ret_value);
ecma_number_t *num_p = ecma_alloc_number ();
*num_p = DOUBLE_TO_ECMA_NUMBER_T (pow (x, y));
ret_value = ecma_make_normal_completion_value (ecma_make_number_value (num_p));
ret_value = ecma_make_number_value (num_p);
ECMA_OP_TO_NUMBER_FINALIZE (y);
ECMA_OP_TO_NUMBER_FINALIZE (x);
@@ -513,10 +513,10 @@ ecma_builtin_math_object_pow (ecma_value_t this_arg __attr_unused___, /**< 'this
* See also:
* ECMA-262 v5, 15.8.2.14
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_math_object_random (ecma_value_t this_arg __attr_unused___) /**< 'this' argument */
{
uint32_t rnd = 1;
@@ -543,7 +543,7 @@ ecma_builtin_math_object_random (ecma_value_t this_arg __attr_unused___) /**< 't
ecma_number_t *rand_p = ecma_alloc_number ();
*rand_p = rand;
return ecma_make_normal_completion_value (ecma_make_number_value (rand_p));
return ecma_make_number_value (rand_p);
} /* ecma_builtin_math_object_random */
/**
@@ -552,14 +552,14 @@ ecma_builtin_math_object_random (ecma_value_t this_arg __attr_unused___) /**< 't
* See also:
* ECMA-262 v5, 15.8.2.15
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_math_object_round (ecma_value_t this_arg __attr_unused___, /**< 'this' argument */
ecma_value_t arg) /**< routine's argument */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
ECMA_OP_TO_NUMBER_TRY_CATCH (arg_num, arg, ret_value);
@@ -593,7 +593,7 @@ ecma_builtin_math_object_round (ecma_value_t this_arg __attr_unused___, /**< 'th
}
}
ret_value = ecma_make_normal_completion_value (ecma_make_number_value (num_p));
ret_value = ecma_make_number_value (num_p);
ECMA_OP_TO_NUMBER_FINALIZE (arg_num);
@@ -606,20 +606,20 @@ ecma_builtin_math_object_round (ecma_value_t this_arg __attr_unused___, /**< 'th
* See also:
* ECMA-262 v5, 15.8.2.16
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_math_object_sin (ecma_value_t this_arg __attr_unused___, /**< 'this' argument */
ecma_value_t arg) /**< routine's argument */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
ECMA_OP_TO_NUMBER_TRY_CATCH (arg_num, arg, ret_value);
ecma_number_t *num_p = ecma_alloc_number ();
*num_p = DOUBLE_TO_ECMA_NUMBER_T (sin (arg_num));
ret_value = ecma_make_normal_completion_value (ecma_make_number_value (num_p));
ret_value = ecma_make_number_value (num_p);
ECMA_OP_TO_NUMBER_FINALIZE (arg_num);
return ret_value;
@@ -631,20 +631,20 @@ ecma_builtin_math_object_sin (ecma_value_t this_arg __attr_unused___, /**< 'this
* See also:
* ECMA-262 v5, 15.8.2.17
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_math_object_sqrt (ecma_value_t this_arg __attr_unused___, /**< 'this' argument */
ecma_value_t arg) /**< routine's argument */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
ECMA_OP_TO_NUMBER_TRY_CATCH (arg_num, arg, ret_value);
ecma_number_t *num_p = ecma_alloc_number ();
*num_p = DOUBLE_TO_ECMA_NUMBER_T (sqrt (arg_num));
ret_value = ecma_make_normal_completion_value (ecma_make_number_value (num_p));
ret_value = ecma_make_number_value (num_p);
ECMA_OP_TO_NUMBER_FINALIZE (arg_num);
return ret_value;
@@ -656,21 +656,21 @@ ecma_builtin_math_object_sqrt (ecma_value_t this_arg __attr_unused___, /**< 'thi
* See also:
* ECMA-262 v5, 15.8.2.18
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_math_object_tan (ecma_value_t this_arg __attr_unused___, /**< 'this' argument */
ecma_value_t arg) /**< routine's argument */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
ECMA_OP_TO_NUMBER_TRY_CATCH (arg_num, arg, ret_value);
ecma_number_t *num_p = ecma_alloc_number ();
*num_p = DOUBLE_TO_ECMA_NUMBER_T (tan (arg_num));
ret_value = ecma_make_normal_completion_value (ecma_make_number_value (num_p));
ret_value = ecma_make_number_value (num_p);
ECMA_OP_TO_NUMBER_FINALIZE (arg_num);
return ret_value;
@@ -1,5 +1,5 @@
/* Copyright 2014-2015 Samsung Electronics Co., Ltd.
* Copyright 2015 University of Szeged.
* Copyright 2015-2016 University of Szeged.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -81,15 +81,15 @@ ecma_builtin_number_prototype_helper_round (uint64_t digits, /**< actual number
* See also:
* ECMA-262 v5, 15.7.4.2
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_number_prototype_object_to_string (ecma_value_t this_arg, /**< this argument */
const ecma_value_t *arguments_list_p, /**< arguments list */
ecma_length_t arguments_list_len) /**< number of arguments */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
ECMA_TRY_CATCH (this_value, ecma_builtin_number_prototype_object_value_of (this_arg), ret_value);
ecma_number_t this_arg_number = *ecma_get_number_from_value (this_value);
@@ -102,7 +102,7 @@ ecma_builtin_number_prototype_object_to_string (ecma_value_t this_arg, /**< this
{
ecma_string_t *ret_str_p = ecma_new_ecma_string_from_number (this_arg_number);
ret_value = ecma_make_normal_completion_value (ecma_make_string_value (ret_str_p));
ret_value = ecma_make_string_value (ret_str_p);
}
else
{
@@ -120,13 +120,13 @@ ecma_builtin_number_prototype_object_to_string (ecma_value_t this_arg, /**< this
if (radix < 2 || radix > 36)
{
ret_value = ecma_make_throw_obj_completion_value (ecma_new_standard_error (ECMA_ERROR_RANGE));
ret_value = ecma_raise_range_error ("");
}
else if (radix == 10)
{
ecma_string_t *ret_str_p = ecma_new_ecma_string_from_number (this_arg_number);
ret_value = ecma_make_normal_completion_value (ecma_make_string_value (ret_str_p));
ret_value = ecma_make_string_value (ret_str_p);
}
else
{
@@ -308,7 +308,7 @@ ecma_builtin_number_prototype_object_to_string (ecma_value_t this_arg, /**< this
JERRY_ASSERT (buff_index <= buff_size);
ecma_string_t *str_p = ecma_new_ecma_string_from_utf8 (buff, (lit_utf8_size_t) buff_index);
ret_value = ecma_make_normal_completion_value (ecma_make_string_value (str_p));
ret_value = ecma_make_string_value (str_p);
MEM_FINALIZE_LOCAL_ARRAY (buff);
}
ECMA_OP_TO_NUMBER_FINALIZE (arg_num);
@@ -323,10 +323,10 @@ ecma_builtin_number_prototype_object_to_string (ecma_value_t this_arg, /**< this
* See also:
* ECMA-262 v5, 15.7.4.3
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_number_prototype_object_to_locale_string (ecma_value_t this_arg) /**< this argument */
{
return ecma_builtin_number_prototype_object_to_string (this_arg, NULL, 0);
@@ -338,15 +338,15 @@ ecma_builtin_number_prototype_object_to_locale_string (ecma_value_t this_arg) /*
* See also:
* ECMA-262 v5, 15.7.4.4
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_number_prototype_object_value_of (ecma_value_t this_arg) /**< this argument */
{
if (ecma_is_value_number (this_arg))
{
return ecma_make_normal_completion_value (ecma_copy_value (this_arg, true));
return ecma_copy_value (this_arg, true);
}
else if (ecma_is_value_object (this_arg))
{
@@ -363,11 +363,11 @@ ecma_builtin_number_prototype_object_value_of (ecma_value_t this_arg) /**< this
ecma_number_t *ret_num_p = ecma_alloc_number ();
*ret_num_p = *prim_value_num_p;
return ecma_make_normal_completion_value (ecma_make_number_value (ret_num_p));
return ecma_make_number_value (ret_num_p);
}
}
return ecma_make_throw_obj_completion_value (ecma_new_standard_error (ECMA_ERROR_TYPE));
return ecma_raise_type_error ("");
} /* ecma_builtin_number_prototype_object_value_of */
/**
@@ -376,14 +376,14 @@ ecma_builtin_number_prototype_object_value_of (ecma_value_t this_arg) /**< this
* See also:
* ECMA-262 v5, 15.7.4.5
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_number_prototype_object_to_fixed (ecma_value_t this_arg, /**< this argument */
ecma_value_t arg) /**< routine's argument */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
ECMA_TRY_CATCH (this_value, ecma_builtin_number_prototype_object_value_of (this_arg), ret_value);
ecma_number_t this_num = *ecma_get_number_from_value (this_value);
@@ -393,7 +393,7 @@ ecma_builtin_number_prototype_object_to_fixed (ecma_value_t this_arg, /**< this
/* 2. */
if (arg_num <= -1 || arg_num >= 21)
{
ret_value = ecma_make_throw_obj_completion_value (ecma_new_standard_error (ECMA_ERROR_RANGE));
ret_value = ecma_raise_range_error ("");
}
else
{
@@ -401,7 +401,7 @@ ecma_builtin_number_prototype_object_to_fixed (ecma_value_t this_arg, /**< this
if (ecma_number_is_nan (this_num))
{
ecma_string_t *nan_str_p = ecma_get_magic_string (LIT_MAGIC_STRING_NAN);
ret_value = ecma_make_normal_completion_value (ecma_make_string_value (nan_str_p));
ret_value = ecma_make_string_value (nan_str_p);
}
else
{
@@ -425,11 +425,11 @@ ecma_builtin_number_prototype_object_to_fixed (ecma_value_t this_arg, /**< this
ecma_string_t *neg_inf_str_p = ecma_concat_ecma_strings (neg_str_p, infinity_str_p);
ecma_deref_ecma_string (infinity_str_p);
ecma_deref_ecma_string (neg_str_p);
ret_value = ecma_make_normal_completion_value (ecma_make_string_value (neg_inf_str_p));
ret_value = ecma_make_string_value (neg_inf_str_p);
}
else
{
ret_value = ecma_make_normal_completion_value (ecma_make_string_value (infinity_str_p));
ret_value = ecma_make_string_value (infinity_str_p);
}
}
else
@@ -561,7 +561,7 @@ ecma_builtin_number_prototype_object_to_fixed (ecma_value_t this_arg, /**< this
*p = 0;
ecma_string_t *str = ecma_new_ecma_string_from_utf8 (buff, (lit_utf8_size_t) (p - buff));
ret_value = ecma_make_normal_completion_value (ecma_make_string_value (str));
ret_value = ecma_make_string_value (str);
MEM_FINALIZE_LOCAL_ARRAY (buff);
}
}
@@ -579,14 +579,14 @@ ecma_builtin_number_prototype_object_to_fixed (ecma_value_t this_arg, /**< this
* See also:
* ECMA-262 v5, 15.7.4.6
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_number_prototype_object_to_exponential (ecma_value_t this_arg, /**< this argument */
ecma_value_t arg) /**< routine's argument */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
/* 1. */
ECMA_TRY_CATCH (this_value, ecma_builtin_number_prototype_object_value_of (this_arg), ret_value);
@@ -597,7 +597,7 @@ ecma_builtin_number_prototype_object_to_exponential (ecma_value_t this_arg, /**<
/* 7. */
if (arg_num <= -1.0 || arg_num >= 21.0)
{
ret_value = ecma_make_throw_obj_completion_value (ecma_new_standard_error (ECMA_ERROR_RANGE));
ret_value = ecma_raise_range_error ("");
}
else
{
@@ -605,7 +605,7 @@ ecma_builtin_number_prototype_object_to_exponential (ecma_value_t this_arg, /**<
if (ecma_number_is_nan (this_num))
{
ecma_string_t *nan_str_p = ecma_get_magic_string (LIT_MAGIC_STRING_NAN);
ret_value = ecma_make_normal_completion_value (ecma_make_string_value (nan_str_p));
ret_value = ecma_make_string_value (nan_str_p);
}
else
{
@@ -629,11 +629,11 @@ ecma_builtin_number_prototype_object_to_exponential (ecma_value_t this_arg, /**<
ecma_string_t *neg_inf_str_p = ecma_concat_ecma_strings (neg_str_p, infinity_str_p);
ecma_deref_ecma_string (infinity_str_p);
ecma_deref_ecma_string (neg_str_p);
ret_value = ecma_make_normal_completion_value (ecma_make_string_value (neg_inf_str_p));
ret_value = ecma_make_string_value (neg_inf_str_p);
}
else
{
ret_value = ecma_make_normal_completion_value (ecma_make_string_value (infinity_str_p));
ret_value = ecma_make_string_value (infinity_str_p);
}
}
else
@@ -747,7 +747,7 @@ ecma_builtin_number_prototype_object_to_exponential (ecma_value_t this_arg, /**<
JERRY_ASSERT (actual_char_p - buff < buffer_size);
*actual_char_p = '\0';
ecma_string_t *str = ecma_new_ecma_string_from_utf8 (buff, (lit_utf8_size_t) (actual_char_p - buff));
ret_value = ecma_make_normal_completion_value (ecma_make_string_value (str));
ret_value = ecma_make_string_value (str);
MEM_FINALIZE_LOCAL_ARRAY (buff);
}
}
@@ -764,14 +764,14 @@ ecma_builtin_number_prototype_object_to_exponential (ecma_value_t this_arg, /**<
* See also:
* ECMA-262 v5, 15.7.4.7
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_number_prototype_object_to_precision (ecma_value_t this_arg, /**< this argument */
ecma_value_t arg) /**< routine's argument */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
/* 1. */
ECMA_TRY_CATCH (this_value, ecma_builtin_number_prototype_object_value_of (this_arg), ret_value);
@@ -791,7 +791,7 @@ ecma_builtin_number_prototype_object_to_precision (ecma_value_t this_arg, /**< t
if (ecma_number_is_nan (this_num))
{
ecma_string_t *nan_str_p = ecma_get_magic_string (LIT_MAGIC_STRING_NAN);
ret_value = ecma_make_normal_completion_value (ecma_make_string_value (nan_str_p));
ret_value = ecma_make_string_value (nan_str_p);
}
else
{
@@ -815,17 +815,17 @@ ecma_builtin_number_prototype_object_to_precision (ecma_value_t this_arg, /**< t
ecma_string_t *neg_inf_str_p = ecma_concat_ecma_strings (neg_str_p, infinity_str_p);
ecma_deref_ecma_string (infinity_str_p);
ecma_deref_ecma_string (neg_str_p);
ret_value = ecma_make_normal_completion_value (ecma_make_string_value (neg_inf_str_p));
ret_value = ecma_make_string_value (neg_inf_str_p);
}
else
{
ret_value = ecma_make_normal_completion_value (ecma_make_string_value (infinity_str_p));
ret_value = ecma_make_string_value (infinity_str_p);
}
}
/* 8. */
else if (arg_num < 1.0 || arg_num >= 22.0)
{
ret_value = ecma_make_throw_obj_completion_value (ecma_new_standard_error (ECMA_ERROR_RANGE));
ret_value = ecma_raise_range_error ("");
}
else
{
@@ -980,7 +980,7 @@ ecma_builtin_number_prototype_object_to_precision (ecma_value_t this_arg, /**< t
*actual_char_p = '\0';
ecma_string_t *str_p = ecma_new_ecma_string_from_utf8 (buff, (lit_utf8_size_t) (actual_char_p - buff));
ret_value = ecma_make_normal_completion_value (ecma_make_string_value (str_p));
ret_value = ecma_make_string_value (str_p);
MEM_FINALIZE_LOCAL_ARRAY (buff);
}
}
@@ -47,22 +47,22 @@
/**
* Handle calling [[Call]] of built-in Number object
*
* @return completion-value
* @return ecma value
*/
ecma_completion_value_t
ecma_value_t
ecma_builtin_number_dispatch_call (const ecma_value_t *arguments_list_p, /**< arguments list */
ecma_length_t arguments_list_len) /**< number of arguments */
{
JERRY_ASSERT (arguments_list_len == 0 || arguments_list_p != NULL);
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
if (arguments_list_len == 0)
{
ecma_number_t *zero_num_p = ecma_alloc_number ();
*zero_num_p = ECMA_NUMBER_ZERO;
ret_value = ecma_make_normal_completion_value (ecma_make_number_value (zero_num_p));
ret_value = ecma_make_number_value (zero_num_p);
}
else
{
@@ -75,9 +75,9 @@ ecma_builtin_number_dispatch_call (const ecma_value_t *arguments_list_p, /**< ar
/**
* Handle calling [[Construct]] of built-in Number object
*
* @return completion-value
* @return ecma value
*/
ecma_completion_value_t
ecma_value_t
ecma_builtin_number_dispatch_construct (const ecma_value_t *arguments_list_p, /**< arguments list */
ecma_length_t arguments_list_len) /**< number of arguments */
{
@@ -88,7 +88,7 @@ ecma_builtin_number_dispatch_construct (const ecma_value_t *arguments_list_p, /*
ecma_number_t *zero_num_p = ecma_alloc_number ();
*zero_num_p = ECMA_NUMBER_ZERO;
ecma_completion_value_t completion = ecma_op_create_number_object (ecma_make_number_value (zero_num_p));
ecma_value_t completion = ecma_op_create_number_object (ecma_make_number_value (zero_num_p));
ecma_dealloc_number (zero_num_p);
@@ -1,5 +1,5 @@
/* Copyright 2014-2015 Samsung Electronics Co., Ltd.
* Copyright 2015 University of Szeged.
* Copyright 2015-2016 University of Szeged.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -51,10 +51,10 @@
* See also:
* ECMA-262 v5, 15.2.4.2
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_object_prototype_object_to_string (ecma_value_t this_arg) /**< this argument */
{
return ecma_builtin_helper_object_to_string (this_arg);
@@ -66,10 +66,10 @@ ecma_builtin_object_prototype_object_to_string (ecma_value_t this_arg) /**< this
* See also:
* ECMA-262 v5, 15.2.4.4
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_object_prototype_object_value_of (ecma_value_t this_arg) /**< this argument */
{
return ecma_op_to_object (this_arg);
@@ -81,13 +81,13 @@ ecma_builtin_object_prototype_object_value_of (ecma_value_t this_arg) /**< this
* See also:
* ECMA-262 v5, 15.2.4.3
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_object_prototype_object_to_locale_string (ecma_value_t this_arg) /**< this argument */
{
ecma_completion_value_t return_value = ecma_make_empty_completion_value ();
ecma_value_t return_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
/* 1. */
ECMA_TRY_CATCH (obj_val,
ecma_op_to_object (this_arg),
@@ -104,7 +104,7 @@ ecma_builtin_object_prototype_object_to_locale_string (ecma_value_t this_arg) /*
/* 3. */
if (!ecma_op_is_callable (to_string_val))
{
return_value = ecma_make_throw_obj_completion_value (ecma_new_standard_error (ECMA_ERROR_TYPE));
return_value = ecma_raise_type_error ("");
}
else
{
@@ -127,14 +127,14 @@ ecma_builtin_object_prototype_object_to_locale_string (ecma_value_t this_arg) /*
* See also:
* ECMA-262 v5, 15.2.4.5
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_object_prototype_object_has_own_property (ecma_value_t this_arg, /**< this argument */
ecma_value_t arg) /**< first argument */
{
ecma_completion_value_t return_value = ecma_make_empty_completion_value ();
ecma_value_t return_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
/* 1. */
ECMA_TRY_CATCH (to_string_val,
@@ -155,11 +155,11 @@ ecma_builtin_object_prototype_object_has_own_property (ecma_value_t this_arg, /*
if (property_p != NULL)
{
return_value = ecma_make_simple_completion_value (ECMA_SIMPLE_VALUE_TRUE);
return_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_TRUE);
}
else
{
return_value = ecma_make_simple_completion_value (ECMA_SIMPLE_VALUE_FALSE);
return_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_FALSE);
}
ECMA_FINALIZE (obj_val);
@@ -174,20 +174,20 @@ ecma_builtin_object_prototype_object_has_own_property (ecma_value_t this_arg, /*
* See also:
* ECMA-262 v5, 15.2.4.6
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_object_prototype_object_is_prototype_of (ecma_value_t this_arg, /**< this argument */
ecma_value_t arg) /**< routine's first argument */
{
/* 1. Is the argument an object? */
if (!ecma_is_value_object (arg))
{
return ecma_make_simple_completion_value (ECMA_SIMPLE_VALUE_FALSE);
return ecma_make_simple_value (ECMA_SIMPLE_VALUE_FALSE);
}
ecma_completion_value_t return_value = ecma_make_empty_completion_value ();
ecma_value_t return_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
/* 2. ToObject(this) */
ECMA_TRY_CATCH (obj_value,
@@ -204,9 +204,8 @@ ecma_builtin_object_prototype_object_is_prototype_of (ecma_value_t this_arg, /**
ecma_object_t *v_obj_p = ecma_get_object_from_value (v_obj_value);
bool is_prototype_of = ecma_op_object_is_prototype_of (obj_p, v_obj_p);
return_value = ecma_make_simple_completion_value (is_prototype_of
? ECMA_SIMPLE_VALUE_TRUE
: ECMA_SIMPLE_VALUE_FALSE);
return_value = ecma_make_simple_value (is_prototype_of ? ECMA_SIMPLE_VALUE_TRUE
: ECMA_SIMPLE_VALUE_FALSE);
ECMA_FINALIZE (v_obj_value);
ECMA_FINALIZE (obj_value);
@@ -220,14 +219,14 @@ ecma_builtin_object_prototype_object_is_prototype_of (ecma_value_t this_arg, /**
* See also:
* ECMA-262 v5, 15.2.4.7
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_object_prototype_object_property_is_enumerable (ecma_value_t this_arg, /**< this argument */
ecma_value_t arg) /**< routine's first argument */
{
ecma_completion_value_t return_value = ecma_make_empty_completion_value ();
ecma_value_t return_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
/* 1. */
ECMA_TRY_CATCH (to_string_val,
@@ -251,13 +250,12 @@ ecma_builtin_object_prototype_object_property_is_enumerable (ecma_value_t this_a
{
bool is_enumerable = ecma_is_property_enumerable (property_p);
return_value = ecma_make_simple_completion_value (is_enumerable
? ECMA_SIMPLE_VALUE_TRUE
: ECMA_SIMPLE_VALUE_FALSE);
return_value = ecma_make_simple_value (is_enumerable ? ECMA_SIMPLE_VALUE_TRUE
: ECMA_SIMPLE_VALUE_FALSE);
}
else
{
return_value = ecma_make_simple_completion_value (ECMA_SIMPLE_VALUE_FALSE);
return_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_FALSE);
}
ECMA_FINALIZE (obj_val);
@@ -1,5 +1,5 @@
/* Copyright 2014-2015 Samsung Electronics Co., Ltd.
* Copyright 2015 University of Szeged.
* Copyright 2015-2016 University of Szeged.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -48,15 +48,15 @@
/**
* Handle calling [[Call]] of built-in Object object
*
* @return completion-value
* @return ecma value
*/
ecma_completion_value_t
ecma_value_t
ecma_builtin_object_dispatch_call (const ecma_value_t *arguments_list_p, /**< arguments list */
ecma_length_t arguments_list_len) /**< number of arguments */
{
JERRY_ASSERT (arguments_list_len == 0 || arguments_list_p != NULL);
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
if (arguments_list_len == 0
|| ecma_is_value_undefined (arguments_list_p[0])
@@ -75,9 +75,9 @@ ecma_builtin_object_dispatch_call (const ecma_value_t *arguments_list_p, /**< ar
/**
* Handle calling [[Construct]] of built-in Object object
*
* @return completion-value
* @return ecma value
*/
ecma_completion_value_t
ecma_value_t
ecma_builtin_object_dispatch_construct (const ecma_value_t *arguments_list_p, /**< arguments list */
ecma_length_t arguments_list_len) /**< number of arguments */
{
@@ -87,20 +87,11 @@ ecma_builtin_object_dispatch_construct (const ecma_value_t *arguments_list_p, /*
{
ecma_object_t *obj_p = ecma_op_create_object_object_noarg ();
return ecma_make_normal_completion_value (ecma_make_object_value (obj_p));
return ecma_make_object_value (obj_p);
}
else
{
ecma_completion_value_t new_obj_value = ecma_op_create_object_object_arg (arguments_list_p[0]);
if (!ecma_is_completion_value_normal (new_obj_value))
{
return new_obj_value;
}
else
{
return ecma_make_normal_completion_value (ecma_get_completion_value_value (new_obj_value));
}
return ecma_op_create_object_object_arg (arguments_list_p[0]);
}
} /* ecma_builtin_object_dispatch_construct */
@@ -110,19 +101,19 @@ ecma_builtin_object_dispatch_construct (const ecma_value_t *arguments_list_p, /*
* See also:
* ECMA-262 v5, 15.2.3.2
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_object_object_get_prototype_of (ecma_value_t this_arg __attr_unused___, /**< 'this' argument */
ecma_value_t arg) /**< routine's argument */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
/* 1. */
if (!ecma_is_value_object (arg))
{
ret_value = ecma_make_throw_obj_completion_value (ecma_new_standard_error (ECMA_ERROR_TYPE));
ret_value = ecma_raise_type_error ("");
}
else
{
@@ -132,12 +123,12 @@ ecma_builtin_object_object_get_prototype_of (ecma_value_t this_arg __attr_unused
if (prototype_p)
{
ret_value = ecma_make_normal_completion_value (ecma_make_object_value (prototype_p));
ret_value = ecma_make_object_value (prototype_p);
ecma_ref_object (prototype_p);
}
else
{
ret_value = ecma_make_simple_completion_value (ECMA_SIMPLE_VALUE_NULL);
ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_NULL);
}
}
@@ -150,19 +141,19 @@ ecma_builtin_object_object_get_prototype_of (ecma_value_t this_arg __attr_unused
* See also:
* ECMA-262 v5, 15.2.3.4
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_object_object_get_own_property_names (ecma_value_t this_arg __attr_unused___, /**< 'this' argument */
ecma_value_t arg) /**< routine's argument */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
if (!ecma_is_value_object (arg))
{
/* 1. */
ret_value = ecma_make_throw_obj_completion_value (ecma_new_standard_error (ECMA_ERROR_TYPE));
ret_value = ecma_raise_type_error ("");
}
else
{
@@ -180,19 +171,19 @@ ecma_builtin_object_object_get_own_property_names (ecma_value_t this_arg __attr_
* See also:
* ECMA-262 v5, 15.2.3.8
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_object_object_seal (ecma_value_t this_arg __attr_unused___, /**< 'this' argument */
ecma_value_t arg) /**< routine's argument */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
// 1.
if (!ecma_is_value_object (arg))
{
ret_value = ecma_make_throw_obj_completion_value (ecma_new_standard_error (ECMA_ERROR_TYPE));
ret_value = ecma_raise_type_error ("");
}
else
{
@@ -205,7 +196,7 @@ ecma_builtin_object_object_seal (ecma_value_t this_arg __attr_unused___, /**< 't
ecma_collection_iterator_init (&iter, props_p);
while (ecma_collection_iterator_next (&iter)
&& ecma_is_completion_value_empty (ret_value))
&& ecma_is_value_empty (ret_value))
{
ecma_string_t *property_name_p = ecma_get_string_from_value (*iter.current_value_p);
ecma_property_t *property_p = ecma_op_object_get_own_property (obj_p, property_name_p);
@@ -233,13 +224,13 @@ ecma_builtin_object_object_seal (ecma_value_t this_arg __attr_unused___, /**< 't
ecma_free_values_collection (props_p, true);
if (ecma_is_completion_value_empty (ret_value))
if (ecma_is_value_empty (ret_value))
{
// 3.
ecma_set_object_extensible (obj_p, false);
// 4.
ret_value = ecma_make_normal_completion_value (ecma_copy_value (arg, true));
ret_value = ecma_copy_value (arg, true);
}
}
@@ -252,19 +243,19 @@ ecma_builtin_object_object_seal (ecma_value_t this_arg __attr_unused___, /**< 't
* See also:
* ECMA-262 v5, 15.2.3.9
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_object_object_freeze (ecma_value_t this_arg __attr_unused___, /**< 'this' argument */
ecma_value_t arg) /**< routine's argument */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
// 1.
if (!ecma_is_value_object (arg))
{
ret_value = ecma_make_throw_obj_completion_value (ecma_new_standard_error (ECMA_ERROR_TYPE));
ret_value = ecma_raise_type_error ("");
}
else
{
@@ -278,7 +269,7 @@ ecma_builtin_object_object_freeze (ecma_value_t this_arg __attr_unused___, /**<
ecma_collection_iterator_init (&iter, props_p);
while (ecma_collection_iterator_next (&iter)
&& ecma_is_completion_value_empty (ret_value))
&& ecma_is_value_empty (ret_value))
{
ecma_string_t *property_name_p = ecma_get_string_from_value (*iter.current_value_p);
ecma_property_t *property_p = ecma_op_object_get_own_property (obj_p, property_name_p);
@@ -312,13 +303,13 @@ ecma_builtin_object_object_freeze (ecma_value_t this_arg __attr_unused___, /**<
ecma_free_values_collection (props_p, true);
if (ecma_is_completion_value_empty (ret_value))
if (ecma_is_value_empty (ret_value))
{
// 3.
ecma_set_object_extensible (obj_p, false);
// 4.
ret_value = ecma_make_normal_completion_value (ecma_copy_value (arg, true));
ret_value = ecma_copy_value (arg, true);
}
}
@@ -331,25 +322,25 @@ ecma_builtin_object_object_freeze (ecma_value_t this_arg __attr_unused___, /**<
* See also:
* ECMA-262 v5, 15.2.3.10
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_object_object_prevent_extensions (ecma_value_t this_arg __attr_unused___, /**< 'this' argument */
ecma_value_t arg) /**< routine's argument */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
if (!ecma_is_value_object (arg))
{
ret_value = ecma_make_throw_obj_completion_value (ecma_new_standard_error (ECMA_ERROR_TYPE));
ret_value = ecma_raise_type_error ("");
}
else
{
ecma_object_t *obj_p = ecma_get_object_from_value (arg);
ecma_set_object_extensible (obj_p, false);
ret_value = ecma_make_normal_completion_value (ecma_copy_value (arg, true));
ret_value = ecma_copy_value (arg, true);
}
return ret_value;
@@ -361,19 +352,19 @@ ecma_builtin_object_object_prevent_extensions (ecma_value_t this_arg __attr_unus
* See also:
* ECMA-262 v5, 15.2.3.11
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_object_object_is_sealed (ecma_value_t this_arg __attr_unused___, /**< 'this' argument */
ecma_value_t arg) /**< routine's argument */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
// 1.
if (!ecma_is_value_object (arg))
{
ret_value = ecma_make_throw_obj_completion_value (ecma_new_standard_error (ECMA_ERROR_TYPE));
ret_value = ecma_raise_type_error ("");
}
else
{
@@ -416,9 +407,8 @@ ecma_builtin_object_object_is_sealed (ecma_value_t this_arg __attr_unused___, /*
}
// 4.
ret_value = ecma_make_simple_completion_value (is_sealed
? ECMA_SIMPLE_VALUE_TRUE
: ECMA_SIMPLE_VALUE_FALSE);
ret_value = ecma_make_simple_value (is_sealed ? ECMA_SIMPLE_VALUE_TRUE
: ECMA_SIMPLE_VALUE_FALSE);
}
return ret_value;
@@ -430,19 +420,19 @@ ecma_builtin_object_object_is_sealed (ecma_value_t this_arg __attr_unused___, /*
* See also:
* ECMA-262 v5, 15.2.3.12
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_object_object_is_frozen (ecma_value_t this_arg __attr_unused___, /**< 'this' argument */
ecma_value_t arg) /**< routine's argument */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
// 1.
if (!ecma_is_value_object (arg))
{
ret_value = ecma_make_throw_obj_completion_value (ecma_new_standard_error (ECMA_ERROR_TYPE));
ret_value = ecma_raise_type_error ("");
}
else
{
@@ -493,9 +483,8 @@ ecma_builtin_object_object_is_frozen (ecma_value_t this_arg __attr_unused___, /*
}
// 4.
ret_value = ecma_make_simple_completion_value (is_frozen
? ECMA_SIMPLE_VALUE_TRUE
: ECMA_SIMPLE_VALUE_FALSE);
ret_value = ecma_make_simple_value (is_frozen ? ECMA_SIMPLE_VALUE_TRUE
: ECMA_SIMPLE_VALUE_FALSE);
}
return ret_value;
@@ -507,18 +496,18 @@ ecma_builtin_object_object_is_frozen (ecma_value_t this_arg __attr_unused___, /*
* See also:
* ECMA-262 v5, 15.2.3.13
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_object_object_is_extensible (ecma_value_t this_arg __attr_unused___, /**< 'this' argument */
ecma_value_t arg) /**< routine's argument */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
if (!ecma_is_value_object (arg))
{
ret_value = ecma_make_throw_obj_completion_value (ecma_new_standard_error (ECMA_ERROR_TYPE));
ret_value = ecma_raise_type_error ("");
}
else
{
@@ -526,8 +515,7 @@ ecma_builtin_object_object_is_extensible (ecma_value_t this_arg __attr_unused___
bool extensible = ecma_get_object_extensible (obj_p);
ret_value = ecma_make_simple_completion_value (extensible
? ECMA_SIMPLE_VALUE_TRUE
ret_value = ecma_make_simple_value (extensible ? ECMA_SIMPLE_VALUE_TRUE
: ECMA_SIMPLE_VALUE_FALSE);
}
@@ -540,19 +528,19 @@ ecma_builtin_object_object_is_extensible (ecma_value_t this_arg __attr_unused___
* See also:
* ECMA-262 v5, 15.2.3.14
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_object_object_keys (ecma_value_t this_arg __attr_unused___, /**< 'this' argument */
ecma_value_t arg) /**< routine's argument */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
if (!ecma_is_value_object (arg))
{
/* 1. */
ret_value = ecma_make_throw_obj_completion_value (ecma_new_standard_error (ECMA_ERROR_TYPE));
ret_value = ecma_raise_type_error ("");
}
else
{
@@ -570,20 +558,20 @@ ecma_builtin_object_object_keys (ecma_value_t this_arg __attr_unused___, /**< 't
* See also:
* ECMA-262 v5, 15.2.3.3
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_object_object_get_own_property_descriptor (ecma_value_t this_arg __attr_unused___, /**< 'this' argument */
ecma_value_t arg1, /**< routine's first argument */
ecma_value_t arg2) /**< routine's second argument */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
// 1.
if (!ecma_is_value_object (arg1))
{
ret_value = ecma_make_throw_obj_completion_value (ecma_new_standard_error (ECMA_ERROR_TYPE));
ret_value = ecma_raise_type_error ("");
return ret_value;
}
@@ -608,11 +596,11 @@ ecma_builtin_object_object_get_own_property_descriptor (ecma_value_t this_arg __
ecma_free_property_descriptor (&prop_desc);
ret_value = ecma_make_normal_completion_value (ecma_make_object_value (desc_obj_p));
ret_value = ecma_make_object_value (desc_obj_p);
}
else
{
ret_value = ecma_make_simple_completion_value (ECMA_SIMPLE_VALUE_UNDEFINED);
ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_UNDEFINED);
}
ECMA_FINALIZE (name_str_value);
@@ -626,20 +614,20 @@ ecma_builtin_object_object_get_own_property_descriptor (ecma_value_t this_arg __
* See also:
* ECMA-262 v5, 15.2.3.5
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_object_object_create (ecma_value_t this_arg, /**< 'this' argument */
ecma_value_t arg1, /**< routine's first argument */
ecma_value_t arg2) /**< routine's second argument */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
// 1.
if (!ecma_is_value_object (arg1) && !ecma_is_value_null (arg1))
{
ret_value = ecma_make_throw_obj_completion_value (ecma_new_standard_error (ECMA_ERROR_TYPE));
ret_value = ecma_raise_type_error ("");
}
else
{
@@ -664,10 +652,9 @@ ecma_builtin_object_object_create (ecma_value_t this_arg, /**< 'this' argument *
}
// 5.
if (ecma_is_completion_value_empty (ret_value))
if (ecma_is_value_empty (ret_value))
{
ret_value = ecma_make_normal_completion_value (ecma_copy_value (ecma_make_object_value (result_obj_p),
true));
ret_value = ecma_copy_value (ecma_make_object_value (result_obj_p), true);
}
ecma_deref_object (result_obj_p);
@@ -682,20 +669,20 @@ ecma_builtin_object_object_create (ecma_value_t this_arg, /**< 'this' argument *
* See also:
* ECMA-262 v5, 15.2.3.7
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_object_object_define_properties (ecma_value_t this_arg __attr_unused___, /**< 'this' argument */
ecma_value_t arg1, /**< routine's first argument */
ecma_value_t arg2) /**< routine's second argument */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
// 1.
if (!ecma_is_value_object (arg1))
{
ret_value = ecma_make_throw_obj_completion_value (ecma_new_standard_error (ECMA_ERROR_TYPE));
ret_value = ecma_raise_type_error ("");
}
else
{
@@ -720,7 +707,7 @@ ecma_builtin_object_object_define_properties (ecma_value_t this_arg __attr_unuse
uint32_t property_descriptor_number = 0;
while (ecma_collection_iterator_next (&iter)
&& ecma_is_completion_value_empty (ret_value))
&& ecma_is_value_empty (ret_value))
{
// 5.a
ECMA_TRY_CATCH (desc_obj,
@@ -742,7 +729,7 @@ ecma_builtin_object_object_define_properties (ecma_value_t this_arg __attr_unuse
// 6.
ecma_collection_iterator_init (&iter, prop_names_p);
for (uint32_t index = 0;
index < property_number && ecma_is_completion_value_empty (ret_value);
index < property_number && ecma_is_value_empty (ret_value);
index++)
{
bool is_next = ecma_collection_iterator_next (&iter);
@@ -771,9 +758,9 @@ ecma_builtin_object_object_define_properties (ecma_value_t this_arg __attr_unuse
ecma_free_values_collection (prop_names_p, true);
// 7.
if (ecma_is_completion_value_empty (ret_value))
if (ecma_is_value_empty (ret_value))
{
ret_value = ecma_make_normal_completion_value (ecma_copy_value (arg1, true));
ret_value = ecma_copy_value (arg1, true);
}
ECMA_FINALIZE (props);
@@ -788,20 +775,20 @@ ecma_builtin_object_object_define_properties (ecma_value_t this_arg __attr_unuse
* See also:
* ECMA-262 v5, 15.2.3.6
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_object_object_define_property (ecma_value_t this_arg __attr_unused___, /**< 'this' argument */
ecma_value_t arg1, /**< routine's first argument */
ecma_value_t arg2, /**< routine's second argument */
ecma_value_t arg3) /**< routine's third argument */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
if (!ecma_is_value_object (arg1))
{
ret_value = ecma_make_throw_obj_completion_value (ecma_new_standard_error (ECMA_ERROR_TYPE));
ret_value = ecma_raise_type_error ("");
}
else
{
@@ -826,7 +813,7 @@ ecma_builtin_object_object_define_property (ecma_value_t this_arg __attr_unused_
true),
ret_value);
ret_value = ecma_make_normal_completion_value (ecma_copy_value (arg1, true));
ret_value = ecma_copy_value (arg1, true);
ECMA_FINALIZE (define_own_prop_ret);
ecma_free_property_descriptor (&prop_desc);
@@ -46,9 +46,9 @@
/**
* Handle calling [[Call]] of built-in RangeError object
*
* @return completion-value
* @return ecma value
*/
ecma_completion_value_t
ecma_value_t
ecma_builtin_range_error_dispatch_call (const ecma_value_t *arguments_list_p, /**< arguments list */
ecma_length_t arguments_list_len) /**< number of arguments */
{
@@ -57,7 +57,7 @@ ecma_builtin_range_error_dispatch_call (const ecma_value_t *arguments_list_p, /*
if (arguments_list_len != 0
&& !ecma_is_value_undefined (arguments_list_p[0]))
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
ECMA_TRY_CATCH (msg_str_value,
ecma_op_to_string (arguments_list_p[0]),
@@ -66,7 +66,7 @@ ecma_builtin_range_error_dispatch_call (const ecma_value_t *arguments_list_p, /*
ecma_string_t *message_string_p = ecma_get_string_from_value (msg_str_value);
ecma_object_t *new_error_object_p = ecma_new_standard_error_with_message (ECMA_ERROR_RANGE,
message_string_p);
ret_value = ecma_make_normal_completion_value (ecma_make_object_value (new_error_object_p));
ret_value = ecma_make_object_value (new_error_object_p);
ECMA_FINALIZE (msg_str_value);
@@ -76,16 +76,16 @@ ecma_builtin_range_error_dispatch_call (const ecma_value_t *arguments_list_p, /*
{
ecma_object_t *new_error_object_p = ecma_new_standard_error (ECMA_ERROR_RANGE);
return ecma_make_normal_completion_value (ecma_make_object_value (new_error_object_p));
return ecma_make_object_value (new_error_object_p);
}
} /* ecma_builtin_range_error_dispatch_call */
/**
* Handle calling [[Construct]] of built-in RangeError object
*
* @return completion-value
* @return ecma value
*/
ecma_completion_value_t
ecma_value_t
ecma_builtin_range_error_dispatch_construct (const ecma_value_t *arguments_list_p, /**< arguments list */
ecma_length_t arguments_list_len) /**< number of arguments */
{
@@ -46,9 +46,9 @@
/**
* Handle calling [[Call]] of built-in ReferenceError object
*
* @return completion-value
* @return ecma value
*/
ecma_completion_value_t
ecma_value_t
ecma_builtin_reference_error_dispatch_call (const ecma_value_t *arguments_list_p, /**< arguments list */
ecma_length_t arguments_list_len) /**< number of arguments */
{
@@ -57,7 +57,7 @@ ecma_builtin_reference_error_dispatch_call (const ecma_value_t *arguments_list_p
if (arguments_list_len != 0
&& !ecma_is_value_undefined (arguments_list_p[0]))
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
ECMA_TRY_CATCH (msg_str_value,
ecma_op_to_string (arguments_list_p[0]),
@@ -66,7 +66,7 @@ ecma_builtin_reference_error_dispatch_call (const ecma_value_t *arguments_list_p
ecma_string_t *message_string_p = ecma_get_string_from_value (msg_str_value);
ecma_object_t *new_error_object_p = ecma_new_standard_error_with_message (ECMA_ERROR_REFERENCE,
message_string_p);
ret_value = ecma_make_normal_completion_value (ecma_make_object_value (new_error_object_p));
ret_value = ecma_make_object_value (new_error_object_p);
ECMA_FINALIZE (msg_str_value);
@@ -76,16 +76,16 @@ ecma_builtin_reference_error_dispatch_call (const ecma_value_t *arguments_list_p
{
ecma_object_t *new_error_object_p = ecma_new_standard_error (ECMA_ERROR_REFERENCE);
return ecma_make_normal_completion_value (ecma_make_object_value (new_error_object_p));
return ecma_make_object_value (new_error_object_p);
}
} /* ecma_builtin_reference_error_dispatch_call */
/**
* Handle calling [[Construct]] of built-in ReferenceError object
*
* @return completion-value
* @return ecma value
*/
ecma_completion_value_t
ecma_value_t
ecma_builtin_reference_error_dispatch_construct (const ecma_value_t *arguments_list_p, /**< arguments list */
ecma_length_t arguments_list_len) /**< number of arguments */
{
@@ -53,15 +53,15 @@
* See also:
* ECMA-262 v5, B.2.5.1
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_regexp_prototype_compile (ecma_value_t this_arg, /**< this argument */
ecma_value_t pattern_arg, /**< pattern or RegExp object */
ecma_value_t flags_arg) /**< flags */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
if (!ecma_is_value_object (this_arg)
|| ecma_object_get_class_name (ecma_get_object_from_value (this_arg)) != LIT_MAGIC_STRING_REGEXP_UL)
@@ -131,9 +131,9 @@ ecma_builtin_regexp_prototype_compile (ecma_value_t this_arg, /**< this argument
* we can't copy it without knowing its length."
*/
re_compiled_code_t *new_bc_p = NULL;
ecma_completion_value_t bc_comp = re_compile_bytecode (&new_bc_p, pattern_string_p, flags);
ecma_value_t bc_comp = re_compile_bytecode (&new_bc_p, pattern_string_p, flags);
/* Should always succeed, since we're compiling from a source that has been compiled previously. */
JERRY_ASSERT (ecma_is_completion_value_empty (bc_comp));
JERRY_ASSERT (ecma_is_value_empty (bc_comp));
re_compiled_code_t *old_bc_p = ECMA_GET_POINTER (re_compiled_code_t,
bc_prop_p->u.internal_property.value);
@@ -147,7 +147,7 @@ ecma_builtin_regexp_prototype_compile (ecma_value_t this_arg, /**< this argument
re_initialize_props (this_obj_p, pattern_string_p, flags);
ret_value = ecma_make_normal_completion_value (ecma_make_simple_value (ECMA_SIMPLE_VALUE_UNDEFINED));
ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_UNDEFINED);
ECMA_FINALIZE (obj_this);
}
@@ -178,7 +178,7 @@ ecma_builtin_regexp_prototype_compile (ecma_value_t this_arg, /**< this argument
}
/* Parse flags. */
if (ecma_is_completion_value_empty (ret_value) && !ecma_is_value_undefined (flags_arg))
if (ecma_is_value_empty (ret_value) && !ecma_is_value_undefined (flags_arg))
{
ECMA_TRY_CATCH (flags_str_value,
ecma_op_to_string (flags_arg),
@@ -191,7 +191,7 @@ ecma_builtin_regexp_prototype_compile (ecma_value_t this_arg, /**< this argument
ECMA_FINALIZE (flags_str_value);
}
if (ecma_is_completion_value_empty (ret_value))
if (ecma_is_value_empty (ret_value))
{
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);
@@ -215,7 +215,7 @@ ecma_builtin_regexp_prototype_compile (ecma_value_t this_arg, /**< this argument
ECMA_SET_POINTER (bc_prop_p->u.internal_property.value, new_bc_p);
re_initialize_props (this_obj_p, pattern_string_p, flags);
ret_value = ecma_make_normal_completion_value (ecma_make_simple_value (ECMA_SIMPLE_VALUE_UNDEFINED));
ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_UNDEFINED);
ECMA_FINALIZE (bc_dummy);
@@ -240,14 +240,14 @@ ecma_builtin_regexp_prototype_compile (ecma_value_t this_arg, /**< this argument
* See also:
* ECMA-262 v5, 15.10.6.2
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_regexp_prototype_exec (ecma_value_t this_arg, /**< this argument */
ecma_value_t arg) /**< routine's argument */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
if (!ecma_is_value_object (this_arg)
|| ecma_object_get_class_name (ecma_get_object_from_value (this_arg)) != LIT_MAGIC_STRING_REGEXP_UL)
@@ -271,8 +271,8 @@ ecma_builtin_regexp_prototype_exec (ecma_value_t this_arg, /**< this argument */
if (bytecode_p == NULL)
{
/* Missing bytecode means empty RegExp: '/(?:)/', so always return empty string. */
ecma_completion_value_t result_array = ecma_op_create_array_object (0, 0, false);
ecma_object_t *result_array_obj_p = ecma_get_object_from_completion_value (result_array);
ecma_value_t result_array = ecma_op_create_array_object (0, 0, false);
ecma_object_t *result_array_obj_p = ecma_get_object_from_value (result_array);
ecma_string_t *input_str_p = ecma_get_string_from_value (input_str_value);
re_set_result_array_properties (result_array_obj_p,
input_str_p,
@@ -314,14 +314,14 @@ ecma_builtin_regexp_prototype_exec (ecma_value_t this_arg, /**< this argument */
* See also:
* ECMA-262 v5, 15.10.6.3
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_regexp_prototype_test (ecma_value_t this_arg, /**< this argument */
ecma_value_t arg) /**< routine's argument */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
ECMA_TRY_CATCH (match_value,
ecma_builtin_regexp_prototype_exec (this_arg, arg),
@@ -329,11 +329,11 @@ ecma_builtin_regexp_prototype_test (ecma_value_t this_arg, /**< this argument */
if (ecma_is_value_null (match_value))
{
ret_value = ecma_make_simple_completion_value (ECMA_SIMPLE_VALUE_FALSE);
ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_FALSE);
}
else
{
ret_value = ecma_make_simple_completion_value (ECMA_SIMPLE_VALUE_TRUE);
ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_TRUE);
}
ECMA_FINALIZE (match_value);
@@ -347,13 +347,13 @@ ecma_builtin_regexp_prototype_test (ecma_value_t this_arg, /**< this argument */
* See also:
* ECMA-262 v5, 15.10.6.4
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_regexp_prototype_to_string (ecma_value_t this_arg) /**< this argument */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
if (!ecma_is_value_object (this_arg)
|| ecma_object_get_class_name (ecma_get_object_from_value (this_arg)) != LIT_MAGIC_STRING_REGEXP_UL)
@@ -425,7 +425,7 @@ ecma_builtin_regexp_prototype_to_string (ecma_value_t this_arg) /**< this argume
output_str_p = concat_p;
}
ret_value = ecma_make_normal_completion_value (ecma_make_string_value (output_str_p));
ret_value = ecma_make_string_value (output_str_p);
ECMA_FINALIZE (obj_this);
}
@@ -1,5 +1,5 @@
/* Copyright 2015 Samsung Electronics Co., Ltd.
* Copyright 2015 University of Szeged.
/* Copyright 2015-2016 Samsung Electronics Co., Ltd.
* Copyright 2015-2016 University of Szeged.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -45,9 +45,9 @@
/**
* Handle calling [[Call]] of built-in RegExp object
*
* @return completion-value
* @return ecma value
*/
ecma_completion_value_t
ecma_value_t
ecma_builtin_regexp_dispatch_call (const ecma_value_t *arguments_list_p, /**< arguments list */
ecma_length_t arguments_list_len) /**< number of arguments */
{
@@ -57,13 +57,13 @@ ecma_builtin_regexp_dispatch_call (const ecma_value_t *arguments_list_p, /**< ar
/**
* Handle calling [[Construct]] of built-in RegExp object
*
* @return completion-value
* @return ecma value
*/
ecma_completion_value_t
ecma_value_t
ecma_builtin_regexp_dispatch_construct (const ecma_value_t *arguments_list_p, /**< arguments list */
ecma_length_t arguments_list_len) /**< number of arguments */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
ecma_value_t pattern_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_UNDEFINED);
ecma_value_t flags_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_UNDEFINED);
@@ -83,7 +83,7 @@ ecma_builtin_regexp_dispatch_construct (const ecma_value_t *arguments_list_p, /*
{
if (ecma_is_value_undefined (flags_value))
{
ret_value = ecma_make_normal_completion_value (ecma_copy_value (pattern_value, true));
ret_value = ecma_copy_value (pattern_value, true);
}
else
{
@@ -117,7 +117,7 @@ ecma_builtin_regexp_dispatch_construct (const ecma_value_t *arguments_list_p, /*
pattern_string_p = ecma_get_magic_string (LIT_MAGIC_STRING_EMPTY_NON_CAPTURE_GROUP);
}
if (ecma_is_completion_value_empty (ret_value) && !ecma_is_value_undefined (flags_value))
if (ecma_is_value_empty (ret_value) && !ecma_is_value_undefined (flags_value))
{
ECMA_TRY_CATCH (flags_str_value,
ecma_op_to_string (flags_value),
@@ -127,7 +127,7 @@ ecma_builtin_regexp_dispatch_construct (const ecma_value_t *arguments_list_p, /*
ECMA_FINALIZE (flags_str_value);
}
if (ecma_is_completion_value_empty (ret_value))
if (ecma_is_value_empty (ret_value))
{
ret_value = ecma_op_create_regexp_object (pattern_string_p, flags_string_p);
}
File diff suppressed because it is too large Load Diff
@@ -50,15 +50,15 @@
* See also:
* ECMA-262 v5, 15.5.3.2
*
* @return completion value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_string_object_from_char_code (ecma_value_t this_arg __attr_unused___, /**< 'this' argument */
const ecma_value_t args[], /**< arguments list */
ecma_length_t args_number) /**< number of arguments */
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
ecma_string_t *ret_string_p = NULL;
if (args_number == 0)
@@ -76,7 +76,7 @@ ecma_builtin_string_object_from_char_code (ecma_value_t this_arg __attr_unused__
lit_utf8_size_t utf8_buf_used = 0;
for (ecma_length_t arg_index = 0;
arg_index < args_number && ecma_is_completion_value_empty (ret_value);
arg_index < args_number && ecma_is_value_empty (ret_value);
arg_index++)
{
ECMA_OP_TO_NUMBER_TRY_CATCH (arg_num, args[arg_index], ret_value);
@@ -91,7 +91,7 @@ ecma_builtin_string_object_from_char_code (ecma_value_t this_arg __attr_unused__
ECMA_OP_TO_NUMBER_FINALIZE (arg_num);
}
if (ecma_is_completion_value_empty (ret_value))
if (ecma_is_value_empty (ret_value))
{
ret_string_p = ecma_new_ecma_string_from_utf8 (utf8_buf_p, utf8_buf_used);
}
@@ -99,9 +99,9 @@ ecma_builtin_string_object_from_char_code (ecma_value_t this_arg __attr_unused__
MEM_FINALIZE_LOCAL_ARRAY (utf8_buf_p);
}
if (ecma_is_completion_value_empty (ret_value))
if (ecma_is_value_empty (ret_value))
{
ret_value = ecma_make_normal_completion_value (ecma_make_string_value (ret_string_p));
ret_value = ecma_make_string_value (ret_string_p);
}
return ret_value;
@@ -110,22 +110,22 @@ ecma_builtin_string_object_from_char_code (ecma_value_t this_arg __attr_unused__
/**
* Handle calling [[Call]] of built-in String object
*
* @return completion-value
* @return ecma value
*/
ecma_completion_value_t
ecma_value_t
ecma_builtin_string_dispatch_call (const ecma_value_t *arguments_list_p, /**< arguments list */
ecma_length_t arguments_list_len) /**< number of arguments */
{
JERRY_ASSERT (arguments_list_len == 0 || arguments_list_p != NULL);
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
if (arguments_list_len == 0)
{
ecma_string_t *str_p = ecma_new_ecma_string_from_magic_string_id (LIT_MAGIC_STRING__EMPTY);
ecma_value_t str_value = ecma_make_string_value (str_p);
ret_value = ecma_make_normal_completion_value (str_value);
ret_value = str_value;
}
else
{
@@ -138,9 +138,9 @@ ecma_builtin_string_dispatch_call (const ecma_value_t *arguments_list_p, /**< ar
/**
* Handle calling [[Construct]] of built-in String object
*
* @return completion-value
* @return ecma value
*/
ecma_completion_value_t
ecma_value_t
ecma_builtin_string_dispatch_construct (const ecma_value_t *arguments_list_p, /**< arguments list */
ecma_length_t arguments_list_len) /**< number of arguments */
{
@@ -46,9 +46,9 @@
/**
* Handle calling [[Call]] of built-in SyntaxError object
*
* @return completion-value
* @return ecma value
*/
ecma_completion_value_t
ecma_value_t
ecma_builtin_syntax_error_dispatch_call (const ecma_value_t *arguments_list_p, /**< arguments list */
ecma_length_t arguments_list_len) /**< number of arguments */
{
@@ -57,7 +57,7 @@ ecma_builtin_syntax_error_dispatch_call (const ecma_value_t *arguments_list_p, /
if (arguments_list_len != 0
&& !ecma_is_value_undefined (arguments_list_p[0]))
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
ECMA_TRY_CATCH (msg_str_value,
ecma_op_to_string (arguments_list_p[0]),
@@ -66,7 +66,7 @@ ecma_builtin_syntax_error_dispatch_call (const ecma_value_t *arguments_list_p, /
ecma_string_t *message_string_p = ecma_get_string_from_value (msg_str_value);
ecma_object_t *new_error_object_p = ecma_new_standard_error_with_message (ECMA_ERROR_SYNTAX,
message_string_p);
ret_value = ecma_make_normal_completion_value (ecma_make_object_value (new_error_object_p));
ret_value = ecma_make_object_value (new_error_object_p);
ECMA_FINALIZE (msg_str_value);
@@ -76,16 +76,16 @@ ecma_builtin_syntax_error_dispatch_call (const ecma_value_t *arguments_list_p, /
{
ecma_object_t *new_error_object_p = ecma_new_standard_error (ECMA_ERROR_SYNTAX);
return ecma_make_normal_completion_value (ecma_make_object_value (new_error_object_p));
return ecma_make_object_value (new_error_object_p);
}
} /* ecma_builtin_syntax_error_dispatch_call */
/**
* Handle calling [[Construct]] of built-in SyntaxError object
*
* @return completion-value
* @return ecma value
*/
ecma_completion_value_t
ecma_value_t
ecma_builtin_syntax_error_dispatch_construct (const ecma_value_t *arguments_list_p, /**< arguments list */
ecma_length_t arguments_list_len) /**< number of arguments */
{
@@ -47,16 +47,16 @@
* See also:
* ECMA-262 v5, 13.2.3
*
* @return completion-value
* @return ecma value
*/
ecma_completion_value_t
ecma_value_t
ecma_builtin_type_error_thrower_dispatch_call (const ecma_value_t *arguments_list_p, /**< arguments list */
ecma_length_t arguments_list_len) /**< number of arguments */
{
JERRY_ASSERT (arguments_list_len == 0 || arguments_list_p != NULL);
/* The object should throw TypeError */
return ecma_make_throw_obj_completion_value (ecma_new_standard_error (ECMA_ERROR_TYPE));
return ecma_raise_type_error ("");
} /* ecma_builtin_type_error_thrower_dispatch_call */
/**
@@ -65,16 +65,16 @@ ecma_builtin_type_error_thrower_dispatch_call (const ecma_value_t *arguments_lis
* See also:
* ECMA-262 v5, 13.2.3
*
* @return completion-value
* @return ecma value
*/
ecma_completion_value_t
ecma_value_t
ecma_builtin_type_error_thrower_dispatch_construct (const ecma_value_t *arguments_list_p, /**< arguments list */
ecma_length_t arguments_list_len) /**< number of arguments */
{
JERRY_ASSERT (arguments_list_len == 0 || arguments_list_p != NULL);
/* The object is not a constructor */
return ecma_make_throw_obj_completion_value (ecma_new_standard_error (ECMA_ERROR_TYPE));
return ecma_raise_type_error ("");
} /* ecma_builtin_type_error_thrower_dispatch_construct */
/**
@@ -46,9 +46,9 @@
/**
* Handle calling [[Call]] of built-in TypeError object
*
* @return completion-value
* @return ecma value
*/
ecma_completion_value_t
ecma_value_t
ecma_builtin_type_error_dispatch_call (const ecma_value_t *arguments_list_p, /**< arguments list */
ecma_length_t arguments_list_len) /**< number of arguments */
{
@@ -57,7 +57,7 @@ ecma_builtin_type_error_dispatch_call (const ecma_value_t *arguments_list_p, /**
if (arguments_list_len != 0
&& !ecma_is_value_undefined (arguments_list_p[0]))
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
ECMA_TRY_CATCH (msg_str_value,
ecma_op_to_string (arguments_list_p[0]),
@@ -66,7 +66,7 @@ ecma_builtin_type_error_dispatch_call (const ecma_value_t *arguments_list_p, /**
ecma_string_t *message_string_p = ecma_get_string_from_value (msg_str_value);
ecma_object_t *new_error_object_p = ecma_new_standard_error_with_message (ECMA_ERROR_TYPE,
message_string_p);
ret_value = ecma_make_normal_completion_value (ecma_make_object_value (new_error_object_p));
ret_value = ecma_make_object_value (new_error_object_p);
ECMA_FINALIZE (msg_str_value);
@@ -76,16 +76,16 @@ ecma_builtin_type_error_dispatch_call (const ecma_value_t *arguments_list_p, /**
{
ecma_object_t *new_error_object_p = ecma_new_standard_error (ECMA_ERROR_TYPE);
return ecma_make_normal_completion_value (ecma_make_object_value (new_error_object_p));
return ecma_make_object_value (new_error_object_p);
}
} /* ecma_builtin_type_error_dispatch_call */
/**
* Handle calling [[Construct]] of built-in TypeError object
*
* @return completion-value
* @return ecma value
*/
ecma_completion_value_t
ecma_value_t
ecma_builtin_type_error_dispatch_construct (const ecma_value_t *arguments_list_p, /**< arguments list */
ecma_length_t arguments_list_len) /**< number of arguments */
{
@@ -46,9 +46,9 @@
/**
* Handle calling [[Call]] of built-in UriError object
*
* @return completion-value
* @return ecma value
*/
ecma_completion_value_t
ecma_value_t
ecma_builtin_uri_error_dispatch_call (const ecma_value_t *arguments_list_p, /**< arguments list */
ecma_length_t arguments_list_len) /**< number of arguments */
{
@@ -57,7 +57,7 @@ ecma_builtin_uri_error_dispatch_call (const ecma_value_t *arguments_list_p, /**<
if (arguments_list_len != 0
&& !ecma_is_value_undefined (arguments_list_p[0]))
{
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
ECMA_TRY_CATCH (msg_str_value,
ecma_op_to_string (arguments_list_p[0]),
@@ -66,7 +66,7 @@ ecma_builtin_uri_error_dispatch_call (const ecma_value_t *arguments_list_p, /**<
ecma_string_t *message_string_p = ecma_get_string_from_value (msg_str_value);
ecma_object_t *new_error_object_p = ecma_new_standard_error_with_message (ECMA_ERROR_URI,
message_string_p);
ret_value = ecma_make_normal_completion_value (ecma_make_object_value (new_error_object_p));
ret_value = ecma_make_object_value (new_error_object_p);
ECMA_FINALIZE (msg_str_value);
@@ -76,16 +76,16 @@ ecma_builtin_uri_error_dispatch_call (const ecma_value_t *arguments_list_p, /**<
{
ecma_object_t *new_error_object_p = ecma_new_standard_error (ECMA_ERROR_URI);
return ecma_make_normal_completion_value (ecma_make_object_value (new_error_object_p));
return ecma_make_object_value (new_error_object_p);
}
} /* ecma_builtin_uri_error_dispatch_call */
/**
* Handle calling [[Construct]] of built-in UriError object
*
* @return completion-value
* @return ecma value
*/
ecma_completion_value_t
ecma_value_t
ecma_builtin_uri_error_dispatch_construct (const ecma_value_t *arguments_list_p, /**< arguments list */
ecma_length_t arguments_list_len) /**< number of arguments */
{
@@ -70,13 +70,13 @@ ecma_builtin_bin_search_for_magic_string_id_in_array (const lit_magic_string_id_
is_extensible, \
is_static, \
lowercase_name) \
extern ecma_completion_value_t \
extern ecma_value_t \
ecma_builtin_ ## lowercase_name ## _dispatch_call (const ecma_value_t *, \
ecma_length_t); \
extern ecma_completion_value_t \
extern ecma_value_t \
ecma_builtin_ ## lowercase_name ## _dispatch_construct (const ecma_value_t *, \
ecma_length_t); \
extern ecma_completion_value_t \
extern ecma_value_t \
ecma_builtin_ ## lowercase_name ## _dispatch_routine (uint16_t builtin_routine_id, \
ecma_value_t this_arg_value, \
const ecma_value_t [], \
+12 -12
View File
@@ -31,7 +31,7 @@
* @{
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_dispatch_routine (ecma_builtin_id_t builtin_object_id,
uint16_t builtin_routine_id,
ecma_value_t this_arg_value,
@@ -503,9 +503,9 @@ ecma_builtin_make_function_object_for_routine (ecma_builtin_id_t builtin_id, /**
/**
* Handle calling [[Call]] of built-in object
*
* @return completion-value
* @return ecma value
*/
ecma_completion_value_t
ecma_value_t
ecma_builtin_dispatch_call (ecma_object_t *obj_p, /**< built-in object */
ecma_value_t this_arg_value, /**< 'this' argument value */
const ecma_value_t *arguments_list_p, /**< arguments list */
@@ -513,7 +513,7 @@ ecma_builtin_dispatch_call (ecma_object_t *obj_p, /**< built-in object */
{
JERRY_ASSERT (ecma_get_object_is_builtin (obj_p));
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
if (ecma_get_object_type (obj_p) == ECMA_OBJECT_TYPE_BUILT_IN_FUNCTION)
{
@@ -585,7 +585,7 @@ ecma_builtin_dispatch_call (ecma_object_t *obj_p, /**< built-in object */
}
}
JERRY_ASSERT (!ecma_is_completion_value_empty (ret_value));
JERRY_ASSERT (!ecma_is_value_empty (ret_value));
return ret_value;
} /* ecma_builtin_dispatch_call */
@@ -593,9 +593,9 @@ ecma_builtin_dispatch_call (ecma_object_t *obj_p, /**< built-in object */
/**
* Handle calling [[Construct]] of built-in object
*
* @return completion-value
* @return ecma value
*/
ecma_completion_value_t
ecma_value_t
ecma_builtin_dispatch_construct (ecma_object_t *obj_p, /**< built-in object */
const ecma_value_t *arguments_list_p, /**< arguments list */
ecma_length_t arguments_list_len) /**< arguments list length */
@@ -603,7 +603,7 @@ ecma_builtin_dispatch_construct (ecma_object_t *obj_p, /**< built-in object */
JERRY_ASSERT (ecma_get_object_type (obj_p) == ECMA_OBJECT_TYPE_FUNCTION);
JERRY_ASSERT (ecma_get_object_is_builtin (obj_p));
ecma_completion_value_t ret_value = ecma_make_empty_completion_value ();
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
ecma_property_t *built_in_id_prop_p = ecma_get_internal_property (obj_p,
ECMA_INTERNAL_PROPERTY_BUILT_IN_ID);
@@ -646,7 +646,7 @@ ecma_builtin_dispatch_construct (ecma_object_t *obj_p, /**< built-in object */
}
}
JERRY_ASSERT (!ecma_is_completion_value_empty (ret_value));
JERRY_ASSERT (!ecma_is_value_empty (ret_value));
return ret_value;
} /* ecma_builtin_dispatch_construct */
@@ -654,10 +654,10 @@ ecma_builtin_dispatch_construct (ecma_object_t *obj_p, /**< built-in object */
/**
* Dispatcher of built-in routines
*
* @return completion-value
* Returned value must be freed with ecma_free_completion_value.
* @return ecma value
* Returned value must be freed with ecma_free_value.
*/
static ecma_completion_value_t
static ecma_value_t
ecma_builtin_dispatch_routine (ecma_builtin_id_t builtin_object_id, /**< built-in object' identifier */
uint16_t builtin_routine_id, /**< builtin-wide identifier
* of the built-in object's
@@ -38,10 +38,10 @@ typedef enum
extern void ecma_init_builtins (void);
extern void ecma_finalize_builtins (void);
extern ecma_completion_value_t
extern ecma_value_t
ecma_builtin_dispatch_call (ecma_object_t *, ecma_value_t,
const ecma_value_t *, ecma_length_t);
extern ecma_completion_value_t
extern ecma_value_t
ecma_builtin_dispatch_construct (ecma_object_t *,
const ecma_value_t *, ecma_length_t);
extern ecma_property_t *