blob: 188f3ee5a77df9a6b602067bb80613d8427f490c (
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
|
// Check that duplicate bindings are not created for let/const variables.
let g = newGlobal({newCompartment: true});
let dbg = new Debugger(g);
g.eval(`
function f(x, y=x) {
let z = "Z";
debugger;
return x + y + z;
}
`);
let hits = 0;
let names = [];
dbg.onDebuggerStatement = frame => {
hits++;
for (let env = frame.environment; env.type !== "object"; env = env.parent) {
names.push(...env.names());
}
};
assertEq(g.f("X", "Y"), "XYZ");
assertEq(hits, 1);
assertEq(names.sort().join(", "), "arguments, x, y, z");
|