Test case details

Preparation Code

<script src="http://rsvpjs-builds.s3.amazonaws.com/rsvp-latest.js"></script> <script src="https://rawgithub.com/petkaantonov/bluebird/master/js/browser/bluebird.js"></script> <script>var BPromise = Promise.noConflict(); if ((Promise + "").indexOf("native") < 0) alert("not native promises"); </script> <script> function P(fn) {   var state = 'pending';   var value;   var deferred = null;   function resolve(newValue) {     value = newValue;     state = 'resolved';     if(deferred) {       handle(deferred);     }   }   function handle(handler) {     if(state === 'pending') {       deferred = handler;       return;     }     if(!handler.onResolved) {       handler.resolve(value);       return;     }     var ret = handler.onResolved(value);     handler.resolve(ret);   }   this.then = function(onResolved) {     return new P(function(resolve) {       handle({         onResolved: onResolved,         resolve: resolve       });     });   };   fn(resolve); } </script>

Test cases

Test #1

// async test function make() {   return new BPromise(function (resolve, reject) {       resolve(1)   }) } make().then(function (v) { deferred.resolve()  })

Test #2

// async test function make() {   var defer = RSVP.defer()     defer.resolve()   return defer.promise } make().then(function () { deferred.resolve() })

Test #3

// async test function make() {   return new BPromise(function (resolve, reject) {       resolve(1)   }) } make().then(function (v) { deferred.resolve()  })

Test #4

// async test function make() {   return new RSVP.Promise(function (resolve, reject) {       resolve(1)   }) } make().then(function (v) {deferred.resolve()  })

Test #5

// async test function make() {   return new Promise(function (resolve, reject) {       resolve(1)   }) } make().then(function (v) { deferred.resolve()  })

Test #6

// async test function make() {   return new P(function (resolve, reject) {       resolve(1)   }) } make().then(function (v) { deferred.resolve()  })