|
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!"); |