Fix Symbol's description default value (#4077)

In the standard if we create a Symbol object without adding a description value
default value is undefined not empty string.

JerryScript-DCO-1.0-Signed-off-by: bence gabor kis kisbg@inf.u-szeged.hu
This commit is contained in:
kisbg
2020-08-07 15:00:44 +02:00
committed by GitHub
parent 58a649ffe8
commit cebb6aee5c
6 changed files with 45 additions and 18 deletions
@@ -119,7 +119,15 @@ ecma_builtin_symbol_for_helper (ecma_value_t value_to_find) /**< symbol or ecma-
if (is_for)
{
ecma_string_t *symbol_desc_p = ecma_get_symbol_description (value_p);
ecma_value_t symbol_desc = ecma_get_symbol_description (value_p);
if (ecma_is_value_undefined (symbol_desc))
{
ecma_ref_ecma_string (value_p);
return ecma_make_symbol_value (value_p);
}
ecma_string_t *symbol_desc_p = ecma_get_string_from_value (symbol_desc);
if (ecma_compare_ecma_strings (symbol_desc_p, string_p))
{
@@ -133,9 +141,16 @@ ecma_builtin_symbol_for_helper (ecma_value_t value_to_find) /**< symbol or ecma-
{
if (string_p == value_p)
{
ecma_string_t *symbol_desc_p = ecma_get_symbol_description (string_p);
ecma_value_t symbol_desc = ecma_get_symbol_description (string_p);
if (ecma_is_value_undefined (symbol_desc))
{
return symbol_desc;
}
ecma_string_t *symbol_desc_p = ecma_get_string_from_value (symbol_desc);
ecma_ref_ecma_string (symbol_desc_p);
return ecma_make_string_value (symbol_desc_p);
return symbol_desc;
}
}
}