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