Change guarding of ecma_is_value_bigint and ecma_is_value_symbol (#4269)

JerryScript-DCO-1.0-Signed-off-by: Virag Orkenyi orkvi@inf.u-szeged.hu
This commit is contained in:
Virag Orkenyi 2020-10-05 14:43:04 +02:00 committed by GitHub
parent a084fdbe45
commit fb1c21beb7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 19 additions and 41 deletions

View File

@ -323,7 +323,6 @@ ecma_is_value_string (ecma_value_t value) /**< ecma value */
return ((value & (ECMA_VALUE_TYPE_MASK - 0x4)) == ECMA_TYPE_STRING);
} /* ecma_is_value_string */
#if ENABLED (JERRY_ESNEXT)
/**
* Check if the value is symbol.
*
@ -333,11 +332,13 @@ ecma_is_value_string (ecma_value_t value) /**< ecma value */
inline bool JERRY_ATTR_CONST JERRY_ATTR_ALWAYS_INLINE
ecma_is_value_symbol (ecma_value_t value) /**< ecma value */
{
#if ENABLED (JERRY_ESNEXT)
return (ecma_get_value_type_field (value) == ECMA_TYPE_SYMBOL);
} /* ecma_is_value_symbol */
#else /* ENABLED (JERRY_ESNEXT) */
JERRY_UNUSED (value);
return false;
#endif /* ENABLED (JERRY_ESNEXT) */
#if ENABLED (JERRY_BUILTIN_BIGINT)
} /* ecma_is_value_symbol */
/**
* Check if the value is bigint.
@ -348,11 +349,14 @@ ecma_is_value_symbol (ecma_value_t value) /**< ecma value */
inline bool JERRY_ATTR_CONST JERRY_ATTR_ALWAYS_INLINE
ecma_is_value_bigint (ecma_value_t value) /**< ecma value */
{
#if ENABLED (JERRY_BUILTIN_BIGINT)
return (ecma_get_value_type_field (value) == ECMA_TYPE_BIGINT);
#else /* !ENABLED (JERRY_BUILTIN_BIGINT) */
JERRY_UNUSED (value);
return false;
#endif /* ENABLED (JERRY_BUILTIN_BIGINT) */
} /* ecma_is_value_bigint */
#endif /* ENABLED (JERRY_BUILTIN_BIGINT) */
/**
* Check if the value can be property name.
*
@ -429,8 +433,8 @@ ecma_check_value_type_is_spec_defined (ecma_value_t value) /**< ecma value */
|| ecma_is_value_boolean (value)
|| ecma_is_value_number (value)
|| ecma_is_value_string (value)
|| ECMA_CHECK_SYMBOL_IN_ASSERT (value)
|| ECMA_CHECK_BIGINT_IN_ASSERT (value)
|| ecma_is_value_bigint (value)
|| ecma_is_value_symbol (value)
|| ecma_is_value_object (value));
} /* ecma_check_value_type_is_spec_defined */

View File

@ -192,30 +192,6 @@ typedef enum
*/
#define ECMA_BOOL_TO_BITFIELD(x) ((x) ? 1 : 0)
#if ENABLED (JERRY_ESNEXT)
/**
* JERRY_ASSERT compatible macro for checking whether the given ecma-value is symbol
*/
#define ECMA_CHECK_SYMBOL_IN_ASSERT(value) (ecma_is_value_symbol ((value)))
#else /* !ENABLED (JERRY_ESNEXT) */
/**
* JERRY_ASSERT compatible macro for checking whether the given ecma-value is symbol
*/
#define ECMA_CHECK_SYMBOL_IN_ASSERT(value) (false)
#endif /* ENABLED (JERRY_ESNEXT) */
#if ENABLED (JERRY_BUILTIN_BIGINT)
/**
* JERRY_ASSERT compatible macro for checking whether the given ecma-value is bigint
*/
#define ECMA_CHECK_BIGINT_IN_ASSERT(value) ecma_is_value_bigint(value)
#else /* !ENABLED (JERRY_BUILTIN_BIGINT) */
/**
* JERRY_ASSERT compatible macro for checking whether the given ecma-value is bigint
*/
#define ECMA_CHECK_BIGINT_IN_ASSERT(value) false
#endif /* ENABLED (JERRY_BUILTIN_BIGINT) */
/**
* Check whether the given type is ECMA_OBJECT_TYPE_PROXY
*
@ -252,12 +228,8 @@ bool JERRY_ATTR_CONST ecma_are_values_integer_numbers (ecma_value_t first_value,
bool JERRY_ATTR_CONST ecma_is_value_float_number (ecma_value_t value);
bool JERRY_ATTR_CONST ecma_is_value_number (ecma_value_t value);
bool JERRY_ATTR_CONST ecma_is_value_string (ecma_value_t value);
#if ENABLED (JERRY_ESNEXT)
bool JERRY_ATTR_CONST ecma_is_value_symbol (ecma_value_t value);
#endif /* ENABLED (JERRY_ESNEXT) */
#if ENABLED (JERRY_BUILTIN_BIGINT)
bool JERRY_ATTR_CONST ecma_is_value_bigint (ecma_value_t value);
#endif /* ENABLED (JERRY_BUILTIN_BIGINT) */
bool JERRY_ATTR_CONST ecma_is_value_prop_name (ecma_value_t value);
bool JERRY_ATTR_CONST ecma_is_value_direct_string (ecma_value_t value);
bool JERRY_ATTR_CONST ecma_is_value_non_direct_string (ecma_value_t value);

View File

@ -287,8 +287,10 @@ ecma_op_strict_equality_compare (ecma_value_t x, /**< first operand */
/* The +0 === -0 case handled below. */
}
JERRY_ASSERT (ecma_is_value_number (x) || ecma_is_value_string (x) || ECMA_CHECK_BIGINT_IN_ASSERT (x));
JERRY_ASSERT (ecma_is_value_number (y) || ecma_is_value_string (y) || ECMA_CHECK_BIGINT_IN_ASSERT (y));
JERRY_ASSERT (ecma_is_value_number (x) || ecma_is_value_string (x) ||
ecma_is_value_bigint (x));
JERRY_ASSERT (ecma_is_value_number (y) || ecma_is_value_string (y) ||
ecma_is_value_bigint (y));
if (ecma_is_value_string (x))
{

View File

@ -130,7 +130,7 @@ ecma_op_same_value (ecma_value_t x, /**< ecma value */
}
#endif /* ENABLED (JERRY_BUILTIN_BIGINT) */
JERRY_ASSERT (ecma_is_value_object (x) || ECMA_CHECK_SYMBOL_IN_ASSERT (x));
JERRY_ASSERT (ecma_is_value_object (x) || ecma_is_value_symbol (x));
return false;
} /* ecma_op_same_value */
@ -260,7 +260,7 @@ ecma_op_to_boolean (ecma_value_t value) /**< ecma value */
}
#endif /* ENABLED (JERRY_BUILTIN_BIGINT) */
JERRY_ASSERT (ecma_is_value_object (value) || ECMA_CHECK_SYMBOL_IN_ASSERT (value));
JERRY_ASSERT (ecma_is_value_object (value) || ecma_is_value_symbol (value));
return true;
} /* ecma_op_to_boolean */

View File

@ -86,7 +86,7 @@ ecma_op_create_object_object_arg (ecma_value_t value) /**< argument of construct
|| ecma_is_value_number (value)
|| ecma_is_value_prop_name (value)
|| ecma_is_value_boolean (value)
|| ECMA_CHECK_BIGINT_IN_ASSERT (value));
|| ecma_is_value_bigint (value));
return ecma_op_to_object (value);
}