michael@0: /* michael@0: * Script.prototype.source should be an object. Moreover, it should be the michael@0: * same object for each child script within the same debugger. michael@0: */ michael@0: let g = newGlobal(); michael@0: let dbg = new Debugger(g); michael@0: michael@0: let count = 0; michael@0: dbg.onNewScript = function (script) { michael@0: assertEq(typeof script.source, "object"); michael@0: function traverse(script) { michael@0: ++count; michael@0: script.getChildScripts().forEach(function (child) { michael@0: assertEq(child.source, script.source); michael@0: traverse(child); michael@0: }); michael@0: } michael@0: traverse(script); michael@0: } michael@0: michael@0: g.eval("2 * 3"); michael@0: g.eval("function f() {}"); michael@0: g.eval("function f() { function g() {} }"); michael@0: g.eval("eval('2 * 3')"); michael@0: g.eval("new Function('2 * 3')"); michael@0: assertEq(count, 10);