twitst4tz

twitter statistics web application
Log | Files | Refs | README | LICENSE

direct_resolve.js (1395B)


      1 "use strict";
      2 module.exports = function(Promise) {
      3 function returner() {
      4     return this.value;
      5 }
      6 function thrower() {
      7     throw this.reason;
      8 }
      9 
     10 Promise.prototype["return"] =
     11 Promise.prototype.thenReturn = function (value) {
     12     if (value instanceof Promise) value.suppressUnhandledRejections();
     13     return this._then(
     14         returner, undefined, undefined, {value: value}, undefined);
     15 };
     16 
     17 Promise.prototype["throw"] =
     18 Promise.prototype.thenThrow = function (reason) {
     19     return this._then(
     20         thrower, undefined, undefined, {reason: reason}, undefined);
     21 };
     22 
     23 Promise.prototype.catchThrow = function (reason) {
     24     if (arguments.length <= 1) {
     25         return this._then(
     26             undefined, thrower, undefined, {reason: reason}, undefined);
     27     } else {
     28         var _reason = arguments[1];
     29         var handler = function() {throw _reason;};
     30         return this.caught(reason, handler);
     31     }
     32 };
     33 
     34 Promise.prototype.catchReturn = function (value) {
     35     if (arguments.length <= 1) {
     36         if (value instanceof Promise) value.suppressUnhandledRejections();
     37         return this._then(
     38             undefined, returner, undefined, {value: value}, undefined);
     39     } else {
     40         var _value = arguments[1];
     41         if (_value instanceof Promise) _value.suppressUnhandledRejections();
     42         var handler = function() {return _value;};
     43         return this.caught(value, handler);
     44     }
     45 };
     46 };