if (zobj->properties) {
HT_FLAGS(zobj->properties) |= HASH_FLAG_HAS_EMPTY_IND;
}
- goto exit;
+ return;
}
- /* Reset the IS_PROP_UNINIT flag, if it exists. */
- Z_PROP_FLAG_P(slot) = 0;
+ if (UNEXPECTED(Z_PROP_FLAG_P(slot) == IS_PROP_UNINIT)) {
+ /* Reset the IS_PROP_UNINIT flag, if it exists and bypass __unset(). */
+ Z_PROP_FLAG_P(slot) = 0;
- goto exit;
++ return;
+ }
} else if (EXPECTED(IS_DYNAMIC_PROPERTY_OFFSET(property_offset))
&& EXPECTED(zobj->properties != NULL)) {
if (UNEXPECTED(GC_REFCOUNT(zobj->properties) > 1)) {