From: rossberg@chromium.org Date: Tue, 18 Mar 2014 15:03:35 +0000 (+0000) Subject: Remove Promise.cast X-Git-Tag: upstream/4.7.83~10190 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b7b40e2b8417fc2f3862f347156c628c45aff4cd;p=platform%2Fupstream%2Fv8.git Remove Promise.cast ...as per January meeting. Renames 'cast' to 'resolve'. We rename the prior 'resolve' to 'accept', to keep the chain API usable. R=svenpanne@chromium.org BUG= Review URL: https://codereview.chromium.org/200763012 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20040 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- diff --git a/src/promise.js b/src/promise.js index f6b7bdf..8947670 100644 --- a/src/promise.js +++ b/src/promise.js @@ -261,7 +261,7 @@ function PromiseCoerce(constructor, x) { function PromiseCast(x) { // TODO(rossberg): cannot do better until we support @@create. - return IsPromise(x) ? x : this.resolve(x); + return IsPromise(x) ? x : new this(function(resolve) { resolve(x) }); } function PromiseAll(values) { @@ -277,7 +277,7 @@ function PromiseAll(values) { deferred.resolve(resolutions); } else { for (var i = 0; i < values.length; ++i) { - this.cast(values[i]).then( + this.resolve(values[i]).then( function(i, x) { resolutions[i] = x; if (--count === 0) deferred.resolve(resolutions); @@ -300,7 +300,7 @@ function PromiseOne(values) { } try { for (var i = 0; i < values.length; ++i) { - this.cast(values[i]).then( + this.resolve(values[i]).then( function(x) { deferred.resolve(x) }, function(r) { deferred.reject(r) } ); @@ -319,11 +319,11 @@ function SetUpPromise() { global_receiver.Promise = $Promise; InstallFunctions($Promise, DONT_ENUM, [ "defer", PromiseDeferred, - "resolve", PromiseResolved, + "accept", PromiseResolved, "reject", PromiseRejected, "all", PromiseAll, "race", PromiseOne, - "cast", PromiseCast + "resolve", PromiseCast ]); InstallFunctions($Promise.prototype, DONT_ENUM, [ "chain", PromiseChain, diff --git a/test/mjsunit/es6/promises.js b/test/mjsunit/es6/promises.js index f1b191c..48b96f6 100644 --- a/test/mjsunit/es6/promises.js +++ b/test/mjsunit/es6/promises.js @@ -25,7 +25,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// Flags: --harmony-promises --harmony-observation --allow-natives-syntax +// Flags: --harmony-promises --allow-natives-syntax var asyncAssertsExpected = 0; @@ -82,8 +82,8 @@ function assertAsyncDone(iteration) { })(); (function() { - Promise.resolve(5); - Promise.resolve(5).chain(undefined, assertUnreachable).chain( + Promise.accept(5); + Promise.accept(5).chain(undefined, assertUnreachable).chain( function(x) { assertAsync(x === 5, "resolved/chain-nohandler") }, assertUnreachable ) @@ -99,12 +99,12 @@ function assertAsyncDone(iteration) { })(); (function() { - Promise.resolve(5).then(undefined, assertUnreachable).chain( + Promise.accept(5).then(undefined, assertUnreachable).chain( function(x) { assertAsync(x === 5, "resolved/then-nohandler-undefined") }, assertUnreachable ) assertAsyncRan() - Promise.resolve(6).then(null, assertUnreachable).chain( + Promise.accept(6).then(null, assertUnreachable).chain( function(x) { assertAsync(x === 6, "resolved/then-nohandler-null") }, assertUnreachable ) @@ -125,9 +125,9 @@ function assertAsyncDone(iteration) { })(); (function() { - var p1 = Promise.resolve(5) - var p2 = Promise.resolve(p1) - var p3 = Promise.resolve(p2) + var p1 = Promise.accept(5) + var p2 = Promise.accept(p1) + var p3 = Promise.accept(p2) p3.chain( function(x) { assertAsync(x === p2, "resolved/chain") }, assertUnreachable @@ -136,9 +136,9 @@ function assertAsyncDone(iteration) { })(); (function() { - var p1 = Promise.resolve(5) - var p2 = Promise.resolve(p1) - var p3 = Promise.resolve(p2) + var p1 = Promise.accept(5) + var p2 = Promise.accept(p1) + var p3 = Promise.accept(p2) p3.then( function(x) { assertAsync(x === 5, "resolved/then") }, assertUnreachable @@ -148,8 +148,8 @@ function assertAsyncDone(iteration) { (function() { var p1 = Promise.reject(5) - var p2 = Promise.resolve(p1) - var p3 = Promise.resolve(p2) + var p2 = Promise.accept(p1) + var p3 = Promise.accept(p2) p3.chain( function(x) { assertAsync(x === p2, "rejected/chain") }, assertUnreachable @@ -159,8 +159,8 @@ function assertAsyncDone(iteration) { (function() { var p1 = Promise.reject(5) - var p2 = Promise.resolve(p1) - var p3 = Promise.resolve(p2) + var p2 = Promise.accept(p1) + var p3 = Promise.accept(p2) p3.then( assertUnreachable, function(x) { assertAsync(x === 5, "rejected/then") } @@ -169,9 +169,9 @@ function assertAsyncDone(iteration) { })(); (function() { - var p1 = Promise.resolve(5) - var p2 = Promise.resolve(p1) - var p3 = Promise.resolve(p2) + var p1 = Promise.accept(5) + var p2 = Promise.accept(p1) + var p3 = Promise.accept(p2) p3.chain(function(x) { return x }, assertUnreachable).chain( function(x) { assertAsync(x === p1, "resolved/chain/chain") }, assertUnreachable @@ -180,9 +180,9 @@ function assertAsyncDone(iteration) { })(); (function() { - var p1 = Promise.resolve(5) - var p2 = Promise.resolve(p1) - var p3 = Promise.resolve(p2) + var p1 = Promise.accept(5) + var p2 = Promise.accept(p1) + var p3 = Promise.accept(p2) p3.chain(function(x) { return x }, assertUnreachable).then( function(x) { assertAsync(x === 5, "resolved/chain/then") }, assertUnreachable @@ -191,9 +191,9 @@ function assertAsyncDone(iteration) { })(); (function() { - var p1 = Promise.resolve(5) - var p2 = Promise.resolve(p1) - var p3 = Promise.resolve(p2) + var p1 = Promise.accept(5) + var p2 = Promise.accept(p1) + var p3 = Promise.accept(p2) p3.chain(function(x) { return 6 }, assertUnreachable).chain( function(x) { assertAsync(x === 6, "resolved/chain/chain2") }, assertUnreachable @@ -202,9 +202,9 @@ function assertAsyncDone(iteration) { })(); (function() { - var p1 = Promise.resolve(5) - var p2 = Promise.resolve(p1) - var p3 = Promise.resolve(p2) + var p1 = Promise.accept(5) + var p2 = Promise.accept(p1) + var p3 = Promise.accept(p2) p3.chain(function(x) { return 6 }, assertUnreachable).then( function(x) { assertAsync(x === 6, "resolved/chain/then2") }, assertUnreachable @@ -213,9 +213,9 @@ function assertAsyncDone(iteration) { })(); (function() { - var p1 = Promise.resolve(5) - var p2 = Promise.resolve(p1) - var p3 = Promise.resolve(p2) + var p1 = Promise.accept(5) + var p2 = Promise.accept(p1) + var p3 = Promise.accept(p2) p3.then(function(x) { return x + 1 }, assertUnreachable).chain( function(x) { assertAsync(x === 6, "resolved/then/chain") }, assertUnreachable @@ -224,9 +224,9 @@ function assertAsyncDone(iteration) { })(); (function() { - var p1 = Promise.resolve(5) - var p2 = Promise.resolve(p1) - var p3 = Promise.resolve(p2) + var p1 = Promise.accept(5) + var p2 = Promise.accept(p1) + var p3 = Promise.accept(p2) p3.then(function(x) { return x + 1 }, assertUnreachable).then( function(x) { assertAsync(x === 6, "resolved/then/then") }, assertUnreachable @@ -235,10 +235,10 @@ function assertAsyncDone(iteration) { })(); (function() { - var p1 = Promise.resolve(5) - var p2 = Promise.resolve(p1) - var p3 = Promise.resolve(p2) - p3.then(function(x){ return Promise.resolve(x+1) }, assertUnreachable).chain( + var p1 = Promise.accept(5) + var p2 = Promise.accept(p1) + var p3 = Promise.accept(p2) + p3.then(function(x){ return Promise.accept(x+1) }, assertUnreachable).chain( function(x) { assertAsync(x === 6, "resolved/then/chain2") }, assertUnreachable ) @@ -246,10 +246,10 @@ function assertAsyncDone(iteration) { })(); (function() { - var p1 = Promise.resolve(5) - var p2 = Promise.resolve(p1) - var p3 = Promise.resolve(p2) - p3.then(function(x) { return Promise.resolve(x+1) }, assertUnreachable).then( + var p1 = Promise.accept(5) + var p2 = Promise.accept(p1) + var p3 = Promise.accept(p2) + p3.then(function(x) { return Promise.accept(x+1) }, assertUnreachable).then( function(x) { assertAsync(x === 6, "resolved/then/then2") }, assertUnreachable ) @@ -257,9 +257,9 @@ function assertAsyncDone(iteration) { })(); (function() { - var p1 = Promise.resolve(5) - var p2 = Promise.resolve(p1) - var p3 = Promise.resolve(p2) + var p1 = Promise.accept(5) + var p2 = Promise.accept(p1) + var p3 = Promise.accept(p2) p3.chain(function(x) { throw 6 }, assertUnreachable).chain( assertUnreachable, function(x) { assertAsync(x === 6, "resolved/chain-throw/chain") } @@ -268,9 +268,9 @@ function assertAsyncDone(iteration) { })(); (function() { - var p1 = Promise.resolve(5) - var p2 = Promise.resolve(p1) - var p3 = Promise.resolve(p2) + var p1 = Promise.accept(5) + var p2 = Promise.accept(p1) + var p3 = Promise.accept(p2) p3.chain(function(x) { throw 6 }, assertUnreachable).then( assertUnreachable, function(x) { assertAsync(x === 6, "resolved/chain-throw/then") } @@ -279,9 +279,9 @@ function assertAsyncDone(iteration) { })(); (function() { - var p1 = Promise.resolve(5) - var p2 = Promise.resolve(p1) - var p3 = Promise.resolve(p2) + var p1 = Promise.accept(5) + var p2 = Promise.accept(p1) + var p3 = Promise.accept(p2) p3.then(function(x) { throw 6 }, assertUnreachable).chain( assertUnreachable, function(x) { assertAsync(x === 6, "resolved/then-throw/chain") } @@ -290,9 +290,9 @@ function assertAsyncDone(iteration) { })(); (function() { - var p1 = Promise.resolve(5) - var p2 = Promise.resolve(p1) - var p3 = Promise.resolve(p2) + var p1 = Promise.accept(5) + var p2 = Promise.accept(p1) + var p3 = Promise.accept(p2) p3.then(function(x) { throw 6 }, assertUnreachable).then( assertUnreachable, function(x) { assertAsync(x === 6, "resolved/then-throw/then") } @@ -301,9 +301,9 @@ function assertAsyncDone(iteration) { })(); (function() { - var p1 = Promise.resolve(5) + var p1 = Promise.accept(5) var p2 = {then: function(onResolve, onReject) { onResolve(p1) }} - var p3 = Promise.resolve(p2) + var p3 = Promise.accept(p2) p3.chain( function(x) { assertAsync(x === p2, "resolved/thenable/chain") }, assertUnreachable @@ -312,9 +312,9 @@ function assertAsyncDone(iteration) { })(); (function() { - var p1 = Promise.resolve(5) + var p1 = Promise.accept(5) var p2 = {then: function(onResolve, onReject) { onResolve(p1) }} - var p3 = Promise.resolve(p2) + var p3 = Promise.accept(p2) p3.then( function(x) { assertAsync(x === 5, "resolved/thenable/then") }, assertUnreachable @@ -325,7 +325,7 @@ function assertAsyncDone(iteration) { (function() { var p1 = Promise.reject(5) var p2 = {then: function(onResolve, onReject) { onResolve(p1) }} - var p3 = Promise.resolve(p2) + var p3 = Promise.accept(p2) p3.chain( function(x) { assertAsync(x === p2, "rejected/thenable/chain") }, assertUnreachable @@ -336,7 +336,7 @@ function assertAsyncDone(iteration) { (function() { var p1 = Promise.reject(5) var p2 = {then: function(onResolve, onReject) { onResolve(p1) }} - var p3 = Promise.resolve(p2) + var p3 = Promise.accept(p2) p3.then( assertUnreachable, function(x) { assertAsync(x === 5, "rejected/thenable/then") } @@ -347,8 +347,8 @@ function assertAsyncDone(iteration) { (function() { var deferred = Promise.defer() var p1 = deferred.promise - var p2 = Promise.resolve(p1) - var p3 = Promise.resolve(p2) + var p2 = Promise.accept(p1) + var p3 = Promise.accept(p2) p3.chain( function(x) { assertAsync(x === p2, "chain/resolve") }, assertUnreachable @@ -360,8 +360,8 @@ function assertAsyncDone(iteration) { (function() { var deferred = Promise.defer() var p1 = deferred.promise - var p2 = Promise.resolve(p1) - var p3 = Promise.resolve(p2) + var p2 = Promise.accept(p1) + var p3 = Promise.accept(p2) p3.then( function(x) { assertAsync(x === 5, "then/resolve") }, assertUnreachable @@ -373,8 +373,8 @@ function assertAsyncDone(iteration) { (function() { var deferred = Promise.defer() var p1 = deferred.promise - var p2 = Promise.resolve(p1) - var p3 = Promise.resolve(p2) + var p2 = Promise.accept(p1) + var p3 = Promise.accept(p2) p3.chain( function(x) { assertAsync(x === p2, "chain/reject") }, assertUnreachable @@ -386,8 +386,8 @@ function assertAsyncDone(iteration) { (function() { var deferred = Promise.defer() var p1 = deferred.promise - var p2 = Promise.resolve(p1) - var p3 = Promise.resolve(p2) + var p2 = Promise.accept(p1) + var p3 = Promise.accept(p2) p3.then( assertUnreachable, function(x) { assertAsync(x === 5, "then/reject") } @@ -400,7 +400,7 @@ function assertAsyncDone(iteration) { var deferred = Promise.defer() var p1 = deferred.promise var p2 = {then: function(onResolve, onReject) { onResolve(p1) }} - var p3 = Promise.resolve(p2) + var p3 = Promise.accept(p2) p3.chain( function(x) { assertAsync(x === p2, "chain/resolve/thenable") }, assertUnreachable @@ -413,7 +413,7 @@ function assertAsyncDone(iteration) { var deferred = Promise.defer() var p1 = deferred.promise var p2 = {then: function(onResolve, onReject) { onResolve(p1) }} - var p3 = Promise.resolve(p2) + var p3 = Promise.accept(p2) p3.then( function(x) { assertAsync(x === 5, "then/resolve/thenable") }, assertUnreachable @@ -426,7 +426,7 @@ function assertAsyncDone(iteration) { var deferred = Promise.defer() var p1 = deferred.promise var p2 = {then: function(onResolve, onReject) { onResolve(p1) }} - var p3 = Promise.resolve(p2) + var p3 = Promise.accept(p2) p3.chain( function(x) { assertAsync(x === p2, "chain/reject/thenable") }, assertUnreachable @@ -439,7 +439,7 @@ function assertAsyncDone(iteration) { var deferred = Promise.defer() var p1 = deferred.promise var p2 = {then: function(onResolve, onReject) { onResolve(p1) }} - var p3 = Promise.resolve(p2) + var p3 = Promise.accept(p2) p3.then( assertUnreachable, function(x) { assertAsync(x === 5, "then/reject/thenable") } @@ -449,8 +449,8 @@ function assertAsyncDone(iteration) { })(); (function() { - var p1 = Promise.resolve(5) - var p2 = Promise.resolve(p1) + var p1 = Promise.accept(5) + var p2 = Promise.accept(p1) var deferred = Promise.defer() var p3 = deferred.promise p3.chain( @@ -462,8 +462,8 @@ function assertAsyncDone(iteration) { })(); (function() { - var p1 = Promise.resolve(5) - var p2 = Promise.resolve(p1) + var p1 = Promise.accept(5) + var p2 = Promise.accept(p1) var deferred = Promise.defer() var p3 = deferred.promise p3.then( @@ -475,8 +475,8 @@ function assertAsyncDone(iteration) { })(); (function() { - var p1 = Promise.resolve(5) - var p2 = Promise.resolve(p1) + var p1 = Promise.accept(5) + var p2 = Promise.accept(p1) var deferred = Promise.defer() var p3 = deferred.promise p3.chain( @@ -488,8 +488,8 @@ function assertAsyncDone(iteration) { })(); (function() { - var p1 = Promise.resolve(5) - var p2 = Promise.resolve(p1) + var p1 = Promise.accept(5) + var p2 = Promise.accept(p1) var deferred = Promise.defer() var p3 = deferred.promise p3.then( @@ -501,7 +501,7 @@ function assertAsyncDone(iteration) { })(); (function() { - var p1 = Promise.resolve(5) + var p1 = Promise.accept(5) var p2 = {then: function(onResolve, onReject) { onResolve(p1) }} var deferred = Promise.defer() var p3 = deferred.promise @@ -514,7 +514,7 @@ function assertAsyncDone(iteration) { })(); (function() { - var p1 = Promise.resolve(5) + var p1 = Promise.accept(5) var p2 = {then: function(onResolve, onReject) { onResolve(p1) }} var deferred = Promise.defer() var p3 = deferred.promise @@ -527,7 +527,7 @@ function assertAsyncDone(iteration) { })(); (function() { - var p1 = Promise.resolve(0) + var p1 = Promise.accept(0) var p2 = p1.chain(function(x) { return p2 }, assertUnreachable) p2.chain( assertUnreachable, @@ -537,7 +537,7 @@ function assertAsyncDone(iteration) { })(); (function() { - var p1 = Promise.resolve(0) + var p1 = Promise.accept(0) var p2 = p1.then(function(x) { return p2 }, assertUnreachable) p2.chain( assertUnreachable, @@ -612,7 +612,7 @@ function assertAsyncDone(iteration) { (function() { var deferred = Promise.defer() var p1 = deferred.promise - var p2 = Promise.resolve(2) + var p2 = Promise.accept(2) var p3 = Promise.defer().promise Promise.all([p1, p2, p3]).chain( assertUnreachable, @@ -646,9 +646,9 @@ function assertAsyncDone(iteration) { })(); (function() { - var p1 = Promise.resolve(1) - var p2 = Promise.resolve(2) - var p3 = Promise.resolve(3) + var p1 = Promise.accept(1) + var p2 = Promise.accept(2) + var p3 = Promise.accept(3) Promise.race([p1, p2, p3]).chain( function(x) { assertAsync(x === 1, "resolved/one") }, assertUnreachable @@ -657,9 +657,9 @@ function assertAsyncDone(iteration) { })(); (function() { - var p1 = Promise.resolve(1) - var p2 = Promise.resolve(2) - var p3 = Promise.resolve(3) + var p1 = Promise.accept(1) + var p2 = Promise.accept(2) + var p3 = Promise.accept(3) Promise.race([0, p1, p2, p3]).chain( function(x) { assertAsync(x === 0, "resolved-const/one") }, assertUnreachable @@ -694,7 +694,7 @@ function assertAsyncDone(iteration) { (function() { var deferred = Promise.defer() var p1 = deferred.promise - var p2 = Promise.resolve(2) + var p2 = Promise.accept(2) var p3 = Promise.defer().promise Promise.race([p1, p2, p3]).chain( function(x) { assertAsync(x === 2, "resolved/one") }, @@ -789,11 +789,11 @@ function assertAsyncDone(iteration) { assertTrue(log === "dncncnx6", "subclass/chain") log = "" - Promise.all([11, Promise.resolve(12), 13, MyPromise.resolve(14), 15, 16]) + Promise.all([11, Promise.accept(12), 13, MyPromise.accept(14), 15, 16]) assertTrue(log === "nx14cn", "subclass/all/arg") log = "" - MyPromise.all([21, Promise.resolve(22), 23, MyPromise.resolve(24), 25, 26]) + MyPromise.all([21, Promise.accept(22), 23, MyPromise.accept(24), 25, 26]) assertTrue(log === "nx24nnx21cnnx23cncnnx25cnnx26cn", "subclass/all/self") })(); diff --git a/test/webkit/fast/js/Promise-static-cast-expected.txt b/test/webkit/fast/js/Promise-static-cast-expected.txt index f0f8e04..2fc5069 100644 --- a/test/webkit/fast/js/Promise-static-cast-expected.txt +++ b/test/webkit/fast/js/Promise-static-cast-expected.txt @@ -1,4 +1,4 @@ -Test Promise.cast +Test Promise.resolve as cast On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". diff --git a/test/webkit/fast/js/Promise-static-cast.js b/test/webkit/fast/js/Promise-static-cast.js index 4804939..2c1eb2f 100644 --- a/test/webkit/fast/js/Promise-static-cast.js +++ b/test/webkit/fast/js/Promise-static-cast.js @@ -23,23 +23,23 @@ // Flags: --harmony 'use strict'; -description('Test Promise.cast'); +description('Test Promise.resolve as cast'); var result = undefined; var result2 = undefined; var resolve; var value = new Promise(function (r) { resolve = r;} ); -var promise = Promise.cast(value); +var promise = Promise.resolve(value); -// If [[IsPromise]] is true, Promise.cast simply returns argument. +// If [[IsPromise]] is true, Promise.resolve simply returns argument. shouldBe('promise', 'value'); promise.then(function(res) { result = res; shouldBeEqualToString('result', 'hello'); - return Promise.cast(42).then(function (res) { + return Promise.resolve(42).then(function (res) { result2 = res; shouldBe('result2', '42'); });