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