summaryrefslogtreecommitdiffstats
path: root/js/src/tests/non262/PrivateName/error-locations.js
blob: e91815ea81dba639a4432a9fba38f3e49158179c (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
// |reftest|
function assertLineAndColumn(str, line, column) {
  try {
    eval(str);
    throw 'didn\'t syntaxerror, bad.'
  } catch (e) {
    assertEq(e instanceof SyntaxError, true);
    assertEq(e.lineNumber, line);
    assertEq(e.columnNumber, column);
  }
}

assertLineAndColumn(`class A { g() { return this.#x; }}`, 1, 29);
// Make sure we're reporting the first error, if there are multiple, in class
// exit context;
assertLineAndColumn(
    `class A { g() { return this.#x; } y() { return       this.#z + this.#y; } }`,
    1, 29);
assertLineAndColumn(`this.#x`, 1, 6);
// Make sure we're reporting the first error, if there are multiple, in
// non-class context;
assertLineAndColumn(`this.#x; this.#y; this.#z`, 1, 6);

assertLineAndColumn(
    `class A {
g() { return this.#x; }}`,
    2, 19);
assertLineAndColumn(
    `class A {

g() { return this.#x; } y() { return this.#y; }}`,
    3, 19);

if (typeof reportCompare === 'function') reportCompare(0, 0);