Skip to content

Commit 7dc2d1d

Browse files
Daniel Ballarerobika
authored andcommitted
Fix delete operation in Set objects (#3203)
Delete should return false if an element doesn't exist in a set. ECMA_VALUE_EMPTY wasn't checked in case of a deleted property. JerryScript-DCO-1.0-Signed-off-by: Daniel Balla [email protected]
1 parent eb97860 commit 7dc2d1d

File tree

2 files changed

+5
-1
lines changed

2 files changed

+5
-1
lines changed

jerry-core/ecma/operations/ecma-container-object.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -573,7 +573,7 @@ ecma_op_container_delete (ecma_value_t this_arg, /**< this argument */
573573

574574
ecma_deref_ecma_string (prop_name_p);
575575

576-
if (property_p == NULL)
576+
if (property_p == NULL || ecma_is_value_empty (ECMA_PROPERTY_VALUE_PTR (property_p)->value))
577577
{
578578
return ECMA_VALUE_FALSE;
579579
}

tests/jerry/es2015/set.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,3 +87,7 @@ assert (set.size === 3);
8787

8888
set.clear();
8989
assert(set.size === 0);
90+
91+
set.add(3);
92+
assert(set.delete(3));
93+
assert(!set.delete(3));

0 commit comments

Comments
 (0)