// Creating a global within an onNewGlobalObject handler causes a recursive handler invocation.
//
// This isn't really desirable behavior, as presumably a global created while a
// handler is running is one the debugger is creating for its own purposes and
// should not be observed, but if this behavior changes, we sure want to know.

var dbg = new Debugger;
var log;
var depth;

dbg.onNewGlobalObject = function (global) {
  log += '('; depth++;

  assertEq(global.seen, undefined);
  global.seen = true;

  if (depth < 3)
    newGlobal();

  log += ')'; depth--;
};

log = '';
depth = 0;
newGlobal();
assertEq(log, '((()))');