summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/debug/Environment-bug-1431461.js
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");