Index: src/promise.js |
diff --git a/src/promise.js b/src/promise.js |
index 82aa99027a1305ac8bf6b95672cccd89504173cd..b3bae9efd7e4fe656bc1e5ea47d62f1bead1f9d4 100644 |
--- a/src/promise.js |
+++ b/src/promise.js |
@@ -148,8 +148,9 @@ function PromiseIdResolveHandler(x) { return x } |
function PromiseIdRejectHandler(r) { throw r } |
function PromiseChain(onResolve, onReject) { // a.k.a. flatMap |
- onResolve = IS_UNDEFINED(onResolve) ? PromiseIdResolveHandler : onResolve; |
- onReject = IS_UNDEFINED(onReject) ? PromiseIdRejectHandler : onReject; |
+ onResolve = |
+ typeof onResolve === 'function' ? onResolve : PromiseIdResolveHandler; |
rossberg
2014/04/28 08:32:52
We shouldn't change .chain, only .then
yhirano
2014/04/28 12:35:40
Done.
|
+ onReject = typeof onReject === 'function' ? onReject : PromiseIdRejectHandler; |
var deferred = %_CallFunction(this.constructor, PromiseDeferred); |
switch (GET_PRIVATE(this, promiseStatus)) { |
case UNDEFINED: |
@@ -201,7 +202,8 @@ function PromiseHandle(value, handler, deferred) { |
// Multi-unwrapped chaining with thenable coercion. |
function PromiseThen(onResolve, onReject) { |
- onResolve = IS_UNDEFINED(onResolve) ? PromiseIdResolveHandler : onResolve; |
+ onResolve = |
+ typeof onResolve === 'function' ? onResolve : PromiseIdResolveHandler; |
rossberg
2014/04/28 08:32:52
Please use the IS_SPEC_FUNCTION macro instead.
yhirano
2014/04/28 12:35:40
Done.
|
var that = this; |
var constructor = this.constructor; |
return this.chain( |