summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/debug/Debugger-findScripts-14.js
blob: f02a1b4e118a632d6696aeb8c1b0d7e35d04ae24 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// 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);