From cf3a3a8844ebe67bfa86f191c63d4a23fe2aa3a4 Mon Sep 17 00:00:00 2001 From: "rossberg@chromium.org" Date: Mon, 28 Apr 2014 15:57:25 +0000 Subject: [PATCH] Revert "PromiseThen should ignore non-function parameters." Wrong Blink test expectations, need to fix later. TBR=machenbach@chromium.org BUG= Review URL: https://codereview.chromium.org/251813004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21028 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/promise.js | 4 ++-- test/mjsunit/es6/promises.js | 24 ------------------------ test/promises-aplus/promises-aplus.status | 2 ++ 3 files changed, 4 insertions(+), 26 deletions(-) diff --git a/src/promise.js b/src/promise.js index 076b216..b87f9d6 100644 --- a/src/promise.js +++ b/src/promise.js @@ -215,9 +215,9 @@ function PromiseHandle(value, handler, deferred) { function PromiseThen(onResolve, onReject) { onResolve = - IS_SPEC_FUNCTION(onResolve) ? onResolve : PromiseIdResolveHandler; + IS_NULL_OR_UNDEFINED(onResolve) ? PromiseIdResolveHandler : onResolve; onReject = - IS_SPEC_FUNCTION(onReject) ? onReject : PromiseIdRejectHandler; + IS_NULL_OR_UNDEFINED(onReject) ? PromiseIdRejectHandler : onReject; var that = this; var constructor = this.constructor; return %_CallFunction( diff --git a/test/mjsunit/es6/promises.js b/test/mjsunit/es6/promises.js index 8575ba1..ba5a306 100644 --- a/test/mjsunit/es6/promises.js +++ b/test/mjsunit/es6/promises.js @@ -399,30 +399,6 @@ function assertAsyncDone(iteration) { (function() { var deferred = Promise.defer() var p1 = deferred.promise - var p2 = p1.then(1, 2) - p2.then( - function(x) { assertAsync(x === 5, "then/resolve-non-function") }, - assertUnreachable - ) - deferred.resolve(5) - assertAsyncRan() -})(); - -(function() { - var deferred = Promise.defer() - var p1 = deferred.promise - var p2 = p1.then(1, 2) - p2.then( - assertUnreachable, - function(x) { assertAsync(x === 5, "then/reject-non-function") } - ) - deferred.reject(5) - assertAsyncRan() -})(); - -(function() { - var deferred = Promise.defer() - var p1 = deferred.promise var p2 = {then: function(onResolve, onReject) { onResolve(p1) }} var p3 = Promise.accept(p2) p3.chain( diff --git a/test/promises-aplus/promises-aplus.status b/test/promises-aplus/promises-aplus.status index fdcf40b..c68eae9 100644 --- a/test/promises-aplus/promises-aplus.status +++ b/test/promises-aplus/promises-aplus.status @@ -28,5 +28,7 @@ [ [ALWAYS, { + # http://crbug.com/347455 + '2.2.7': FAIL }], # ALWAYS ] -- 2.7.4