Update object.prototype.toString to conform ES11 standard (#4196)

JerryScript-DCO-1.0-Signed-off-by: bence gabor kis kisbg@inf.u-szeged.hu
This commit is contained in:
kisbg
2020-10-07 15:05:17 +02:00
committed by GitHub
parent 17fe441819
commit 99c7099eaa
4 changed files with 31 additions and 10 deletions
@@ -167,6 +167,18 @@ ecma_builtin_helper_object_to_string (const ecma_value_t this_arg) /**< this arg
ecma_deref_object (obj_p);
return ecma_builtin_helper_object_to_string_tag_helper (tag);
}
else if (builtin_tag != LIT_MAGIC_STRING_ARGUMENTS_UL
&& builtin_tag != LIT_MAGIC_STRING_FUNCTION_UL
&& builtin_tag != LIT_MAGIC_STRING_ERROR_UL
&& builtin_tag != LIT_MAGIC_STRING_BOOLEAN_UL
&& builtin_tag != LIT_MAGIC_STRING_NUMBER_UL
&& builtin_tag != LIT_MAGIC_STRING_STRING_UL
&& builtin_tag != LIT_MAGIC_STRING_DATE_UL
&& builtin_tag != LIT_MAGIC_STRING_REGEXP_UL
&& builtin_tag != LIT_MAGIC_STRING_ARRAY_UL)
{
builtin_tag = LIT_MAGIC_STRING_OBJECT_UL;
}
ecma_free_value (tag);
#endif /* ENABLED (JERRY_ESNEXT) */
+13
View File
@@ -2670,6 +2670,19 @@ ecma_object_get_class_name (ecma_object_t *obj_p) /**< object */
{
return LIT_MAGIC_STRING_FUNCTION_UL;
}
#if ENABLED (JERRY_ESNEXT)
case ECMA_OBJECT_TYPE_PROXY:
{
ecma_proxy_object_t *proxy_obj_p = (ecma_proxy_object_t *) obj_p;
if (!ecma_is_value_null (proxy_obj_p->target) && ecma_is_value_object (proxy_obj_p->target))
{
ecma_object_t *target_obj_p = ecma_get_object_from_value (proxy_obj_p->target);
return ecma_object_get_class_name (target_obj_p);
}
return LIT_MAGIC_STRING_OBJECT_UL;
}
#endif /* ENABLED (JERRY_ESNEXT) */
default:
{
JERRY_ASSERT (type == ECMA_OBJECT_TYPE_GENERAL || type == ECMA_OBJECT_TYPE_PROXY);