| Index: src/v8natives.js
|
| ===================================================================
|
| --- src/v8natives.js (revision 6095)
|
| +++ 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);
|
| }
|
| }
|
| @@ -909,19 +911,13 @@
|
| }
|
|
|
|
|
| -function BooleanToJSON(key) {
|
| - return CheckJSONPrimitive(this.valueOf());
|
| -}
|
| -
|
| -
|
| // ----------------------------------------------------------------------------
|
|
|
|
|
| function SetupBoolean() {
|
| InstallFunctions($Boolean.prototype, DONT_ENUM, $Array(
|
| "toString", BooleanToString,
|
| - "valueOf", BooleanValueOf,
|
| - "toJSON", BooleanToJSON
|
| + "valueOf", BooleanValueOf
|
| ));
|
| }
|
|
|
| @@ -1021,18 +1017,6 @@
|
| }
|
|
|
|
|
| -function CheckJSONPrimitive(val) {
|
| - if (!IsPrimitive(val))
|
| - throw MakeTypeError('result_not_primitive', ['toJSON', val]);
|
| - return val;
|
| -}
|
| -
|
| -
|
| -function NumberToJSON(key) {
|
| - return CheckJSONPrimitive(this.valueOf());
|
| -}
|
| -
|
| -
|
| // ----------------------------------------------------------------------------
|
|
|
| function SetupNumber() {
|
| @@ -1073,15 +1057,13 @@
|
| "valueOf", NumberValueOf,
|
| "toFixed", NumberToFixed,
|
| "toExponential", NumberToExponential,
|
| - "toPrecision", NumberToPrecision,
|
| - "toJSON", NumberToJSON
|
| + "toPrecision", NumberToPrecision
|
| ));
|
| }
|
|
|
| SetupNumber();
|
|
|
|
|
| -
|
| // ----------------------------------------------------------------------------
|
| // Function
|
|
|
|
|