Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(208)

Side by Side Diff: test/mjsunit/harmony/default-parameters.js

Issue 1410023015: Split default parameters that require destructuring into their own file (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Add missing file Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | test/mjsunit/harmony/default-parameters-destructuring.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Flags: --harmony-default-parameters 5 // Flags: --harmony-default-parameters --harmony-rest-parameters
6 // Flags: --harmony-rest-parameters --harmony-destructuring
7 6
8 7
9 (function TestDefaults() { 8 (function TestDefaults() {
10 function f1(x = 1) { return x } 9 function f1(x = 1) { return x }
11 assertEquals(1, f1()); 10 assertEquals(1, f1());
12 assertEquals(1, f1(undefined)); 11 assertEquals(1, f1(undefined));
13 assertEquals(2, f1(2)); 12 assertEquals(2, f1(2));
14 assertEquals(null, f1(null)); 13 assertEquals(null, f1(null));
15 14
16 function f2(x, y = x) { return x + y; } 15 function f2(x, y = x) { return x + y; }
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
172 var x = 1; 171 var x = 1;
173 172
174 function f1(y = eval("var x = 2")) { with ({}) { return x; } } 173 function f1(y = eval("var x = 2")) { with ({}) { return x; } }
175 assertEquals(1, f1()); 174 assertEquals(1, f1());
176 function f2(y = eval("var x = 2"), z = x) { return z; } 175 function f2(y = eval("var x = 2"), z = x) { return z; }
177 assertEquals(1, f2()); 176 assertEquals(1, f2());
178 assertEquals(1, f2(0)); 177 assertEquals(1, f2(0));
179 function f3(y = eval("var x = 2"), z = eval("x")) { return z; } 178 function f3(y = eval("var x = 2"), z = eval("x")) { return z; }
180 assertEquals(1, f3()); 179 assertEquals(1, f3());
181 assertEquals(1, f3(0)); 180 assertEquals(1, f3(0));
182 function f41({[eval("var x = 2; 'a'")]: w}, z = x) { return z; }
183 assertEquals(1, f41({}));
184 assertEquals(1, f41({a: 0}));
185 function f42({[eval("var x = 2; 'a'")]: w}, z = eval("x")) { return z; }
186 assertEquals(1, f42({}));
187 assertEquals(1, f42({a: 0}));
188 function f43({a: w = eval("var x = 2")}, z = x) { return z; }
189 assertEquals(1, f43({}));
190 assertEquals(1, f43({a: 0}));
191 function f44({a: w = eval("var x = 2")}, z = eval("x")) { return z; }
192 assertEquals(1, f44({}));
193 assertEquals(1, f44({a: 0}));
194
195 function f5({a = eval("var x = 2"), b = x}) { return b; }
196 assertEquals(2, f5({}));
197 assertEquals(1, f5({a: 0}));
198 function f6({a = eval("var x = 2"), b = eval("x")}) { return b; }
199 assertEquals(2, f6({}));
200 assertEquals(1, f6({a: 0}));
201 function f71({[eval("var x = 2; 'a'")]: w, b = x}) { return b; }
202 assertEquals(2, f71({}));
203 assertEquals(2, f71({a: 0}));
204 function f72({[eval("var x = 2; 'a'")]: w, b = eval("x")}) { return b; }
205 assertEquals(2, f72({}));
206 assertEquals(2, f72({a: 0}));
207 function f73({a: w = eval("var x = 2"), b = x}) { return b; }
208 assertEquals(2, f73({}));
209 assertEquals(1, f73({a: 0}));
210 function f74({a: w = eval("var x = 2"), b = eval("x")}) { return b; }
211 assertEquals(2, f74({}));
212 assertEquals(1, f74({a: 0}));
213 function f8(y = (eval("var x = 2"), x)) { return y; } 181 function f8(y = (eval("var x = 2"), x)) { return y; }
214 assertEquals(2, f8()); 182 assertEquals(2, f8());
215 assertEquals(0, f8(0)); 183 assertEquals(0, f8(0));
216 184
217 function f11(z = eval("var y = 2")) { return y; } 185 function f11(z = eval("var y = 2")) { return y; }
218 assertThrows(f11, ReferenceError); 186 assertThrows(f11, ReferenceError);
219 function f12(z = eval("var y = 2"), b = y) {} 187 function f12(z = eval("var y = 2"), b = y) {}
220 assertThrows(f12, ReferenceError); 188 assertThrows(f12, ReferenceError);
221 function f13(z = eval("var y = 2"), b = eval("y")) {} 189 function f13(z = eval("var y = 2"), b = eval("y")) {}
222 assertThrows(f13, ReferenceError); 190 assertThrows(f13, ReferenceError);
223 191
224 function f21(f = () => x) { eval("var x = 2"); return f() } 192 function f21(f = () => x) { eval("var x = 2"); return f() }
225 assertEquals(1, f21()); 193 assertEquals(1, f21());
226 assertEquals(3, f21(() => 3)); 194 assertEquals(3, f21(() => 3));
227 function f22(f = () => eval("x")) { eval("var x = 2"); return f() } 195 function f22(f = () => eval("x")) { eval("var x = 2"); return f() }
228 assertEquals(1, f22()); 196 assertEquals(1, f22());
229 assertEquals(3, f22(() => 3)); 197 assertEquals(3, f22(() => 3));
230 198
231 var g1 = (y = eval("var x = 2")) => { with ({}) { return x; } }; 199 var g1 = (y = eval("var x = 2")) => { with ({}) { return x; } };
232 assertEquals(1, g1()); 200 assertEquals(1, g1());
233 var g2 = (y = eval("var x = 2"), z = x) => { return z; }; 201 var g2 = (y = eval("var x = 2"), z = x) => { return z; };
234 assertEquals(1, g2()); 202 assertEquals(1, g2());
235 assertEquals(1, g2(0)); 203 assertEquals(1, g2(0));
236 var g3 = (y = eval("var x = 2"), z = eval("x")) => { return z; }; 204 var g3 = (y = eval("var x = 2"), z = eval("x")) => { return z; };
237 assertEquals(1, g3()); 205 assertEquals(1, g3());
238 assertEquals(1, g3(0)); 206 assertEquals(1, g3(0));
239 var g41 = ({[eval("var x = 2; 'a'")]: w}, z = x) => { return z; };
240 assertEquals(1, g41({}));
241 assertEquals(1, g41({a: 0}));
242 var g42 = ({[eval("var x = 2; 'a'")]: w}, z = eval("x")) => { return z; };
243 assertEquals(1, g42({}));
244 assertEquals(1, g42({a: 0}));
245 var g43 = ({a: w = eval("var x = 2")}, z = x) => { return z; };
246 assertEquals(1, g43({}));
247 assertEquals(1, g43({a: 0}));
248 var g44 = ({a: w = eval("var x = 2")}, z = eval("x")) => { return z; };
249 assertEquals(1, g44({}));
250 assertEquals(1, g44({a: 0}));
251
252 var g5 = ({a = eval("var x = 2"), b = x}) => { return b; };
253 assertEquals(2, g5({}));
254 assertEquals(1, g5({a: 0}));
255 var g6 = ({a = eval("var x = 2"), b = eval("x")}) => { return b; };
256 assertEquals(2, g6({}));
257 assertEquals(1, g6({a: 0}));
258 var g71 = ({[eval("var x = 2; 'a'")]: w, b = x}) => { return b; };
259 assertEquals(2, g71({}));
260 assertEquals(2, g71({a: 0}));
261 var g72 = ({[eval("var x = 2; 'a'")]: w, b = eval("x")}) => { return b; };
262 assertEquals(2, g72({}));
263 assertEquals(2, g72({a: 0}));
264 var g73 = ({a: w = eval("var x = 2"), b = x}) => { return b; };
265 assertEquals(2, g73({}));
266 assertEquals(1, g73({a: 0}));
267 var g74 = ({a: w = eval("var x = 2"), b = eval("x")}) => { return b; };
268 assertEquals(2, g74({}));
269 assertEquals(1, g74({a: 0}));
270 var g8 = (y = (eval("var x = 2"), x)) => { return y; }; 207 var g8 = (y = (eval("var x = 2"), x)) => { return y; };
271 assertEquals(2, g8()); 208 assertEquals(2, g8());
272 assertEquals(0, g8(0)); 209 assertEquals(0, g8(0));
273 210
274 var g11 = (z = eval("var y = 2")) => { return y; }; 211 var g11 = (z = eval("var y = 2")) => { return y; };
275 assertThrows(g11, ReferenceError); 212 assertThrows(g11, ReferenceError);
276 var g12 = (z = eval("var y = 2"), b = y) => {}; 213 var g12 = (z = eval("var y = 2"), b = y) => {};
277 assertThrows(g12, ReferenceError); 214 assertThrows(g12, ReferenceError);
278 var g13 = (z = eval("var y = 2"), b = eval("y")) => {}; 215 var g13 = (z = eval("var y = 2"), b = eval("y")) => {};
279 assertThrows(g13, ReferenceError); 216 assertThrows(g13, ReferenceError);
(...skipping 12 matching lines...) Expand all
292 var x = 1; 229 var x = 1;
293 230
294 function f1(y = eval("var x = 2")) { return x; } 231 function f1(y = eval("var x = 2")) { return x; }
295 assertEquals(1, f1()); 232 assertEquals(1, f1());
296 function f2(y = eval("var x = 2"), z = x) { return z; } 233 function f2(y = eval("var x = 2"), z = x) { return z; }
297 assertEquals(1, f2()); 234 assertEquals(1, f2());
298 assertEquals(1, f2(0)); 235 assertEquals(1, f2(0));
299 function f3(y = eval("var x = 2"), z = eval("x")) { return z; } 236 function f3(y = eval("var x = 2"), z = eval("x")) { return z; }
300 assertEquals(1, f3()); 237 assertEquals(1, f3());
301 assertEquals(1, f3(0)); 238 assertEquals(1, f3(0));
302 function f41({[eval("var x = 2; 'a'")]: w}, z = x) { return z; }
303 assertEquals(1, f41({}));
304 assertEquals(1, f41({a: 0}));
305 function f42({[eval("var x = 2; 'a'")]: w}, z = eval("x")) { return z; }
306 assertEquals(1, f42({}));
307 assertEquals(1, f42({a: 0}));
308 function f43({a: w = eval("var x = 2")}, z = x) { return z; }
309 assertEquals(1, f43({}));
310 assertEquals(1, f43({a: 0}));
311 function f44({a: w = eval("var x = 2")}, z = eval("x")) { return z; }
312 assertEquals(1, f44({}));
313 assertEquals(1, f44({a: 0}));
314
315 function f5({a = eval("var x = 2"), b = x}) { return b; }
316 assertEquals(1, f5({}));
317 assertEquals(1, f5({a: 0}));
318 function f6({a = eval("var x = 2"), b = eval("x")}) { return b; }
319 assertEquals(1, f6({}));
320 assertEquals(1, f6({a: 0}));
321 function f71({[eval("var x = 2; 'a'")]: w, b = x}) { return b; }
322 assertEquals(1, f71({}));
323 assertEquals(1, f71({a: 0}));
324 function f72({[eval("var x = 2; 'a'")]: w, b = eval("x")}) { return b; }
325 assertEquals(1, f72({}));
326 assertEquals(1, f72({a: 0}));
327 function f73({a: w = eval("var x = 2"), b = x}) { return b; }
328 assertEquals(1, f73({}));
329 assertEquals(1, f73({a: 0}));
330 function f74({a: w = eval("var x = 2"), b = eval("x")}) { return b; }
331 assertEquals(1, f74({}));
332 assertEquals(1, f74({a: 0}));
333 function f8(y = (eval("var x = 2"), x)) { return y; } 239 function f8(y = (eval("var x = 2"), x)) { return y; }
334 assertEquals(1, f8()); 240 assertEquals(1, f8());
335 assertEquals(0, f8(0)); 241 assertEquals(0, f8(0));
336 242
337 function f11(z = eval("var y = 2")) { return y; } 243 function f11(z = eval("var y = 2")) { return y; }
338 assertThrows(f11, ReferenceError); 244 assertThrows(f11, ReferenceError);
339 function f12(z = eval("var y = 2"), b = y) {} 245 function f12(z = eval("var y = 2"), b = y) {}
340 assertThrows(f12, ReferenceError); 246 assertThrows(f12, ReferenceError);
341 function f13(z = eval("var y = 2"), b = eval("y")) {} 247 function f13(z = eval("var y = 2"), b = eval("y")) {}
342 assertThrows(f13, ReferenceError); 248 assertThrows(f13, ReferenceError);
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
450 assertThrows(function(){ eval("(x=1) => {'use strict';}") }, SyntaxError); 356 assertThrows(function(){ eval("(x=1) => {'use strict';}") }, SyntaxError);
451 assertThrows( 357 assertThrows(
452 function(){ eval("(class{foo(x=1) {'use strict';}});") }, SyntaxError); 358 function(){ eval("(class{foo(x=1) {'use strict';}});") }, SyntaxError);
453 359
454 assertThrows( 360 assertThrows(
455 function(){ eval("function(a, x=1){'use strict';}") }, SyntaxError); 361 function(){ eval("function(a, x=1){'use strict';}") }, SyntaxError);
456 assertThrows(function(){ eval("(a, x=1) => {'use strict';}") }, SyntaxError); 362 assertThrows(function(){ eval("(a, x=1) => {'use strict';}") }, SyntaxError);
457 assertThrows( 363 assertThrows(
458 function(){ eval("(class{foo(a, x=1) {'use strict';}});") }, SyntaxError); 364 function(){ eval("(class{foo(a, x=1) {'use strict';}});") }, SyntaxError);
459 })(); 365 })();
OLDNEW
« no previous file with comments | « no previous file | test/mjsunit/harmony/default-parameters-destructuring.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698