Implement built-in flag support for arguments (#4774)

Duplicate check can be removed from property enumeration.

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
This commit is contained in:
Zoltan Herczeg
2021-09-22 11:33:13 +02:00
committed by GitHub
parent 053bfa0f9f
commit ca185acded
5 changed files with 143 additions and 165 deletions
@@ -13,6 +13,7 @@
* limitations under the License.
*/
#include "ecma-arguments-object.h"
#include "ecma-array-object.h"
#include "ecma-builtins.h"
#include "ecma-exceptions.h"
@@ -151,6 +152,12 @@ ecma_op_general_object_delete (ecma_object_t *obj_p, /**< the object */
ecma_builtin_delete_built_in_property (obj_p, property_name_p);
break;
}
case ECMA_OBJECT_TYPE_CLASS:
{
JERRY_ASSERT (ecma_object_class_is (obj_p, ECMA_OBJECT_CLASS_ARGUMENTS));
ecma_op_arguments_delete_built_in_property (obj_p, property_name_p);
break;
}
case ECMA_OBJECT_TYPE_FUNCTION:
{
ecma_op_function_delete_built_in_property (obj_p, property_name_p);
@@ -168,7 +175,15 @@ ecma_op_general_object_delete (ecma_object_t *obj_p, /**< the object */
}
}
#else /* !JERRY_ESNEXT */
ecma_builtin_delete_built_in_property (obj_p, property_name_p);
if (type == ECMA_OBJECT_TYPE_CLASS)
{
JERRY_ASSERT (ecma_object_class_is (obj_p, ECMA_OBJECT_CLASS_ARGUMENTS));
ecma_op_arguments_delete_built_in_property (obj_p, property_name_p);
}
else
{
ecma_builtin_delete_built_in_property (obj_p, property_name_p);
}
#endif /* JERRY_ESNEXT */
}