2008-06-08 Cameron Zwarich <cwzwarich@uwaterloo.ca>
[WebKit-https.git] / LayoutTests / fast / js / function-toString-parentheses-expected.txt
1 This test checks that parentheses are preserved when significant, and not added where inappropriate. We need this test because the JavaScriptCore parser removes all parentheses and the serializer then adds them back.
2
3 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
4
5
6 PASS compileAndSerialize('a * b * c') is 'a * b * c'
7 PASS compileAndSerialize('(a * b) * c') is '(a * b) * c'
8 PASS compileAndSerialize('a * (b * c)') is 'a * (b * c)'
9 PASS compileAndSerialize('a * b + c') is 'a * b + c'
10 PASS compileAndSerialize('(a * b) + c') is '(a * b) + c'
11 PASS compileAndSerialize('a * (b + c)') is 'a * (b + c)'
12 PASS compileAndSerialize('a * b - c') is 'a * b - c'
13 PASS compileAndSerialize('(a * b) - c') is '(a * b) - c'
14 PASS compileAndSerialize('a * (b - c)') is 'a * (b - c)'
15 PASS compileAndSerialize('a / b / c') is 'a / b / c'
16 PASS compileAndSerialize('(a / b) / c') is '(a / b) / c'
17 PASS compileAndSerialize('a / (b / c)') is 'a / (b / c)'
18 PASS compileAndSerialize('a * b / c') is 'a * b / c'
19 PASS compileAndSerialize('(a * b) / c') is '(a * b) / c'
20 PASS compileAndSerialize('a * (b / c)') is 'a * (b / c)'
21 PASS compileAndSerialize('a / b + c') is 'a / b + c'
22 PASS compileAndSerialize('(a / b) + c') is '(a / b) + c'
23 PASS compileAndSerialize('a / (b + c)') is 'a / (b + c)'
24 PASS compileAndSerialize('a % b % c') is 'a % b % c'
25 PASS compileAndSerialize('(a % b) % c') is '(a % b) % c'
26 PASS compileAndSerialize('a % (b % c)') is 'a % (b % c)'
27 PASS compileAndSerialize('a * b % c') is 'a * b % c'
28 PASS compileAndSerialize('(a * b) % c') is '(a * b) % c'
29 PASS compileAndSerialize('a * (b % c)') is 'a * (b % c)'
30 PASS compileAndSerialize('a % b + c') is 'a % b + c'
31 PASS compileAndSerialize('(a % b) + c') is '(a % b) + c'
32 PASS compileAndSerialize('a % (b + c)') is 'a % (b + c)'
33 PASS compileAndSerialize('a + b + c') is 'a + b + c'
34 PASS compileAndSerialize('(a + b) + c') is '(a + b) + c'
35 PASS compileAndSerialize('a + (b + c)') is 'a + (b + c)'
36 PASS compileAndSerialize('a + b << c') is 'a + b << c'
37 PASS compileAndSerialize('(a + b) << c') is '(a + b) << c'
38 PASS compileAndSerialize('a + (b << c)') is 'a + (b << c)'
39 PASS compileAndSerialize('a + b >> c') is 'a + b >> c'
40 PASS compileAndSerialize('(a + b) >> c') is '(a + b) >> c'
41 PASS compileAndSerialize('a + (b >> c)') is 'a + (b >> c)'
42 PASS compileAndSerialize('a + b >>> c') is 'a + b >>> c'
43 PASS compileAndSerialize('(a + b) >>> c') is '(a + b) >>> c'
44 PASS compileAndSerialize('a + (b >>> c)') is 'a + (b >>> c)'
45 PASS compileAndSerialize('a - b - c') is 'a - b - c'
46 PASS compileAndSerialize('(a - b) - c') is '(a - b) - c'
47 PASS compileAndSerialize('a - (b - c)') is 'a - (b - c)'
48 PASS compileAndSerialize('a + b - c') is 'a + b - c'
49 PASS compileAndSerialize('(a + b) - c') is '(a + b) - c'
50 PASS compileAndSerialize('a + (b - c)') is 'a + (b - c)'
51 PASS compileAndSerialize('a - b << c') is 'a - b << c'
52 PASS compileAndSerialize('(a - b) << c') is '(a - b) << c'
53 PASS compileAndSerialize('a - (b << c)') is 'a - (b << c)'
54 PASS compileAndSerialize('a << b << c') is 'a << b << c'
55 PASS compileAndSerialize('(a << b) << c') is '(a << b) << c'
56 PASS compileAndSerialize('a << (b << c)') is 'a << (b << c)'
57 PASS compileAndSerialize('a << b < c') is 'a << b < c'
58 PASS compileAndSerialize('(a << b) < c') is '(a << b) < c'
59 PASS compileAndSerialize('a << (b < c)') is 'a << (b < c)'
60 PASS compileAndSerialize('a << b > c') is 'a << b > c'
61 PASS compileAndSerialize('(a << b) > c') is '(a << b) > c'
62 PASS compileAndSerialize('a << (b > c)') is 'a << (b > c)'
63 PASS compileAndSerialize('a << b <= c') is 'a << b <= c'
64 PASS compileAndSerialize('(a << b) <= c') is '(a << b) <= c'
65 PASS compileAndSerialize('a << (b <= c)') is 'a << (b <= c)'
66 PASS compileAndSerialize('a << b >= c') is 'a << b >= c'
67 PASS compileAndSerialize('(a << b) >= c') is '(a << b) >= c'
68 PASS compileAndSerialize('a << (b >= c)') is 'a << (b >= c)'
69 PASS compileAndSerialize('a << b instanceof c') is 'a << b instanceof c'
70 PASS compileAndSerialize('(a << b) instanceof c') is '(a << b) instanceof c'
71 PASS compileAndSerialize('a << (b instanceof c)') is 'a << (b instanceof c)'
72 PASS compileAndSerialize('a << b in c') is 'a << b in c'
73 PASS compileAndSerialize('(a << b) in c') is '(a << b) in c'
74 PASS compileAndSerialize('a << (b in c)') is 'a << (b in c)'
75 PASS compileAndSerialize('a >> b >> c') is 'a >> b >> c'
76 PASS compileAndSerialize('(a >> b) >> c') is '(a >> b) >> c'
77 PASS compileAndSerialize('a >> (b >> c)') is 'a >> (b >> c)'
78 PASS compileAndSerialize('a << b >> c') is 'a << b >> c'
79 PASS compileAndSerialize('(a << b) >> c') is '(a << b) >> c'
80 PASS compileAndSerialize('a << (b >> c)') is 'a << (b >> c)'
81 PASS compileAndSerialize('a >> b < c') is 'a >> b < c'
82 PASS compileAndSerialize('(a >> b) < c') is '(a >> b) < c'
83 PASS compileAndSerialize('a >> (b < c)') is 'a >> (b < c)'
84 PASS compileAndSerialize('a >>> b >>> c') is 'a >>> b >>> c'
85 PASS compileAndSerialize('(a >>> b) >>> c') is '(a >>> b) >>> c'
86 PASS compileAndSerialize('a >>> (b >>> c)') is 'a >>> (b >>> c)'
87 PASS compileAndSerialize('a << b >>> c') is 'a << b >>> c'
88 PASS compileAndSerialize('(a << b) >>> c') is '(a << b) >>> c'
89 PASS compileAndSerialize('a << (b >>> c)') is 'a << (b >>> c)'
90 PASS compileAndSerialize('a >>> b < c') is 'a >>> b < c'
91 PASS compileAndSerialize('(a >>> b) < c') is '(a >>> b) < c'
92 PASS compileAndSerialize('a >>> (b < c)') is 'a >>> (b < c)'
93 PASS compileAndSerialize('a < b < c') is 'a < b < c'
94 PASS compileAndSerialize('(a < b) < c') is '(a < b) < c'
95 PASS compileAndSerialize('a < (b < c)') is 'a < (b < c)'
96 PASS compileAndSerialize('a < b == c') is 'a < b == c'
97 PASS compileAndSerialize('(a < b) == c') is '(a < b) == c'
98 PASS compileAndSerialize('a < (b == c)') is 'a < (b == c)'
99 PASS compileAndSerialize('a < b != c') is 'a < b != c'
100 PASS compileAndSerialize('(a < b) != c') is '(a < b) != c'
101 PASS compileAndSerialize('a < (b != c)') is 'a < (b != c)'
102 PASS compileAndSerialize('a < b === c') is 'a < b === c'
103 PASS compileAndSerialize('(a < b) === c') is '(a < b) === c'
104 PASS compileAndSerialize('a < (b === c)') is 'a < (b === c)'
105 PASS compileAndSerialize('a < b !== c') is 'a < b !== c'
106 PASS compileAndSerialize('(a < b) !== c') is '(a < b) !== c'
107 PASS compileAndSerialize('a < (b !== c)') is 'a < (b !== c)'
108 PASS compileAndSerialize('a > b > c') is 'a > b > c'
109 PASS compileAndSerialize('(a > b) > c') is '(a > b) > c'
110 PASS compileAndSerialize('a > (b > c)') is 'a > (b > c)'
111 PASS compileAndSerialize('a < b > c') is 'a < b > c'
112 PASS compileAndSerialize('(a < b) > c') is '(a < b) > c'
113 PASS compileAndSerialize('a < (b > c)') is 'a < (b > c)'
114 PASS compileAndSerialize('a > b == c') is 'a > b == c'
115 PASS compileAndSerialize('(a > b) == c') is '(a > b) == c'
116 PASS compileAndSerialize('a > (b == c)') is 'a > (b == c)'
117 PASS compileAndSerialize('a <= b <= c') is 'a <= b <= c'
118 PASS compileAndSerialize('(a <= b) <= c') is '(a <= b) <= c'
119 PASS compileAndSerialize('a <= (b <= c)') is 'a <= (b <= c)'
120 PASS compileAndSerialize('a < b <= c') is 'a < b <= c'
121 PASS compileAndSerialize('(a < b) <= c') is '(a < b) <= c'
122 PASS compileAndSerialize('a < (b <= c)') is 'a < (b <= c)'
123 PASS compileAndSerialize('a <= b == c') is 'a <= b == c'
124 PASS compileAndSerialize('(a <= b) == c') is '(a <= b) == c'
125 PASS compileAndSerialize('a <= (b == c)') is 'a <= (b == c)'
126 PASS compileAndSerialize('a >= b >= c') is 'a >= b >= c'
127 PASS compileAndSerialize('(a >= b) >= c') is '(a >= b) >= c'
128 PASS compileAndSerialize('a >= (b >= c)') is 'a >= (b >= c)'
129 PASS compileAndSerialize('a < b >= c') is 'a < b >= c'
130 PASS compileAndSerialize('(a < b) >= c') is '(a < b) >= c'
131 PASS compileAndSerialize('a < (b >= c)') is 'a < (b >= c)'
132 PASS compileAndSerialize('a >= b == c') is 'a >= b == c'
133 PASS compileAndSerialize('(a >= b) == c') is '(a >= b) == c'
134 PASS compileAndSerialize('a >= (b == c)') is 'a >= (b == c)'
135 PASS compileAndSerialize('a instanceof b instanceof c') is 'a instanceof b instanceof c'
136 PASS compileAndSerialize('(a instanceof b) instanceof c') is '(a instanceof b) instanceof c'
137 PASS compileAndSerialize('a instanceof (b instanceof c)') is 'a instanceof (b instanceof c)'
138 PASS compileAndSerialize('a < b instanceof c') is 'a < b instanceof c'
139 PASS compileAndSerialize('(a < b) instanceof c') is '(a < b) instanceof c'
140 PASS compileAndSerialize('a < (b instanceof c)') is 'a < (b instanceof c)'
141 PASS compileAndSerialize('a instanceof b == c') is 'a instanceof b == c'
142 PASS compileAndSerialize('(a instanceof b) == c') is '(a instanceof b) == c'
143 PASS compileAndSerialize('a instanceof (b == c)') is 'a instanceof (b == c)'
144 PASS compileAndSerialize('a in b in c') is 'a in b in c'
145 PASS compileAndSerialize('(a in b) in c') is '(a in b) in c'
146 PASS compileAndSerialize('a in (b in c)') is 'a in (b in c)'
147 PASS compileAndSerialize('a < b in c') is 'a < b in c'
148 PASS compileAndSerialize('(a < b) in c') is '(a < b) in c'
149 PASS compileAndSerialize('a < (b in c)') is 'a < (b in c)'
150 PASS compileAndSerialize('a in b == c') is 'a in b == c'
151 PASS compileAndSerialize('(a in b) == c') is '(a in b) == c'
152 PASS compileAndSerialize('a in (b == c)') is 'a in (b == c)'
153 PASS compileAndSerialize('a == b == c') is 'a == b == c'
154 PASS compileAndSerialize('(a == b) == c') is '(a == b) == c'
155 PASS compileAndSerialize('a == (b == c)') is 'a == (b == c)'
156 PASS compileAndSerialize('a == b & c') is 'a == b & c'
157 PASS compileAndSerialize('(a == b) & c') is '(a == b) & c'
158 PASS compileAndSerialize('a == (b & c)') is 'a == (b & c)'
159 PASS compileAndSerialize('a != b != c') is 'a != b != c'
160 PASS compileAndSerialize('(a != b) != c') is '(a != b) != c'
161 PASS compileAndSerialize('a != (b != c)') is 'a != (b != c)'
162 PASS compileAndSerialize('a == b != c') is 'a == b != c'
163 PASS compileAndSerialize('(a == b) != c') is '(a == b) != c'
164 PASS compileAndSerialize('a == (b != c)') is 'a == (b != c)'
165 PASS compileAndSerialize('a != b & c') is 'a != b & c'
166 PASS compileAndSerialize('(a != b) & c') is '(a != b) & c'
167 PASS compileAndSerialize('a != (b & c)') is 'a != (b & c)'
168 PASS compileAndSerialize('a === b === c') is 'a === b === c'
169 PASS compileAndSerialize('(a === b) === c') is '(a === b) === c'
170 PASS compileAndSerialize('a === (b === c)') is 'a === (b === c)'
171 PASS compileAndSerialize('a == b === c') is 'a == b === c'
172 PASS compileAndSerialize('(a == b) === c') is '(a == b) === c'
173 PASS compileAndSerialize('a == (b === c)') is 'a == (b === c)'
174 PASS compileAndSerialize('a === b & c') is 'a === b & c'
175 PASS compileAndSerialize('(a === b) & c') is '(a === b) & c'
176 PASS compileAndSerialize('a === (b & c)') is 'a === (b & c)'
177 PASS compileAndSerialize('a !== b !== c') is 'a !== b !== c'
178 PASS compileAndSerialize('(a !== b) !== c') is '(a !== b) !== c'
179 PASS compileAndSerialize('a !== (b !== c)') is 'a !== (b !== c)'
180 PASS compileAndSerialize('a == b !== c') is 'a == b !== c'
181 PASS compileAndSerialize('(a == b) !== c') is '(a == b) !== c'
182 PASS compileAndSerialize('a == (b !== c)') is 'a == (b !== c)'
183 PASS compileAndSerialize('a !== b & c') is 'a !== b & c'
184 PASS compileAndSerialize('(a !== b) & c') is '(a !== b) & c'
185 PASS compileAndSerialize('a !== (b & c)') is 'a !== (b & c)'
186 PASS compileAndSerialize('a & b & c') is 'a & b & c'
187 PASS compileAndSerialize('(a & b) & c') is '(a & b) & c'
188 PASS compileAndSerialize('a & (b & c)') is 'a & (b & c)'
189 PASS compileAndSerialize('a & b ^ c') is 'a & b ^ c'
190 PASS compileAndSerialize('(a & b) ^ c') is '(a & b) ^ c'
191 PASS compileAndSerialize('a & (b ^ c)') is 'a & (b ^ c)'
192 PASS compileAndSerialize('a ^ b ^ c') is 'a ^ b ^ c'
193 PASS compileAndSerialize('(a ^ b) ^ c') is '(a ^ b) ^ c'
194 PASS compileAndSerialize('a ^ (b ^ c)') is 'a ^ (b ^ c)'
195 PASS compileAndSerialize('a ^ b | c') is 'a ^ b | c'
196 PASS compileAndSerialize('(a ^ b) | c') is '(a ^ b) | c'
197 PASS compileAndSerialize('a ^ (b | c)') is 'a ^ (b | c)'
198 PASS compileAndSerialize('a | b | c') is 'a | b | c'
199 PASS compileAndSerialize('(a | b) | c') is '(a | b) | c'
200 PASS compileAndSerialize('a | (b | c)') is 'a | (b | c)'
201 PASS compileAndSerialize('a | b && c') is 'a | b && c'
202 PASS compileAndSerialize('(a | b) && c') is '(a | b) && c'
203 PASS compileAndSerialize('a | (b && c)') is 'a | (b && c)'
204 PASS compileAndSerialize('a && b && c') is 'a && b && c'
205 PASS compileAndSerialize('(a && b) && c') is '(a && b) && c'
206 PASS compileAndSerialize('a && (b && c)') is 'a && (b && c)'
207 PASS compileAndSerialize('a && b || c') is 'a && b || c'
208 PASS compileAndSerialize('(a && b) || c') is '(a && b) || c'
209 PASS compileAndSerialize('a && (b || c)') is 'a && (b || c)'
210 PASS compileAndSerialize('a || b || c') is 'a || b || c'
211 PASS compileAndSerialize('(a || b) || c') is '(a || b) || c'
212 PASS compileAndSerialize('a || (b || c)') is 'a || (b || c)'
213 PASS compileAndSerialize('a = b = c') is 'a = b = c'
214 PASS compileAndSerialize('(a = b) = c') is '(a = b) = c'
215 PASS compileAndSerialize('a = (b = c)') is 'a = (b = c)'
216 PASS compileAndSerialize('a = b + c') is 'a = b + c'
217 PASS compileAndSerialize('(a = b) + c') is '(a = b) + c'
218 PASS compileAndSerialize('a = (b + c)') is 'a = (b + c)'
219 PASS compileAndSerialize('a + b = c') threw exception SyntaxError: Parse error.
220 PASS compileAndSerialize('(a + b) = c') is '(a + b) = c'
221 PASS compileAndSerialize('a + (b = c)') is 'a + (b = c)'
222 PASS compileAndSerialize('a *= b *= c') is 'a *= b *= c'
223 PASS compileAndSerialize('(a *= b) *= c') is '(a *= b) *= c'
224 PASS compileAndSerialize('a *= (b *= c)') is 'a *= (b *= c)'
225 PASS compileAndSerialize('a = b *= c') is 'a = b *= c'
226 PASS compileAndSerialize('(a = b) *= c') is '(a = b) *= c'
227 PASS compileAndSerialize('a = (b *= c)') is 'a = (b *= c)'
228 PASS compileAndSerialize('a *= b + c') is 'a *= b + c'
229 PASS compileAndSerialize('(a *= b) + c') is '(a *= b) + c'
230 PASS compileAndSerialize('a *= (b + c)') is 'a *= (b + c)'
231 PASS compileAndSerialize('a + b *= c') threw exception SyntaxError: Parse error.
232 PASS compileAndSerialize('(a + b) *= c') is '(a + b) *= c'
233 PASS compileAndSerialize('a + (b *= c)') is 'a + (b *= c)'
234 PASS compileAndSerialize('a /= b /= c') is 'a /= b /= c'
235 PASS compileAndSerialize('(a /= b) /= c') is '(a /= b) /= c'
236 PASS compileAndSerialize('a /= (b /= c)') is 'a /= (b /= c)'
237 PASS compileAndSerialize('a = b /= c') is 'a = b /= c'
238 PASS compileAndSerialize('(a = b) /= c') is '(a = b) /= c'
239 PASS compileAndSerialize('a = (b /= c)') is 'a = (b /= c)'
240 PASS compileAndSerialize('a /= b + c') is 'a /= b + c'
241 PASS compileAndSerialize('(a /= b) + c') is '(a /= b) + c'
242 PASS compileAndSerialize('a /= (b + c)') is 'a /= (b + c)'
243 PASS compileAndSerialize('a + b /= c') threw exception SyntaxError: Parse error.
244 PASS compileAndSerialize('(a + b) /= c') is '(a + b) /= c'
245 PASS compileAndSerialize('a + (b /= c)') is 'a + (b /= c)'
246 PASS compileAndSerialize('a %= b %= c') is 'a %= b %= c'
247 PASS compileAndSerialize('(a %= b) %= c') is '(a %= b) %= c'
248 PASS compileAndSerialize('a %= (b %= c)') is 'a %= (b %= c)'
249 PASS compileAndSerialize('a = b %= c') is 'a = b %= c'
250 PASS compileAndSerialize('(a = b) %= c') is '(a = b) %= c'
251 PASS compileAndSerialize('a = (b %= c)') is 'a = (b %= c)'
252 PASS compileAndSerialize('a %= b + c') is 'a %= b + c'
253 PASS compileAndSerialize('(a %= b) + c') is '(a %= b) + c'
254 PASS compileAndSerialize('a %= (b + c)') is 'a %= (b + c)'
255 PASS compileAndSerialize('a + b %= c') threw exception SyntaxError: Parse error.
256 PASS compileAndSerialize('(a + b) %= c') is '(a + b) %= c'
257 PASS compileAndSerialize('a + (b %= c)') is 'a + (b %= c)'
258 PASS compileAndSerialize('a += b += c') is 'a += b += c'
259 PASS compileAndSerialize('(a += b) += c') is '(a += b) += c'
260 PASS compileAndSerialize('a += (b += c)') is 'a += (b += c)'
261 PASS compileAndSerialize('a = b += c') is 'a = b += c'
262 PASS compileAndSerialize('(a = b) += c') is '(a = b) += c'
263 PASS compileAndSerialize('a = (b += c)') is 'a = (b += c)'
264 PASS compileAndSerialize('a += b + c') is 'a += b + c'
265 PASS compileAndSerialize('(a += b) + c') is '(a += b) + c'
266 PASS compileAndSerialize('a += (b + c)') is 'a += (b + c)'
267 PASS compileAndSerialize('a + b += c') threw exception SyntaxError: Parse error.
268 PASS compileAndSerialize('(a + b) += c') is '(a + b) += c'
269 PASS compileAndSerialize('a + (b += c)') is 'a + (b += c)'
270 PASS compileAndSerialize('a -= b -= c') is 'a -= b -= c'
271 PASS compileAndSerialize('(a -= b) -= c') is '(a -= b) -= c'
272 PASS compileAndSerialize('a -= (b -= c)') is 'a -= (b -= c)'
273 PASS compileAndSerialize('a = b -= c') is 'a = b -= c'
274 PASS compileAndSerialize('(a = b) -= c') is '(a = b) -= c'
275 PASS compileAndSerialize('a = (b -= c)') is 'a = (b -= c)'
276 PASS compileAndSerialize('a -= b + c') is 'a -= b + c'
277 PASS compileAndSerialize('(a -= b) + c') is '(a -= b) + c'
278 PASS compileAndSerialize('a -= (b + c)') is 'a -= (b + c)'
279 PASS compileAndSerialize('a + b -= c') threw exception SyntaxError: Parse error.
280 PASS compileAndSerialize('(a + b) -= c') is '(a + b) -= c'
281 PASS compileAndSerialize('a + (b -= c)') is 'a + (b -= c)'
282 PASS compileAndSerialize('a <<= b <<= c') is 'a <<= b <<= c'
283 PASS compileAndSerialize('(a <<= b) <<= c') is '(a <<= b) <<= c'
284 PASS compileAndSerialize('a <<= (b <<= c)') is 'a <<= (b <<= c)'
285 PASS compileAndSerialize('a = b <<= c') is 'a = b <<= c'
286 PASS compileAndSerialize('(a = b) <<= c') is '(a = b) <<= c'
287 PASS compileAndSerialize('a = (b <<= c)') is 'a = (b <<= c)'
288 PASS compileAndSerialize('a <<= b + c') is 'a <<= b + c'
289 PASS compileAndSerialize('(a <<= b) + c') is '(a <<= b) + c'
290 PASS compileAndSerialize('a <<= (b + c)') is 'a <<= (b + c)'
291 PASS compileAndSerialize('a + b <<= c') threw exception SyntaxError: Parse error.
292 PASS compileAndSerialize('(a + b) <<= c') is '(a + b) <<= c'
293 PASS compileAndSerialize('a + (b <<= c)') is 'a + (b <<= c)'
294 PASS compileAndSerialize('a >>= b >>= c') is 'a >>= b >>= c'
295 PASS compileAndSerialize('(a >>= b) >>= c') is '(a >>= b) >>= c'
296 PASS compileAndSerialize('a >>= (b >>= c)') is 'a >>= (b >>= c)'
297 PASS compileAndSerialize('a = b >>= c') is 'a = b >>= c'
298 PASS compileAndSerialize('(a = b) >>= c') is '(a = b) >>= c'
299 PASS compileAndSerialize('a = (b >>= c)') is 'a = (b >>= c)'
300 PASS compileAndSerialize('a >>= b + c') is 'a >>= b + c'
301 PASS compileAndSerialize('(a >>= b) + c') is '(a >>= b) + c'
302 PASS compileAndSerialize('a >>= (b + c)') is 'a >>= (b + c)'
303 PASS compileAndSerialize('a + b >>= c') threw exception SyntaxError: Parse error.
304 PASS compileAndSerialize('(a + b) >>= c') is '(a + b) >>= c'
305 PASS compileAndSerialize('a + (b >>= c)') is 'a + (b >>= c)'
306 PASS compileAndSerialize('a >>>= b >>>= c') is 'a >>>= b >>>= c'
307 PASS compileAndSerialize('(a >>>= b) >>>= c') is '(a >>>= b) >>>= c'
308 PASS compileAndSerialize('a >>>= (b >>>= c)') is 'a >>>= (b >>>= c)'
309 PASS compileAndSerialize('a = b >>>= c') is 'a = b >>>= c'
310 PASS compileAndSerialize('(a = b) >>>= c') is '(a = b) >>>= c'
311 PASS compileAndSerialize('a = (b >>>= c)') is 'a = (b >>>= c)'
312 PASS compileAndSerialize('a >>>= b + c') is 'a >>>= b + c'
313 PASS compileAndSerialize('(a >>>= b) + c') is '(a >>>= b) + c'
314 PASS compileAndSerialize('a >>>= (b + c)') is 'a >>>= (b + c)'
315 PASS compileAndSerialize('a + b >>>= c') threw exception SyntaxError: Parse error.
316 PASS compileAndSerialize('(a + b) >>>= c') is '(a + b) >>>= c'
317 PASS compileAndSerialize('a + (b >>>= c)') is 'a + (b >>>= c)'
318 PASS compileAndSerialize('a &= b &= c') is 'a &= b &= c'
319 PASS compileAndSerialize('(a &= b) &= c') is '(a &= b) &= c'
320 PASS compileAndSerialize('a &= (b &= c)') is 'a &= (b &= c)'
321 PASS compileAndSerialize('a = b &= c') is 'a = b &= c'
322 PASS compileAndSerialize('(a = b) &= c') is '(a = b) &= c'
323 PASS compileAndSerialize('a = (b &= c)') is 'a = (b &= c)'
324 PASS compileAndSerialize('a &= b + c') is 'a &= b + c'
325 PASS compileAndSerialize('(a &= b) + c') is '(a &= b) + c'
326 PASS compileAndSerialize('a &= (b + c)') is 'a &= (b + c)'
327 PASS compileAndSerialize('a + b &= c') threw exception SyntaxError: Parse error.
328 PASS compileAndSerialize('(a + b) &= c') is '(a + b) &= c'
329 PASS compileAndSerialize('a + (b &= c)') is 'a + (b &= c)'
330 PASS compileAndSerialize('a ^= b ^= c') is 'a ^= b ^= c'
331 PASS compileAndSerialize('(a ^= b) ^= c') is '(a ^= b) ^= c'
332 PASS compileAndSerialize('a ^= (b ^= c)') is 'a ^= (b ^= c)'
333 PASS compileAndSerialize('a = b ^= c') is 'a = b ^= c'
334 PASS compileAndSerialize('(a = b) ^= c') is '(a = b) ^= c'
335 PASS compileAndSerialize('a = (b ^= c)') is 'a = (b ^= c)'
336 PASS compileAndSerialize('a ^= b + c') is 'a ^= b + c'
337 PASS compileAndSerialize('(a ^= b) + c') is '(a ^= b) + c'
338 PASS compileAndSerialize('a ^= (b + c)') is 'a ^= (b + c)'
339 PASS compileAndSerialize('a + b ^= c') threw exception SyntaxError: Parse error.
340 PASS compileAndSerialize('(a + b) ^= c') is '(a + b) ^= c'
341 PASS compileAndSerialize('a + (b ^= c)') is 'a + (b ^= c)'
342 PASS compileAndSerialize('a |= b |= c') is 'a |= b |= c'
343 PASS compileAndSerialize('(a |= b) |= c') is '(a |= b) |= c'
344 PASS compileAndSerialize('a |= (b |= c)') is 'a |= (b |= c)'
345 PASS compileAndSerialize('a = b |= c') is 'a = b |= c'
346 PASS compileAndSerialize('(a = b) |= c') is '(a = b) |= c'
347 PASS compileAndSerialize('a = (b |= c)') is 'a = (b |= c)'
348 PASS compileAndSerialize('a |= b + c') is 'a |= b + c'
349 PASS compileAndSerialize('(a |= b) + c') is '(a |= b) + c'
350 PASS compileAndSerialize('a |= (b + c)') is 'a |= (b + c)'
351 PASS compileAndSerialize('a + b |= c') threw exception SyntaxError: Parse error.
352 PASS compileAndSerialize('(a + b) |= c') is '(a + b) |= c'
353 PASS compileAndSerialize('a + (b |= c)') is 'a + (b |= c)'
354 PASS compileAndSerialize('delete a + b') is 'delete a + b'
355 PASS compileAndSerialize('(delete a) + b') is '(delete a) + b'
356 PASS compileAndSerialize('delete (a + b)') is 'delete (a + b)'
357 PASS compileAndSerialize('!delete a') is '!delete a'
358 PASS compileAndSerialize('!(delete a)') is '!(delete a)'
359 PASS compileAndSerialize('void a + b') is 'void a + b'
360 PASS compileAndSerialize('(void a) + b') is '(void a) + b'
361 PASS compileAndSerialize('void (a + b)') is 'void (a + b)'
362 PASS compileAndSerialize('!void a') is '!void a'
363 PASS compileAndSerialize('!(void a)') is '!(void a)'
364 PASS compileAndSerialize('typeof a + b') is 'typeof a + b'
365 PASS compileAndSerialize('(typeof a) + b') is '(typeof a) + b'
366 PASS compileAndSerialize('typeof (a + b)') is 'typeof (a + b)'
367 PASS compileAndSerialize('!typeof a') is '!typeof a'
368 PASS compileAndSerialize('!(typeof a)') is '!(typeof a)'
369 PASS compileAndSerialize('++a + b') is '++a + b'
370 PASS compileAndSerialize('(++a) + b') is '(++a) + b'
371 PASS compileAndSerialize('++(a + b)') is '++(a + b)'
372 PASS compileAndSerialize('!++a') is '!++a'
373 PASS compileAndSerialize('!(++a)') is '!(++a)'
374 PASS compileAndSerialize('--a + b') is '--a + b'
375 PASS compileAndSerialize('(--a) + b') is '(--a) + b'
376 PASS compileAndSerialize('--(a + b)') is '--(a + b)'
377 PASS compileAndSerialize('!--a') is '!--a'
378 PASS compileAndSerialize('!(--a)') is '!(--a)'
379 PASS compileAndSerialize('+ a + b') is '+ a + b'
380 PASS compileAndSerialize('(+ a) + b') is '(+ a) + b'
381 PASS compileAndSerialize('+ (a + b)') is '+ (a + b)'
382 PASS compileAndSerialize('!+ a') is '!+ a'
383 PASS compileAndSerialize('!(+ a)') is '!(+ a)'
384 PASS compileAndSerialize('- a + b') is '- a + b'
385 PASS compileAndSerialize('(- a) + b') is '(- a) + b'
386 PASS compileAndSerialize('- (a + b)') is '- (a + b)'
387 PASS compileAndSerialize('!- a') is '!- a'
388 PASS compileAndSerialize('!(- a)') is '!(- a)'
389 PASS compileAndSerialize('~a + b') is '~a + b'
390 PASS compileAndSerialize('(~a) + b') is '(~a) + b'
391 PASS compileAndSerialize('~(a + b)') is '~(a + b)'
392 PASS compileAndSerialize('!~a') is '!~a'
393 PASS compileAndSerialize('!(~a)') is '!(~a)'
394 PASS compileAndSerialize('!a + b') is '!a + b'
395 PASS compileAndSerialize('(!a) + b') is '(!a) + b'
396 PASS compileAndSerialize('!(a + b)') is '!(a + b)'
397 PASS compileAndSerialize('!!a') is '!!a'
398 PASS compileAndSerialize('!(!a)') is '!(!a)'
399 PASS compileAndSerialize('!a++') is '!a++'
400 PASS compileAndSerialize('!(a++)') is '!(a++)'
401 PASS compileAndSerialize('(!a)++') is '(!a)++'
402 PASS compileAndSerialize('!a--') is '!a--'
403 PASS compileAndSerialize('!(a--)') is '!(a--)'
404 PASS compileAndSerialize('(!a)--') is '(!a)--'
405 PASS compileAndSerialize('(-1)[a]') is '(-1)[a]'
406 PASS compileAndSerialize('(-1)[a] = b') is '(-1)[a] = b'
407 PASS compileAndSerialize('(-1)[a] += b') is '(-1)[a] += b'
408 PASS compileAndSerialize('(-1)[a]++') is '(-1)[a]++'
409 PASS compileAndSerialize('++(-1)[a]') is '++(-1)[a]'
410 PASS compileAndSerialize('(-1)[a]()') is '(-1)[a]()'
411 PASS compileAndSerialize('new (-1)()') is 'new (-1)()'
412 PASS compileAndSerialize('(-1).a') is '(-1).a'
413 PASS compileAndSerialize('(-1).a = b') is '(-1).a = b'
414 PASS compileAndSerialize('(-1).a += b') is '(-1).a += b'
415 PASS compileAndSerialize('(-1).a++') is '(-1).a++'
416 PASS compileAndSerialize('++(-1).a') is '++(-1).a'
417 PASS compileAndSerialize('(-1).a()') is '(-1).a()'
418 PASS compileAndSerialize('(- 0)[a]') is '(- 0)[a]'
419 PASS compileAndSerialize('(- 0)[a] = b') is '(- 0)[a] = b'
420 PASS compileAndSerialize('(- 0)[a] += b') is '(- 0)[a] += b'
421 PASS compileAndSerialize('(- 0)[a]++') is '(- 0)[a]++'
422 PASS compileAndSerialize('++(- 0)[a]') is '++(- 0)[a]'
423 PASS compileAndSerialize('(- 0)[a]()') is '(- 0)[a]()'
424 PASS compileAndSerialize('new (- 0)()') is 'new (- 0)()'
425 PASS compileAndSerialize('(- 0).a') is '(- 0).a'
426 PASS compileAndSerialize('(- 0).a = b') is '(- 0).a = b'
427 PASS compileAndSerialize('(- 0).a += b') is '(- 0).a += b'
428 PASS compileAndSerialize('(- 0).a++') is '(- 0).a++'
429 PASS compileAndSerialize('++(- 0).a') is '++(- 0).a'
430 PASS compileAndSerialize('(- 0).a()') is '(- 0).a()'
431 PASS compileAndSerialize('(1)[a]') is '(1)[a]'
432 PASS compileAndSerialize('(1)[a] = b') is '(1)[a] = b'
433 PASS compileAndSerialize('(1)[a] += b') is '(1)[a] += b'
434 PASS compileAndSerialize('(1)[a]++') is '(1)[a]++'
435 PASS compileAndSerialize('++(1)[a]') is '++(1)[a]'
436 PASS compileAndSerialize('(1)[a]()') is '(1)[a]()'
437 PASS compileAndSerialize('new (1)()') is 'new (1)()'
438 PASS compileAndSerialize('(1).a') is '(1).a'
439 PASS compileAndSerialize('(1).a = b') is '(1).a = b'
440 PASS compileAndSerialize('(1).a += b') is '(1).a += b'
441 PASS compileAndSerialize('(1).a++') is '(1).a++'
442 PASS compileAndSerialize('++(1).a') is '++(1).a'
443 PASS compileAndSerialize('(1).a()') is '(1).a()'
444 PASS compileAndSerialize('(-1) = a') is '(-1) = a'
445 PASS compileAndSerialize('(- 0) = a') is '(- 0) = a'
446 PASS compileAndSerialize('1 = a') is '1 = a'
447 PASS compileAndSerialize('(-1) *= a') is '(-1) *= a'
448 PASS compileAndSerialize('(- 0) *= a') is '(- 0) *= a'
449 PASS compileAndSerialize('1 *= a') is '1 *= a'
450 PASS compileAndSerialize('(-1) /= a') is '(-1) /= a'
451 PASS compileAndSerialize('(- 0) /= a') is '(- 0) /= a'
452 PASS compileAndSerialize('1 /= a') is '1 /= a'
453 PASS compileAndSerialize('(-1) %= a') is '(-1) %= a'
454 PASS compileAndSerialize('(- 0) %= a') is '(- 0) %= a'
455 PASS compileAndSerialize('1 %= a') is '1 %= a'
456 PASS compileAndSerialize('(-1) += a') is '(-1) += a'
457 PASS compileAndSerialize('(- 0) += a') is '(- 0) += a'
458 PASS compileAndSerialize('1 += a') is '1 += a'
459 PASS compileAndSerialize('(-1) -= a') is '(-1) -= a'
460 PASS compileAndSerialize('(- 0) -= a') is '(- 0) -= a'
461 PASS compileAndSerialize('1 -= a') is '1 -= a'
462 PASS compileAndSerialize('(-1) <<= a') is '(-1) <<= a'
463 PASS compileAndSerialize('(- 0) <<= a') is '(- 0) <<= a'
464 PASS compileAndSerialize('1 <<= a') is '1 <<= a'
465 PASS compileAndSerialize('(-1) >>= a') is '(-1) >>= a'
466 PASS compileAndSerialize('(- 0) >>= a') is '(- 0) >>= a'
467 PASS compileAndSerialize('1 >>= a') is '1 >>= a'
468 PASS compileAndSerialize('(-1) >>>= a') is '(-1) >>>= a'
469 PASS compileAndSerialize('(- 0) >>>= a') is '(- 0) >>>= a'
470 PASS compileAndSerialize('1 >>>= a') is '1 >>>= a'
471 PASS compileAndSerialize('(-1) &= a') is '(-1) &= a'
472 PASS compileAndSerialize('(- 0) &= a') is '(- 0) &= a'
473 PASS compileAndSerialize('1 &= a') is '1 &= a'
474 PASS compileAndSerialize('(-1) ^= a') is '(-1) ^= a'
475 PASS compileAndSerialize('(- 0) ^= a') is '(- 0) ^= a'
476 PASS compileAndSerialize('1 ^= a') is '1 ^= a'
477 PASS compileAndSerialize('(-1) |= a') is '(-1) |= a'
478 PASS compileAndSerialize('(- 0) |= a') is '(- 0) |= a'
479 PASS compileAndSerialize('1 |= a') is '1 |= a'
480 PASS compileAndSerializeLeftmostTest('({ }).x') is '({ }).x'
481 PASS compileAndSerializeLeftmostTest('x = { }') is 'x = { }'
482 PASS compileAndSerializeLeftmostTest('(function () { })()') is '(function () { })()'
483 PASS compileAndSerializeLeftmostTest('x = function () { }') is 'x = function () { }'
484 PASS compileAndSerializeLeftmostTest('var a') is 'var a'
485 PASS compileAndSerializeLeftmostTest('var a = 1') is 'var a = 1'
486 PASS compileAndSerializeLeftmostTest('var a, b') is 'var a, b'
487 PASS compileAndSerializeLeftmostTest('var a = 1, b = 2') is 'var a = 1, b = 2'
488 PASS compileAndSerializeLeftmostTest('var a, b, c') is 'var a, b, c'
489 PASS compileAndSerializeLeftmostTest('var a = 1, b = 2, c = 3') is 'var a = 1, b = 2, c = 3'
490 PASS compileAndSerializeLeftmostTest('const a = 1') is 'const a = 1'
491 PASS compileAndSerializeLeftmostTest('const a = (1, 2)') is 'const a = (1, 2)'
492 PASS compileAndSerializeLeftmostTest('const a, b = 1') is 'const a, b = 1'
493 PASS compileAndSerializeLeftmostTest('const a = 1, b') is 'const a = 1, b'
494 PASS compileAndSerializeLeftmostTest('const a = 1, b = 1') is 'const a = 1, b = 1'
495 PASS compileAndSerializeLeftmostTest('const a = (1, 2), b = 1') is 'const a = (1, 2), b = 1'
496 PASS compileAndSerializeLeftmostTest('const a = 1, b = (1, 2)') is 'const a = 1, b = (1, 2)'
497 PASS compileAndSerializeLeftmostTest('const a = (1, 2), b = (1, 2)') is 'const a = (1, 2), b = (1, 2)'
498 PASS compileAndSerialize('(function () { new (a.b()).c })') is '(function () { new (a.b()).c })'
499 PASS successfullyParsed is true
500
501 TEST COMPLETE
502