summaryrefslogtreecommitdiffstats
path: root/js/src/tests/non262/template-strings/debugLineNumber.js
blob: aba1656866bdf1cbb9f2fb7d13edfbbb3d981e8c (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
38
39
40
41
42
43
44
45
46
47
48
49
50
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.

// TEST BEGIN

// verify debugger line numbers are accurate
try {
    `
    a
    b
    c
    `;
    throw Error("error");
} catch (e) {
    assertEq(e.lineNumber, 14);
}

try {
    function tagThatThrows(...args) { throw new Error(); }

    tagThatThrows`
        multi-line
        template
        string`;
} catch (e) {
    var stackLines = e.stack.split('\n');
    var firstLine = stackLines[0].split(':');
    var secondLine = stackLines[1].split(':');
    var firstLineSize = firstLine.length;
    var secondLineSize = secondLine.length;
    assertEq(firstLine[firstLineSize - 2], "20");
    assertEq(firstLine[firstLineSize - 1], "45");
    assertEq(secondLine[secondLineSize - 2], "22");
    assertEq(secondLine[secondLineSize - 1], "18");
}

try {
    ` multi-line
        template
        with
        ${substitutionThatThrows()}`

} catch (e) {
    assertEq(e.lineNumber, 42);
}



reportCompare(0, 0, "ok");