“use strict”; module.exports = function(Promise) { function returner() {
return this.value;
} function thrower() {
throw this.reason;
}
Promise.prototype = Promise.prototype.thenReturn = function (value) {
if (value instanceof Promise) value.suppressUnhandledRejections(); return this._then( returner, undefined, undefined, {value: value}, undefined);
};
Promise.prototype = Promise.prototype.thenThrow = function (reason) {
return this._then( thrower, undefined, undefined, {reason: reason}, undefined);
};
Promise.prototype.catchThrow = function (reason) {
if (arguments.length <= 1) { return this._then( undefined, thrower, undefined, {reason: reason}, undefined); } else { var _reason = arguments[1]; var handler = function() {throw _reason;}; return this.caught(reason, handler); }
};
Promise.prototype.catchReturn = function (value) {
if (arguments.length <= 1) { if (value instanceof Promise) value.suppressUnhandledRejections(); return this._then( undefined, returner, undefined, {value: value}, undefined); } else { var _value = arguments[1]; if (_value instanceof Promise) _value.suppressUnhandledRejections(); var handler = function() {return _value;}; return this.caught(value, handler); }
}; };