Index: src/v8natives.js |
diff --git a/src/v8natives.js b/src/v8natives.js |
index 9612f16f961a5996d9c93f26b87c63b23fd32075..00d8a88d7342222a04357665c0b4ae9f11c0501b 100644 |
--- a/src/v8natives.js |
+++ b/src/v8natives.js |
@@ -840,8 +840,18 @@ function DefineObjectProperty(obj, p, desc, should_throw) { |
// property. |
// Step 12 - updating an existing accessor property with an accessor |
// descriptor. |
- var getter = desc.hasGetter() ? desc.getGet() : null; |
- var setter = desc.hasSetter() ? desc.getSet() : null; |
+ var getter = null; |
+ if (desc.hasGetter()) { |
+ getter = desc.getGet(); |
+ } else if (IsAccessorDescriptor(current) && current.hasGetter()) { |
+ getter = current.getGet(); |
+ } |
+ var setter = null; |
+ if (desc.hasSetter()) { |
+ setter = desc.getSet(); |
+ } else if (IsAccessorDescriptor(current) && current.hasSetter()) { |
+ setter = current.getSet(); |
+ } |
%DefineAccessorPropertyUnchecked(obj, p, getter, setter, flag); |
} |
return true; |