| Index: src/v8natives.js
|
| ===================================================================
|
| --- src/v8natives.js (revision 6043)
|
| +++ 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() &&
|
| + (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);
|
| }
|
| }
|
|
|