diff options
Diffstat (limited to 'node_modules/core-js/modules/es6.reflect.set.js')
-rw-r--r-- | node_modules/core-js/modules/es6.reflect.set.js | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/node_modules/core-js/modules/es6.reflect.set.js b/node_modules/core-js/modules/es6.reflect.set.js index e2a89816c..d809d7a4e 100644 --- a/node_modules/core-js/modules/es6.reflect.set.js +++ b/node_modules/core-js/modules/es6.reflect.set.js @@ -20,9 +20,11 @@ function set(target, propertyKey, V /* , receiver */) { } if (has(ownDesc, 'value')) { if (ownDesc.writable === false || !isObject(receiver)) return false; - existingDescriptor = gOPD.f(receiver, propertyKey) || createDesc(0); - existingDescriptor.value = V; - dP.f(receiver, propertyKey, existingDescriptor); + if (existingDescriptor = gOPD.f(receiver, propertyKey)) { + if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false; + existingDescriptor.value = V; + dP.f(receiver, propertyKey, existingDescriptor); + } else dP.f(receiver, propertyKey, createDesc(0, V)); return true; } return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true); |