text: // 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('new-compartment');
      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());");
  