(settled, promise, callback, detail)
| 4540 | } |
| 4541 | |
| 4542 | function invokeCallback(settled, promise, callback, detail) { |
| 4543 | var hasCallback = isFunction(callback), |
| 4544 | value, error, succeeded, failed; |
| 4545 | |
| 4546 | if (hasCallback) { |
| 4547 | try { |
| 4548 | value = callback(detail); |
| 4549 | succeeded = true; |
| 4550 | } catch(e) { |
| 4551 | failed = true; |
| 4552 | error = e; |
| 4553 | } |
| 4554 | } else { |
| 4555 | value = detail; |
| 4556 | succeeded = true; |
| 4557 | } |
| 4558 | |
| 4559 | if (handleThenable(promise, value)) { |
| 4560 | return; |
| 4561 | } else if (hasCallback && succeeded) { |
| 4562 | resolve(promise, value); |
| 4563 | } else if (failed) { |
| 4564 | reject(promise, error); |
| 4565 | } else if (settled === FULFILLED) { |
| 4566 | resolve(promise, value); |
| 4567 | } else if (settled === REJECTED) { |
| 4568 | reject(promise, value); |
| 4569 | } |
| 4570 | } |
| 4571 | |
| 4572 | var PENDING = void 0; |
| 4573 | var SEALED = 0; |
no test coverage detected