Source code

Revision control

Copy as Markdown

Other Tools

// Debugger.prototype.findScripts can find the innermost script at a given
// source location.
var g = newGlobal({newCompartment: true});
var dbg = new Debugger();
var gw = dbg.addDebuggee(g);
function script(f) {
return gw.makeDebuggeeValue(f).script;
}
function arrayIsOnly(array, element) {
return array.length == 1 && array[0] === element;
}
url = scriptdir + 'Debugger-findScripts-14.script1';
g.load(url);
var scripts;
// When we're doing 'innermost' queries, we don't have to worry about finding
// random eval scripts: we should get exactly one script, for the function
// covering that line.
scripts = dbg.findScripts({url:url, line:4, innermost:true});
assertEq(arrayIsOnly(scripts, script(g.f)), true);
scripts = dbg.findScripts({url:url, line:6, innermost:true});
assertEq(arrayIsOnly(scripts, script(g.f())), true);
scripts = dbg.findScripts({url:url, line:8, innermost:true});
assertEq(arrayIsOnly(scripts, script(g.f()())), true);