windowproxy.js (602B)
1 var g = newGlobal({ 2 sameZoneAs: this, 3 useWindowProxy: true, 4 }); 5 6 g.evaluate(` 7 this.data = 7; 8 9 // Getter / Setter 10 Object.defineProperty(this, "prop", { 11 get: function() { return this.data; }, 12 set: function(val) { this.data = val; }, 13 }); 14 15 // Getter / Setter ICs 16 for (var i = 0; i < 20; ++i) { 17 this.data = i; 18 assertEq(prop, i); 19 prop = i; 20 assertEq(this.prop, i); 21 this.prop = i; 22 assertEq(this.data, i); 23 } 24 `); 25 26 27 // CCW of WindowProxy 28 for (var i = 0; i < 20; ++i) { 29 g.slot = i; 30 assertEq(g.slot, i); 31 }