Propagate strict mode for Proxy targets during delete (#4273)
After ES5.1 if the delete returns false a TypeError should be thrown in strict mode. JerryScript-DCO-1.0-Signed-off-by: Peter Gal pgal.usz@partner.samsung.com
This commit is contained in:
@@ -1314,7 +1314,8 @@ ecma_proxy_object_set (ecma_object_t *obj_p, /**< proxy object */
|
||||
*/
|
||||
ecma_value_t
|
||||
ecma_proxy_object_delete_property (ecma_object_t *obj_p, /**< proxy object */
|
||||
ecma_string_t *prop_name_p) /**< property name */
|
||||
ecma_string_t *prop_name_p, /**< property name */
|
||||
bool is_strict) /**< delete in strict mode? */
|
||||
{
|
||||
JERRY_ASSERT (ECMA_OBJECT_IS_PROXY (obj_p));
|
||||
|
||||
@@ -1338,7 +1339,7 @@ ecma_proxy_object_delete_property (ecma_object_t *obj_p, /**< proxy object */
|
||||
/* 8. */
|
||||
if (ecma_is_value_undefined (trap))
|
||||
{
|
||||
return ecma_op_object_delete (target_obj_p, prop_name_p, false);
|
||||
return ecma_op_object_delete (target_obj_p, prop_name_p, is_strict);
|
||||
}
|
||||
|
||||
ecma_object_t *func_obj_p = ecma_get_object_from_value (trap);
|
||||
|
||||
Reference in New Issue
Block a user