michael@0: michael@0: function Foo(x) michael@0: { michael@0: this.f = x + 10; michael@0: } michael@0: michael@0: var x = new Foo(0); michael@0: assertEq(10, eval("x.f")); michael@0: michael@0: called = false; michael@0: Object.defineProperty(Foo.prototype, 'f', {set: function() { called = true; }}); michael@0: michael@0: var y = new Foo(0); michael@0: assertEq(10, eval("x.f")); michael@0: assertEq(undefined, eval("y.f")); michael@0: assertEq(called, true);