// setVariable triggering a setter doesn't crash or explode. // It should throw WouldRunDebuggee, but that isn't implemented yet. function test(code) { var g = newGlobal(); g.eval("function d() { debugger; }"); var dbg = Debugger(g); var hits = 0; dbg.onDebuggerStatement = function (frame) { var env = frame.environment.find("x"); try { env.setVariable("x", 0); } catch (exc) { } hits++; }; g.eval(code); } test("Object.defineProperty(this, 'x', {set: function (v) {}}); d();"); test("Object.defineProperty(Object.prototype, 'x', {set: function (v) {}}); d();"); test("with ({set x(v) {}}) eval(d());");