| /** @license MIT License (c) copyright 2010-2014 original author or authors */ |
| /** @author Brian Cavalier */ |
| /** @author John Hann */ |
| /** @author Jeff Escalante */ |
| |
| (function(define) { 'use strict'; |
| define(function() { |
| |
| return function fold(Promise) { |
| |
| Promise.prototype.fold = function(f, z) { |
| var promise = this._beget(); |
| |
| this._handler.fold(function(z, x, to) { |
| Promise._handler(z).fold(function(x, z, to) { |
| to.resolve(f.call(this, z, x)); |
| }, x, this, to); |
| }, z, promise._handler.receiver, promise._handler); |
| |
| return promise; |
| }; |
| |
| return Promise; |
| }; |
| |
| }); |
| }(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); })); |