summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/modules/debugger-vars-function.js
blob: 75dc023749a1d1d4e99e112974de79e0baa3e047 (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
36
37
// Test debugger access to aliased and unaliased bindings work correctly.

load(libdir + "asserts.js");

var g = newGlobal();
var dbg = Debugger(g);
dbg.onDebuggerStatement = function (frame) {
    let env = frame.environment.parent;
    assertEq(env.getVariable('a'), 1);
    assertEq(env.getVariable('b'), 2);
    assertEq(env.getVariable('c'), 3);
    assertEq(env.getVariable('d'), 4);
    assertEq(env.getVariable('e'), 5);
};

g.eval(
`
    let moduleRepo = {};
    setModuleResolveHook(function(module, specifier) {
        if (specifier in moduleRepo)
            return moduleRepo[specifier];
        throw "Module '" + specifier + "' not found";
    });

    let m = parseModule(
    \`
        var a = 1;
        let b = 2;
        export var c = 3;
        export let d = 4;
        let e = 5;
        function f() { debugger; return e; }
    \`);
    m.declarationInstantiation();
    m.evaluation();
`);