Chromium Code Reviews| Index: test/mjsunit/harmony/object-observe.js |
| diff --git a/test/mjsunit/harmony/object-observe.js b/test/mjsunit/harmony/object-observe.js |
| index ebfae0a9139db36964989c215bbd5d05dc98a50b..fbf4bf49a1d362faa4658a7a4a9852c0994df784 100644 |
| --- a/test/mjsunit/harmony/object-observe.js |
| +++ b/test/mjsunit/harmony/object-observe.js |
| @@ -296,7 +296,11 @@ obj.a = 7; // ignored |
| Object.defineProperty(obj, "a", {value: 8}); |
| Object.defineProperty(obj, "a", {value: 7, writable: true}); |
| Object.defineProperty(obj, "a", {get: function() {}}); |
| -Object.defineProperty(obj, "a", {get: function() {}}); |
| +Object.defineProperty(obj, "a", {get: frozenFunction}); |
| +Object.defineProperty(obj, "a", {get: frozenFunction}); // ignored |
| +Object.defineProperty(obj, "a", {get: frozenFunction, set: frozenFunction}); |
| +Object.defineProperty(obj, "a", {set: frozenFunction}); // ignored |
| +Object.defineProperty(obj, "a", {get: undefined, set: frozenFunction}); |
| delete obj.a; |
| delete obj.a; |
| Object.defineProperty(obj, "a", {get: function() {}, configurable: true}); |
| @@ -317,6 +321,8 @@ observer.assertCallbackRecords([ |
| { object: obj, name: "a", type: "reconfigured", oldValue: 8 }, |
| { object: obj, name: "a", type: "reconfigured", oldValue: 7 }, |
| { object: obj, name: "a", type: "reconfigured" }, |
| + { object: obj, name: "a", type: "reconfigured" }, |
| + { object: obj, name: "a", type: "reconfigured" }, |
| { object: obj, name: "a", type: "deleted" }, |
| { object: obj, name: "a", type: "new" }, |
| { object: obj, name: "a", type: "reconfigured" }, |
| @@ -341,7 +347,11 @@ obj[1] = 7; // ignored |
| Object.defineProperty(obj, "1", {value: 8}); |
| Object.defineProperty(obj, "1", {value: 7, writable: true}); |
| Object.defineProperty(obj, "1", {get: function() {}}); |
| -Object.defineProperty(obj, "1", {get: function() {}}); |
| +Object.defineProperty(obj, "1", {get: frozenFunction}); |
| +Object.defineProperty(obj, "1", {get: frozenFunction}); // ignored |
| +Object.defineProperty(obj, "1", {get: frozenFunction, set: frozenFunction}); |
| +Object.defineProperty(obj, "1", {set: frozenFunction}); // ignored |
| +Object.defineProperty(obj, "1", {get: undefined, set: frozenFunction}); |
| delete obj[1]; |
| delete obj[1]; |
| Object.defineProperty(obj, "1", {get: function() {}, configurable: true}); |
| @@ -362,6 +372,8 @@ observer.assertCallbackRecords([ |
| { object: obj, name: "1", type: "reconfigured", oldValue: 8 }, |
| { object: obj, name: "1", type: "reconfigured", oldValue: 7 }, |
| { object: obj, name: "1", type: "reconfigured" }, |
| + { object: obj, name: "1", type: "reconfigured" }, |
| + { object: obj, name: "1", type: "reconfigured" }, |
| { object: obj, name: "1", type: "deleted" }, |
| { object: obj, name: "1", type: "new" }, |
| { object: obj, name: "1", type: "reconfigured" }, |
| @@ -388,7 +400,11 @@ function TestObserveConfigurable(obj, prop) { |
| Object.defineProperty(obj, prop, {value: 8}); |
| Object.defineProperty(obj, prop, {value: 7, writable: true}); |
| Object.defineProperty(obj, prop, {get: function() {}}); |
| - Object.defineProperty(obj, prop, {get: function() {}}); |
| + Object.defineProperty(obj, prop, {get: frozenFunction}); |
| + Object.defineProperty(obj, prop, {get: frozenFunction}); // ignored |
| + Object.defineProperty(obj, prop, {get: frozenFunction, set: frozenFunction}); |
| + Object.defineProperty(obj, prop, {set: frozenFunction}); // ignored |
| + Object.defineProperty(obj, prop, {get: undefined, set: frozenFunction}); |
| delete obj[prop]; |
| delete obj[prop]; |
| Object.defineProperty(obj, prop, {get: function() {}, configurable: true}); |
| @@ -409,6 +425,8 @@ function TestObserveConfigurable(obj, prop) { |
| { object: obj, name: prop, type: "reconfigured", oldValue: 8 }, |
| { object: obj, name: prop, type: "reconfigured", oldValue: 7 }, |
| { object: obj, name: prop, type: "reconfigured" }, |
| + { object: obj, name: prop, type: "reconfigured" }, |
| + { object: obj, name: prop, type: "reconfigured" }, |
| { object: obj, name: prop, type: "deleted" }, |
| { object: obj, name: prop, type: "new" }, |
| { object: obj, name: prop, type: "reconfigured" }, |
| @@ -429,14 +447,18 @@ function TestObserveNonConfigurable(obj, prop) { |
| obj[prop] = 5; |
| Object.defineProperty(obj, prop, {value: 6}); |
| Object.defineProperty(obj, prop, {value: 6}); // ignored |
| + Object.defineProperty(obj, prop, {value: 7}); |
| + Object.defineProperty(obj, prop, {enumerable: true}); // ignored |
| Object.defineProperty(obj, prop, {writable: false}); |
| obj[prop] = 7; // ignored |
| + Object.defineProperty(obj, prop, {get: function() {}}); // ignored |
|
adamk
2012/11/21 16:24:32
This one confuses me, why is it ignored?
rossberg
2012/11/21 16:57:03
Because the object is not configurable. ;)
|
| Object.deliverChangeRecords(observer.callback); |
| observer.assertCallbackRecords([ |
| { object: obj, name: prop, type: "updated", oldValue: 1 }, |
| { object: obj, name: prop, type: "updated", oldValue: 4 }, |
| { object: obj, name: prop, type: "updated", oldValue: 5 }, |
| - { object: obj, name: prop, type: "reconfigured", oldValue: 6 }, |
| + { object: obj, name: prop, type: "updated", oldValue: 6 }, |
| + { object: obj, name: prop, type: "reconfigured", oldValue: 7 }, |
| ]); |
| Object.unobserve(obj, observer.callback); |
| } |