Chromium Code Reviews| Index: src/v8natives.js |
| =================================================================== |
| --- src/v8natives.js (revision 6011) |
| +++ src/v8natives.js (working copy) |
| @@ -563,7 +563,7 @@ |
| } |
| // Step 7 |
| - if (desc.isConfigurable() || desc.isEnumerable() != current.isEnumerable()) |
| + if (desc.isConfigurable() || desc.isEnumerable() != current.isEnumerable()) |
| throw MakeTypeError("redefine_disallowed", ["defineProperty"]); |
| // Step 9 |
| if (IsDataDescriptor(current) != IsDataDescriptor(desc)) |
| @@ -623,10 +623,12 @@ |
| } |
| %DefineOrRedefineDataProperty(obj, p, value, flag); |
| } else { |
| - if (desc.hasGetter() && IS_FUNCTION(desc.getGet())) { |
| + if (desc.hasGetter() && |
|
Lasse Reichstein
2010/12/16 09:43:34
How about putting desc.getGet() in a variable (and
Rico
2010/12/16 12:17:55
Well, we don't know if desc has a getter, intuitiv
|
| + (IS_FUNCTION(desc.getGet()) || IS_UNDEFINED(desc.getGet()))) { |
| %DefineOrRedefineAccessorProperty(obj, p, GETTER, desc.getGet(), flag); |
| } |
| - if (desc.hasSetter() && IS_FUNCTION(desc.getSet())) { |
| + if (desc.hasSetter() && |
| + (IS_FUNCTION(desc.getSet()) || IS_UNDEFINED(desc.getSet()))) { |
| %DefineOrRedefineAccessorProperty(obj, p, SETTER, desc.getSet(), flag); |
| } |
| } |