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

Side by Side Diff: test/mjsunit/harmony/destructuring-assignment.js

Issue 1704533002: Support rest element pattern with user-defined iterable (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 10 months 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 | « test/mjsunit/harmony/destructuring.js ('k') | no next file » | 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-destructuring-assignment --harmony-destructuring-bind 5 // Flags: --harmony-destructuring-assignment --harmony-destructuring-bind
6 6
7 // script-level tests 7 // script-level tests
8 var ox, oy = {}, oz; 8 var ox, oy = {}, oz;
9 ({ 9 ({
10 x: ox, 10 x: ox,
(...skipping 387 matching lines...) Expand 10 before | Expand all | Expand 10 after
398 it = [g()]; 398 it = [g()];
399 assertEquals(it, [ [...y] ] = it); 399 assertEquals(it, [ [...y] ] = it);
400 assertEquals([undefined, undefined, undefined], y); 400 assertEquals([undefined, undefined, undefined], y);
401 assertEquals(6, count); 401 assertEquals(6, count);
402 402
403 it = { a: g() }; 403 it = { a: g() };
404 assertEquals(it, { a: [...z] } = it); 404 assertEquals(it, { a: [...z] } = it);
405 assertEquals([undefined, undefined, undefined], z); 405 assertEquals([undefined, undefined, undefined], z);
406 assertEquals(9, count); 406 assertEquals(9, count);
407 })(); 407 })();
408
409 (function cstm() {
410 var idx = 0;
411 var iterable = {};
412 var iterator = {
413 next: function() {
414 idx += 1;
415 return {
416 value: idx,
417 done: idx > 3
418 };
419 }
420 };
421 iterable[Symbol.iterator] = function() {
422 return iterator;
423 };
424 var result;
425
426 [...result] = iterable;
427
428 assertEquals([1, 2, 3], result);
429 })();
408 })(); 430 })();
409 431
410 (function testRequireObjectCoercible() { 432 (function testRequireObjectCoercible() {
411 assertThrows(() => ({} = undefined), TypeError); 433 assertThrows(() => ({} = undefined), TypeError);
412 assertThrows(() => ({} = null), TypeError); 434 assertThrows(() => ({} = null), TypeError);
413 assertThrows(() => [] = undefined, TypeError); 435 assertThrows(() => [] = undefined, TypeError);
414 assertThrows(() => [] = null, TypeError); 436 assertThrows(() => [] = null, TypeError);
415 assertEquals("test", ({} = "test")); 437 assertEquals("test", ({} = "test"));
416 assertEquals("test", [] = "test"); 438 assertEquals("test", [] = "test");
417 assertEquals(123, ({} = 123)); 439 assertEquals(123, ({} = 123));
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
473 assertEquals(["s", "p", "o", "r", "k"], x.rest); 495 assertEquals(["s", "p", "o", "r", "k"], x.rest);
474 break; 496 break;
475 } 497 }
476 log.push({ firstLetter: x.firstLetter, rest: x.rest }); 498 log.push({ firstLetter: x.firstLetter, rest: x.rest });
477 } 499 }
478 assertEquals([ 500 assertEquals([
479 { firstLetter: "\u{1F382}", rest: ["c", "a", "k", "e"] }, 501 { firstLetter: "\u{1F382}", rest: ["c", "a", "k", "e"] },
480 { firstLetter: "B", rest: ["p", "u", "p", "p", "y"] }, 502 { firstLetter: "B", rest: ["p", "u", "p", "p", "y"] },
481 ], log); 503 ], log);
482 })(); 504 })();
OLDNEW
« no previous file with comments | « test/mjsunit/harmony/destructuring.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698