(promise, func, value)
| 4632 | }; |
| 4633 | |
| 4634 | function unwrap(promise, func, value) { |
| 4635 | immediate(function () { |
| 4636 | var returnValue; |
| 4637 | try { |
| 4638 | returnValue = func(value); |
| 4639 | } catch (e) { |
| 4640 | return handlers.reject(promise, e); |
| 4641 | } |
| 4642 | if (returnValue === promise) { |
| 4643 | handlers.reject(promise, new TypeError('Cannot resolve promise with itself')); |
| 4644 | } else { |
| 4645 | handlers.resolve(promise, returnValue); |
| 4646 | } |
| 4647 | }); |
| 4648 | } |
| 4649 | |
| 4650 | handlers.resolve = function (self, value) { |
| 4651 | var result = tryCatch(getThen, value); |