blob: a73bd2187c93353a71374a243f1c7a56a9aeaa0f (
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
33
34
35
|
// Test how stepping interacts with for-in/of statements.
var g = newGlobal({newCompartment: true});
var dbg = new Debugger;
var gw = dbg.addDebuggee(g);
var log;
var previous;
dbg.onDebuggerStatement = function (frame) {
let debugLine = frame.script.getOffsetLocation(frame.offset).lineNumber;
log = '';
previous = '';
frame.onStep = function() {
let foundLine = this.script.getOffsetLocation(this.offset).lineNumber;
if (this.script.getLineOffsets(foundLine).indexOf(this.offset) >= 0) {
let thisline = (foundLine - debugLine).toString(16);
if (thisline !== previous) {
log += thisline;
previous = thisline;
}
}
};
};
function testOne(decl, loopKind) {
let body = "var array = [2, 4, 6];\ndebugger;\nfor (" + decl + " iter " +
loopKind + " array) {\n print(iter);\n}\n";
g.eval(body);
assertEq(log, "12121214");
}
for (let decl of ["", "var", "let"]) {
testOne(decl, "in");
testOne(decl, "of");
}
|