summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/debug/Source-text-02.js
blob: 0216395ed76816eef268ff695aaaf053cb178367 (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
// Nested compilation units (say, an eval with in an eval) should have the
// correct sources attributed to them.
let g = newGlobal({newCompartment: true});
let dbg = new Debugger(g);

var text;
var count = 0;
dbg.onNewScript = function (script) {
    ++count;
    if (count % 2 == 0)
        assertEq(script.source.text, text);
}

g.eval("eval('" + (text = "") + "')");
g.eval("eval('" + (text = "2 * 3") + "')");

// `new Function(${string})` generates source wrapped with `function anonymous(args) {${string}}`
text = "function anonymous(\n) {\n\n}";
g.eval("new Function('')");

text = "function anonymous(a,b\n) {\nc\n}";
g.eval("new Function('a', 'b', 'c')");

text = "function anonymous(d\n,e\n) {\nf\n}";
g.eval("new Function('d\\n', 'e', 'f')");

evaluate("", { global: g });
text = "2 * 3";
evaluate("2 * 3", { global: g });
assertEq(count, 12);