Index: test/webkit/fast/js/Promise-then-callback-receiver.js |
diff --git a/test/mjsunit/regress/regress-2989.js b/test/webkit/fast/js/Promise-then-callback-receiver.js |
similarity index 65% |
copy from test/mjsunit/regress/regress-2989.js |
copy to test/webkit/fast/js/Promise-then-callback-receiver.js |
index 49c4a1cb03ba45b8938e08ab024f0b8d13a66ed6..e34bdaeb5b39e4ad242beb98612ab6a804383b9a 100644 |
--- a/test/mjsunit/regress/regress-2989.js |
+++ b/test/webkit/fast/js/Promise-then-callback-receiver.js |
@@ -1,4 +1,4 @@ |
-// Copyright 2013 the V8 project authors. All rights reserved. |
+// Copyright 2014 the V8 project authors. All rights reserved. |
// Copyright (C) 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. |
// |
// Redistribution and use in source and binary forms, with or without |
@@ -21,15 +21,27 @@ |
// (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: --allow-natives-syntax |
+// Flags: --harmony |
+'use strict'; |
+description('Test whether then callback receivers are correctly set.'); |
-(function ArgumentsObjectChange() { |
- function f(x) { |
- x = 42; |
- return f.arguments[0]; |
- } |
+var thisInOnFulfilled; |
+var thisInOnRejected; |
- f(0); |
- %OptimizeFunctionOnNextCall(f); |
- assertEquals(42, f(0)); |
-})(); |
+Promise.resolve().then(function () { |
+ return Promise.resolve(42).then(function () { |
+ testPassed('fulfilled'); |
+ thisInOnFulfilled = this; |
+ shouldBe('thisInOnFulfilled', 'undefined'); |
+ }, function () { |
+ testFailed('rejected'); |
+ }); |
+}).then(function () { |
+ return Promise.reject(42).then(function () { |
+ testFailed('fulfilled'); |
+ }, function () { |
+ testPassed('rejected'); |
+ thisInOnRejected = this; |
+ shouldBe('thisInOnRejected', 'undefined'); |
+ }); |
+}).then(finishJSTest, finishJSTest); |