summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/debug/Frame-this-05.js
blob: 3c38f10bca53b60fa62c06d64beab9934aa25d5e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// Frame.this and evalInFrame in the global scope.
var g = newGlobal({newCompartment: true});
g.eval("x = 4; this['.this'] = 222;");
var dbg = new Debugger(g);
var res;
dbg.onDebuggerStatement = function (frame) {
    res = frame.eval("this.x").return;
    res += frame.this.unsafeDereference().x;
};
g.eval("debugger;");
assertEq(res, 8);

// And inside eval.
g.eval("x = 3; eval('debugger')");
assertEq(res, 6);
g.eval("x = 2; eval('eval(\\'debugger\\')')");
assertEq(res, 4);

// And inside arrow functions.
g.eval("x = 1; (() => { debugger; })()");
assertEq(res, 2);
g.eval("x = 5; (() => { eval('debugger'); })()");
assertEq(res, 10);