Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(324)

Unified Diff: test/webkit/fast/js/Promise-coerce.js

Issue 1098663002: Promise assimilation fix. Base URL: git://github.com/v8/v8.git@master
Patch Set: Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: test/webkit/fast/js/Promise-coerce.js
diff --git a/test/webkit/fast/js/Promise-coerce.js b/test/webkit/fast/js/Promise-coerce.js
new file mode 100644
index 0000000000000000000000000000000000000000..a58ad6dd54281d69b093c5c2a92c30e1eccd0e83
--- /dev/null
+++ b/test/webkit/fast/js/Promise-coerce.js
@@ -0,0 +1,64 @@
+// Copyright 2015 the V8 project authors. All rights reserved.
yhirano 2015/04/17 08:01:35 I don't know what license header I should use. Can
arv (Not doing code reviews) 2015/04/17 14:32:06 test/webkit/ is for tests imported from webkit. Ne
yhirano 2015/04/30 05:05:16 Done.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony
+'use strict';
+description('Test Promise-like objects');
+
+var called1 = false;
+var called2 = false;
+var called3 = false;
+var called4 = false;
+var value1 = 0;
+var value2 = 0;
+var value3 = 0;
+var value4 = 0;
+Promise.resolve().then(function() {
+ var y = Promise.resolve(11);
+ y.then = function() {
+ called1 = true;
+ return Promise.prototype.then.apply(y, arguments);
+ };
+ return y;
+}).then(function(v) {
+ value1 = v;
+
+ var y = Promise.resolve(43);
+ return {
+ then: function() {
+ called2 = true;
+ return Promise.prototype.then.apply(y, arguments);
+ }
+ };
+}).then(function(v) {
+ value2 = v;
+
+ var y = Promise.resolve(91);
+ return Promise.resolve({
+ then: function() {
+ called3 = true;
+ return Promise.prototype.then.apply(y, arguments);
+ }
+ });
+}).then(function(v) {
+ value3 = v;
+
+ var y = Promise.resolve(98);
+ y.then = function() {
+ called4 = true;
+ return Promise.prototype.then.apply(y, arguments);
+ };
+ return new Promise(function(r) {r(y);});
+}).then(function(v) {
+ value4 = v;
+}).then(function(v) {
+ shouldBeTrue('called1');
+ shouldBeTrue('called2');
+ shouldBeTrue('called3');
+ shouldBeTrue('called4');
+ shouldBe('value1', '11');
+ shouldBe('value2', '43');
+ shouldBe('value3', '91');
+ shouldBe('value4', '98');
+}).then(finishJSTest, finishJSTest);

Powered by Google App Engine
This is Rietveld 408576698