Revision: 13047
Author:   [email protected]
Date:     Fri Nov 23 07:43:54 2012
Log:      Object.observe: Tests for __define{G,S}etter__.

[email protected],[email protected]
BUG=

Review URL: https://codereview.chromium.org/11348193
http://code.google.com/p/v8/source/detail?r=13047

Modified:
 /branches/bleeding_edge/test/mjsunit/harmony/object-observe.js

=======================================
--- /branches/bleeding_edge/test/mjsunit/harmony/object-observe.js Thu Nov 22 02:31:42 2012 +++ /branches/bleeding_edge/test/mjsunit/harmony/object-observe.js Fri Nov 23 07:43:54 2012
@@ -405,7 +405,12 @@
Object.defineProperty(obj, prop, {get: frozenFunction, set: frozenFunction});
   Object.defineProperty(obj, prop, {set: frozenFunction});  // ignored
   Object.defineProperty(obj, prop, {get: undefined, set: frozenFunction});
+  obj.__defineSetter__(prop, frozenFunction);  // ignored
+  obj.__defineSetter__(prop, function() {});
+  obj.__defineGetter__(prop, function() {});
   delete obj[prop];
+  delete obj[prop];  // ignored
+  obj.__defineGetter__(prop, function() {});
   delete obj[prop];
Object.defineProperty(obj, prop, {get: function() {}, configurable: true});
   Object.defineProperty(obj, prop, {value: 9, writable: true});
@@ -427,8 +432,12 @@
     { object: obj, name: prop, type: "reconfigured" },
     { object: obj, name: prop, type: "reconfigured" },
     { 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: "deleted" },
+    { object: obj, name: prop, type: "new" },
     { object: obj, name: prop, type: "reconfigured" },
     { object: obj, name: prop, type: "updated", oldValue: 9 },
     { object: obj, name: prop, type: "deleted", oldValue: 10 },
@@ -466,7 +475,11 @@
 function createProxy(create, x) {
   var handler = {
     getPropertyDescriptor: function(k) {
-      return Object.getOwnPropertyDescriptor(this.target, k);
+      for (var o = this.target; o; o = Object.getPrototypeOf(o)) {
+        var desc = Object.getOwnPropertyDescriptor(o, k);
+        if (desc) return desc;
+      }
+      return undefined;
     },
     getOwnPropertyDescriptor: function(k) {
       return Object.getOwnPropertyDescriptor(this.target, k);

--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to