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

Side by Side Diff: test/mjsunit/es6/promises.js

Issue 1098663002: Promise assimilation fix. Base URL: git://github.com/v8/v8.git@master
Patch Set: Created 5 years, 7 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
« src/promise.js ('K') | « src/promise.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 2013 the V8 project authors. All rights reserved. 1 // Copyright 2013 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 371 matching lines...) Expand 10 before | Expand all | Expand 10 after
382 var p2 = {then: function(onResolve, onReject) { onResolve(p1) }} 382 var p2 = {then: function(onResolve, onReject) { onResolve(p1) }}
383 var p3 = Promise.accept(p2) 383 var p3 = Promise.accept(p2)
384 p3.then( 384 p3.then(
385 assertUnreachable, 385 assertUnreachable,
386 function(x) { assertAsync(x === 5, "rejected/thenable/then") } 386 function(x) { assertAsync(x === 5, "rejected/thenable/then") }
387 ) 387 )
388 assertAsyncRan() 388 assertAsyncRan()
389 })(); 389 })();
390 390
391 (function() { 391 (function() {
392 var p1 = Promise.accept(5)
393 var p2 = Promise.accept(p1)
394 var called = false
395 p2.then = function(onResolve, onReject) {
396 called = true;
397 return call(Promise.prototype.then, p2, onResolve, onReject)
398 }
399 var p3 = Promise.accept(p2)
400 p3.chain(
401 function(x) {
402 assertAsync(x === p2 && !called, "resolved/thenable-promise/chain")
403 },
404 assertUnreachable)
405 assertAsyncRan()
406 })();
407
408 (function() {
409 var p1 = Promise.accept(5)
410 var p2 = Promise.accept(p1)
411 var called = false
412 p2.then = function(onResolve, onReject) {
413 called = true
414 return call(Promise.prototype.then, p2, onResolve, onReject)
415 }
416 var p3 = Promise.accept(p2)
417 p3.then(
418 function(x) {
419 assertAsync(x === 5 && called, "resolved/thenable-promise/then")
420 },
421 assertUnreachable)
422 assertAsyncRan()
423 })();
424
425 (function() {
426 var p1 = Promise.accept(5)
427 var called = false
428 var p3 = p1.then(function(x) {
429 var p2 = Promise.accept(5)
430 p2.then = function(onResolve, onReject) {
431 called = true
432 throw 25
433 }
434 return p2
435 });
436 p3.then(
437 assertUnreachable,
438 function(x) {
439 assertAsync(called && x === 25, "thenable-promise/then-call-throw")
440 })
441 assertAsyncRan()
442 })();
443
444 (function() {
392 var deferred = Promise.defer() 445 var deferred = Promise.defer()
393 var p1 = deferred.promise 446 var p1 = deferred.promise
394 var p2 = Promise.accept(p1) 447 var p2 = Promise.accept(p1)
395 var p3 = Promise.accept(p2) 448 var p3 = Promise.accept(p2)
396 p3.chain( 449 p3.chain(
397 function(x) { assertAsync(x === p2, "chain/resolve") }, 450 function(x) { assertAsync(x === p2, "chain/resolve") },
398 assertUnreachable 451 assertUnreachable
399 ) 452 )
400 deferred.resolve(5) 453 deferred.resolve(5)
401 assertAsyncRan() 454 assertAsyncRan()
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
510 var p3 = Promise.accept(p2) 563 var p3 = Promise.accept(p2)
511 p3.then( 564 p3.then(
512 assertUnreachable, 565 assertUnreachable,
513 function(x) { assertAsync(x === 5, "then/reject/thenable") } 566 function(x) { assertAsync(x === 5, "then/reject/thenable") }
514 ) 567 )
515 deferred.reject(5) 568 deferred.reject(5)
516 assertAsyncRan() 569 assertAsyncRan()
517 })(); 570 })();
518 571
519 (function() { 572 (function() {
573 var deferred = Promise.defer()
574 var deferred2 = Promise.defer()
575 var deferred3 = Promise.defer()
576
577 var p1 = deferred.promise
578 var p2 = deferred2.promise
579 var p3 = deferred3.promise
580
581 var called = false
582 p2.then = function(onResolve, onReject) {
583 called = true
584 return call(Promise.prototype.then, p2, onResolve, onReject)
585 }
586 p3.chain(
587 function(x) { assertAsync(x === p2 && !called,
588 "chain/resolve/thenable-promise") },
589 assertUnreachable
590 )
591 deferred3.resolve(p2)
592 deferred2.resolve(p1)
593 deferred.resolve(5)
594 assertAsyncRan()
595 })();
596
597 (function() {
598 var deferred = Promise.defer()
599 var deferred2 = Promise.defer()
600 var deferred3 = Promise.defer()
601
602 var p1 = deferred.promise
603 var p2 = deferred2.promise
604 var p3 = deferred3.promise
605
606 var called = false
607 p2.then = function(onResolve, onReject) {
608 called = true
609 return call(Promise.prototype.then, p2, onResolve, onReject)
610 }
611 p3.then(
612 function(x) { assertAsync(x === 5 && called,
613 "then/resolve/thenable-promise") },
614 assertUnreachable
615 )
616 deferred3.resolve(p2)
617 deferred2.resolve(p1)
618 deferred.resolve(5)
619 assertAsyncRan()
620 })();
621
622 (function() {
623 var deferred = Promise.defer()
624 var deferred2 = Promise.defer()
625 var deferred3 = Promise.defer()
626
627 var p1 = deferred.promise
628 var p2 = deferred2.promise
629 var p3 = deferred3.promise
630
631 var called = false
632 p2.then = function(onResolve, onReject) {
633 called = true
634 return call(Promise.prototype.then, p2, onResolve, onReject)
635 }
636 p3.chain(
637 function(x) { assertAsync(x === p2 && !called,
638 "chain/reject/thenable-promise") },
639 assertUnreachable
640 )
641 deferred3.resolve(p2)
642 deferred2.resolve(p1)
643 deferred.reject(5)
644 assertAsyncRan()
645 })();
646
647 (function() {
648 var deferred = Promise.defer()
649 var deferred2 = Promise.defer()
650 var deferred3 = Promise.defer()
651
652 var p1 = deferred.promise
653 var p2 = deferred2.promise
654 var p3 = deferred3.promise
655
656 var called = false
657 p2.then = function(onResolve, onReject) {
658 called = true
659 return call(Promise.prototype.then, p2, onResolve, onReject)
660 }
661 p3.then(
662 assertUnreachable,
663 function(x) { assertAsync(x === 5 && called,
664 "then/reject/thenable-promise") }
665 )
666 deferred3.resolve(p2)
667 deferred2.resolve(p1)
668 deferred.reject(5)
669 assertAsyncRan()
670 })();
671
672 (function() {
520 var p1 = Promise.accept(5) 673 var p1 = Promise.accept(5)
521 var p2 = Promise.accept(p1) 674 var p2 = Promise.accept(p1)
522 var deferred = Promise.defer() 675 var deferred = Promise.defer()
523 var p3 = deferred.promise 676 var p3 = deferred.promise
524 p3.chain( 677 p3.chain(
525 function(x) { assertAsync(x === p2, "chain/resolve2") }, 678 function(x) { assertAsync(x === p2, "chain/resolve2") },
526 assertUnreachable 679 assertUnreachable
527 ) 680 )
528 deferred.resolve(p2) 681 deferred.resolve(p2)
529 assertAsyncRan() 682 assertAsyncRan()
(...skipping 330 matching lines...) Expand 10 before | Expand all | Expand 10 after
860 Promise.all([11, Promise.accept(12), 13, MyPromise.accept(14), 15, 16]) 1013 Promise.all([11, Promise.accept(12), 13, MyPromise.accept(14), 15, 16])
861 assertTrue(log === "nx14n", "subclass/all/arg") 1014 assertTrue(log === "nx14n", "subclass/all/arg")
862 1015
863 log = "" 1016 log = ""
864 MyPromise.all([21, Promise.accept(22), 23, MyPromise.accept(24), 25, 26]) 1017 MyPromise.all([21, Promise.accept(22), 23, MyPromise.accept(24), 25, 26])
865 assertTrue(log === "nx24nnx21nnx23nnnx25nnx26n", "subclass/all/self") 1018 assertTrue(log === "nx24nnx21nnx23nnnx25nnx26n", "subclass/all/self")
866 })(); 1019 })();
867 1020
868 1021
869 assertAsyncDone() 1022 assertAsyncDone()
OLDNEW
« src/promise.js ('K') | « src/promise.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698