| Index: src/v8natives.js
|
| ===================================================================
|
| --- src/v8natives.js (revision 6761)
|
| +++ src/v8natives.js (working copy)
|
| @@ -586,17 +586,20 @@
|
| // Step 7
|
| if (desc.isConfigurable() ||
|
| (desc.hasEnumerable() &&
|
| - desc.isEnumerable() != current.isEnumerable()))
|
| + desc.isEnumerable() != current.isEnumerable())) {
|
| throw MakeTypeError("redefine_disallowed", ["defineProperty"]);
|
| + }
|
| // Step 8
|
| if (!IsGenericDescriptor(desc)) {
|
| // Step 9a
|
| - if (IsDataDescriptor(current) != IsDataDescriptor(desc))
|
| + if (IsDataDescriptor(current) != IsDataDescriptor(desc)) {
|
| throw MakeTypeError("redefine_disallowed", ["defineProperty"]);
|
| + }
|
| // Step 10a
|
| if (IsDataDescriptor(current) && IsDataDescriptor(desc)) {
|
| - if (!current.isWritable() && desc.isWritable())
|
| + if (!current.isWritable() && desc.isWritable()) {
|
| throw MakeTypeError("redefine_disallowed", ["defineProperty"]);
|
| + }
|
| if (!current.isWritable() && desc.hasValue() &&
|
| !SameValue(desc.getValue(), current.getValue())) {
|
| throw MakeTypeError("redefine_disallowed", ["defineProperty"]);
|
| @@ -604,11 +607,12 @@
|
| }
|
| // Step 11
|
| if (IsAccessorDescriptor(desc) && IsAccessorDescriptor(current)) {
|
| - if (desc.hasSetter() && !SameValue(desc.getSet(), current.getSet())){
|
| + if (desc.hasSetter() && !SameValue(desc.getSet(), current.getSet())) {
|
| throw MakeTypeError("redefine_disallowed", ["defineProperty"]);
|
| }
|
| - if (desc.hasGetter() && !SameValue(desc.getGet(),current.getGet()))
|
| + if (desc.hasGetter() && !SameValue(desc.getGet(),current.getGet())) {
|
| throw MakeTypeError("redefine_disallowed", ["defineProperty"]);
|
| + }
|
| }
|
| }
|
| }
|
|
|