Skip to content

Commit 8a6e82a

Browse files
committed
fix #392, #393
1 parent b34b0c3 commit 8a6e82a

1 file changed

Lines changed: 5 additions & 3 deletions

File tree

modules/es6.reflect.set.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,11 @@ function set(target, propertyKey, V /* , receiver */) {
2020
}
2121
if (has(ownDesc, 'value')) {
2222
if (ownDesc.writable === false || !isObject(receiver)) return false;
23-
existingDescriptor = gOPD.f(receiver, propertyKey) || createDesc(0);
24-
existingDescriptor.value = V;
25-
dP.f(receiver, propertyKey, existingDescriptor);
23+
if (existingDescriptor = gOPD.f(receiver, propertyKey)) {
24+
if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false;
25+
existingDescriptor.value = V;
26+
dP.f(receiver, propertyKey, existingDescriptor);
27+
} else dP.f(receiver, propertyKey, createDesc(0, V));
2628
return true;
2729
}
2830
return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true);

0 commit comments

Comments
 (0)