js/src/tests/ecma_5/Expressions/string-literal-escape-sequences.js

branch
TOR_BUG_3246
changeset 7
129ffea94266
equal deleted inserted replaced
-1:000000000000 0:bf500d56fb22
1 // Any copyright is dedicated to the Public Domain.
2 // http://creativecommons.org/licenses/publicdomain/
3
4 //-----------------------------------------------------------------------------
5 var BUGNUMBER = 663300;
6 var summary =
7 "\\u and \\x must be followed by the appropriate number of hex digits or " +
8 "else it is a syntax error";
9
10 print(BUGNUMBER + ": " + summary);
11
12 /**************
13 * BEGIN TEST *
14 **************/
15
16 function expectSyntaxError(str)
17 {
18 try
19 {
20 eval(str);
21 }
22 catch (e)
23 {
24 assertEq(e instanceof SyntaxError, true,
25 "no syntax error evaluating " + str);
26 }
27 }
28
29 expectSyntaxError('"\\x"');
30 expectSyntaxError('"\\x0"');
31 expectSyntaxError('"\\x1"');
32 expectSyntaxError('"\\x2"');
33 expectSyntaxError('"\\x3"');
34 expectSyntaxError('"\\x4"');
35 expectSyntaxError('"\\x5"');
36 expectSyntaxError('"\\x6"');
37 expectSyntaxError('"\\x7"');
38 expectSyntaxError('"\\x8"');
39 expectSyntaxError('"\\x9"');
40 expectSyntaxError('"\\xA"');
41 expectSyntaxError('"\\xB"');
42 expectSyntaxError('"\\xC"');
43 expectSyntaxError('"\\xD"');
44 expectSyntaxError('"\\xE"');
45 expectSyntaxError('"\\xF"');
46 expectSyntaxError('"\\xG"');
47 expectSyntaxError('"\\x0G"');
48 expectSyntaxError('"\\x1G"');
49 expectSyntaxError('"\\x2G"');
50 expectSyntaxError('"\\x3G"');
51 expectSyntaxError('"\\x4G"');
52 expectSyntaxError('"\\x5G"');
53 expectSyntaxError('"\\x6G"');
54 expectSyntaxError('"\\x7G"');
55 expectSyntaxError('"\\x8G"');
56 expectSyntaxError('"\\x9G"');
57 expectSyntaxError('"\\xAG"');
58 expectSyntaxError('"\\xBG"');
59 expectSyntaxError('"\\xCG"');
60 expectSyntaxError('"\\xDG"');
61 expectSyntaxError('"\\xEG"');
62 expectSyntaxError('"\\xFG"');
63 expectSyntaxError('"\\xGG"');
64
65 expectSyntaxError('"\\u"');
66 expectSyntaxError('"\\u0"');
67 expectSyntaxError('"\\u1"');
68 expectSyntaxError('"\\u2"');
69 expectSyntaxError('"\\u3"');
70 expectSyntaxError('"\\u4"');
71 expectSyntaxError('"\\u5"');
72 expectSyntaxError('"\\u6"');
73 expectSyntaxError('"\\u7"');
74 expectSyntaxError('"\\u8"');
75 expectSyntaxError('"\\u9"');
76 expectSyntaxError('"\\uA"');
77 expectSyntaxError('"\\uB"');
78 expectSyntaxError('"\\uC"');
79 expectSyntaxError('"\\uD"');
80 expectSyntaxError('"\\uE"');
81 expectSyntaxError('"\\uF"');
82 expectSyntaxError('"\\uG"');
83 expectSyntaxError('"\\u00"');
84 expectSyntaxError('"\\u11"');
85 expectSyntaxError('"\\u22"');
86 expectSyntaxError('"\\u33"');
87 expectSyntaxError('"\\u44"');
88 expectSyntaxError('"\\u55"');
89 expectSyntaxError('"\\u66"');
90 expectSyntaxError('"\\u77"');
91 expectSyntaxError('"\\u88"');
92 expectSyntaxError('"\\u99"');
93 expectSyntaxError('"\\uAA"');
94 expectSyntaxError('"\\uBB"');
95 expectSyntaxError('"\\uCC"');
96 expectSyntaxError('"\\uDD"');
97 expectSyntaxError('"\\uEE"');
98 expectSyntaxError('"\\uFF"');
99 expectSyntaxError('"\\uGG"');
100 expectSyntaxError('"\\u000"');
101 expectSyntaxError('"\\u111"');
102 expectSyntaxError('"\\u222"');
103 expectSyntaxError('"\\u333"');
104 expectSyntaxError('"\\u444"');
105 expectSyntaxError('"\\u555"');
106 expectSyntaxError('"\\u666"');
107 expectSyntaxError('"\\u777"');
108 expectSyntaxError('"\\u888"');
109 expectSyntaxError('"\\u999"');
110 expectSyntaxError('"\\uAAA"');
111 expectSyntaxError('"\\uBBB"');
112 expectSyntaxError('"\\uCCC"');
113 expectSyntaxError('"\\uDDD"');
114 expectSyntaxError('"\\uEEE"');
115 expectSyntaxError('"\\uFFF"');
116 expectSyntaxError('"\\uGGG"');
117 expectSyntaxError('"\\u000G"');
118 expectSyntaxError('"\\u111G"');
119 expectSyntaxError('"\\u222G"');
120 expectSyntaxError('"\\u333G"');
121 expectSyntaxError('"\\u444G"');
122 expectSyntaxError('"\\u555G"');
123 expectSyntaxError('"\\u666G"');
124 expectSyntaxError('"\\u777G"');
125 expectSyntaxError('"\\u888G"');
126 expectSyntaxError('"\\u999G"');
127 expectSyntaxError('"\\uAAAG"');
128 expectSyntaxError('"\\uBBBG"');
129 expectSyntaxError('"\\uCCCG"');
130 expectSyntaxError('"\\uDDDG"');
131 expectSyntaxError('"\\uEEEG"');
132 expectSyntaxError('"\\uFFFG"');
133 expectSyntaxError('"\\uGGGG"');
134
135 assertEq(eval('"a\\\rb"'), "ab");
136 assertEq(eval('"a\\\nb"'), "ab");
137 assertEq(eval('"a\\\r\nb"'), "ab");
138 assertEq(eval('"a\\\u2028b"'), "ab");
139 assertEq(eval('"a\\\u2029b"'), "ab");
140
141 /******************************************************************************/
142
143 if (typeof reportCompare === "function")
144 reportCompare(true, true);
145
146 print("All tests passed!");

mercurial