summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/debug/Source-introductionScript-03.js
blob: 7488309df10ce248fce856833f617e3113f052ec (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
31
32
// We don't record introduction scripts in a different global from the
// introduced script, even if they're both debuggees.

var dbg = new Debugger;

var g1 = newGlobal({newCompartment: true});
g1.g1 = g1;
var g1DO = dbg.addDebuggee(g1);

var g2 = newGlobal({newCompartment: true});
g2.g1 = g1;

var log = '';
dbg.onDebuggerStatement = function (frame) {
  log += 'd';
  assertEq(frame.script.source.introductionScript, undefined);
  assertEq(frame.script.source.introductionOffset, undefined);
};

g2.eval('g1.eval("debugger;");');
assertEq(log, 'd');

// Just for sanity: when it's not cross-global, we do note the introducer.
log = '';
dbg.onDebuggerStatement = function (frame) {
  log += 'd';
  assertEq(frame.script.source.introductionScript instanceof Debugger.Script, true);
  assertEq(typeof frame.script.source.introductionOffset, "number");
};
// Exactly as above, but with g1 instead of g2.
g1.eval('g1.eval("debugger;");');
assertEq(log, 'd');