Test case details

Preparation Code

<script>   // pimp installs a global setImmediate shim   var _setImmediate = window.setImmediate;   var _Promise = window.Promise; </script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> <script src="https://cdn.rawgit.com/dfilatov/vow/0.4.7/vow.min.js"></script> <script src="https://cdn.rawgit.com/petkaantonov/bluebird/v2.3.11/js/browser/bluebird.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/q.js/1.1.1/q.min.js"></script> <script src="https://rsvpjs-builds.s3.amazonaws.com/rsvp-latest.js"></script> <script src="https://cdn.rawgit.com/calvinmetcalf/lie/2.7.7/dist/lie.noConflict.js"></script> <script src="https://cdn.rawgit.com/calvinmetcalf/catiline/2.9.3/dist/catiline.js"></script> //kew 0.5.0-alpha1 <script src="http://pastebin.com/raw.php?i=b7R6bgzk"></script> <script src="https://cdn.rawgit.com/zeusdeux/pimp/0.2.3/browser/pimp.0.2.3.js"></script> <script>   window.setImmediate = _setImmediate;   window.Promise = _Promise; </script>

Test cases

Test #1

// async test var code = 'lie' + Math.random(); var p = new Lie(function(resolve, reject) {   function eventFunc(e) {     if (e.data === code) {       window.removeEventListener('message', eventFunc);       resolve();     }   }   window.addEventListener('message', eventFunc); }); p.then(function() {   deferred.resolve() }) window.postMessage(code, '*');

Test #2

// async test var d = RSVP.defer(); var code = 'rsvp' + Math.random(); function eventFunc(e) {   if (e.data === code) {     window.removeEventListener('message', eventFunc);     d.resolve();   } } window.addEventListener('message', eventFunc); d.promise.then(function() {   deferred.resolve() }) window.postMessage(code, '*');

Test #3

// async test var d = Q.defer() var code = 'q' + Math.random(); function eventFunc(e) {   if (e.data === code) {     window.removeEventListener('message', eventFunc);     d.resolve();   } } window.addEventListener('message', eventFunc); d.promise.then(function() {   deferred.resolve() }) window.postMessage(code, '*');

Test #4

// async test var d = cw.deferred() var code = 'cw' + Math.random(); function eventFunc(e) {   if (e.data === code) {     window.removeEventListener('message', eventFunc);     d.resolve();   } } window.addEventListener('message', eventFunc); d.promise.then(function() {   deferred.resolve() }) window.postMessage(code, '*');

Test #5

// async test var d = P.pending(); var code = 'pend' + Math.random(); function eventFunc(e) {   if (e.data === code) {     window.removeEventListener('message', eventFunc);     d.fulfill();   } } d.promise.then(function() {   deferred.resolve() }); window.addEventListener('message', eventFunc); window.postMessage(code, '*');

Test #6

// async test var d = Pimp.deferred() var code = 'pimp' + Math.random(); function eventFunc(e) {   if (e.data === code) {     window.removeEventListener('message', eventFunc);     d.resolve();   } } window.addEventListener('message', eventFunc); d.promise.then(function() {   deferred.resolve() }) window.postMessage(code, '*');

Test #7

// async test var d = vow.defer(); var code = 'nat' + Math.random(); function eventFunc(e) {   if (e.data === code) {     window.removeEventListener('message', eventFunc);     d.resolve();   } } window.addEventListener('message', eventFunc); d.promise().then(function() {   deferred.resolve() }) window.postMessage(code, '*');

Test #8

// async test var d = kew.defer() var code = 'kew' + Math.random(); function eventFunc(e) {   if (e.data === code) {     window.removeEventListener('message', eventFunc);     d.resolve();   } } window.addEventListener('message', eventFunc); d.promise.then(function() {   deferred.resolve() }) window.postMessage(code, '*');

Test #9

// async test var code = 'native' + Math.random(); var p = new Promise(function(resolve, reject) {   function eventFunc(e) {     if (e.data === code) {       window.removeEventListener('message', eventFunc);       resolve();     }   }   window.addEventListener('message', eventFunc); }); p.then(function() {   deferred.resolve() }) window.postMessage(code, '*');

Test #10

// async test var code = 'jquery' + Math.random(); var d = $.Deferred() function eventFunc(e) {   if (e.data === code) {     window.removeEventListener('message', eventFunc);     d.resolve();   } } window.addEventListener('message', eventFunc); d.then(function done() {   deferred.resolve() }) window.postMessage(code, '*');