summaryrefslogtreecommitdiffstats
path: root/js/src/tests/non262/syntax/line-number-maintenance-for-identifier-containing-escape-terminated-by-unicode-separator.js
blob: 4293cbb0a23d3bbc5d3002089b7f64d660dea4cd (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
/*
 * Any copyright is dedicated to the Public Domain.
 * http://creativecommons.org/licenses/publicdomain/
 */

//-----------------------------------------------------------------------------
var BUGNUMBER = 9999999;
var summary =
  "Properly maintain the line number when tokenizing identifiers that " +
  "contain Unicode escapes *and* are terminated by U+2028 LINE SEPARATOR " +
  "or U+2029 PARAGRAPH SEPARATOR";

print(BUGNUMBER + ": " + summary);

/**************
 * BEGIN TEST *
 **************/

var code = "var a\u0062c = [];\n"; // line 1

for (var i = 0; i < 100; i++)
  code += "a\\u0062c\u2028a\\u0062c\u2029"; // lines 2..2+200-1

code += "@"; // line 2+200

try
{
  eval(code);
  throw new Error("didn't throw");
}
catch (e)
{
  assertEq(e.lineNumber, 2 + 200);
}

/******************************************************************************/

if (typeof reportCompare === "function")
  reportCompare(true, true);

print("Tests complete");