diff --git a/test/built-ins/Promise/prototype/then/prfm-pending-fulfulled.js b/test/built-ins/Promise/prototype/then/prfm-pending-fulfulled.js
new file mode 100644
index 0000000000000000000000000000000000000000..b0d63c056e478de4f367bc4c0720d7d2f713388e
--- /dev/null
+++ b/test/built-ins/Promise/prototype/then/prfm-pending-fulfulled.js
@@ -0,0 +1,35 @@
+// Copyright (C) 2016 the V8 project authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+es6id: 25.4.5.3
+description: PerformPromiseThen on a pending promise that is later fulfilled
+info: >
+    7. Return PerformPromiseThen(promise, onFulfilled, onRejected,
+       resultCapability).
+
+    25.4.5.3.1 PerformPromiseThen
+
+    [...]
+    7. If the value of promise's [[PromiseState]] internal slot is "pending",
+       a. Append fulfillReaction as the last element of the List that is the
+          value of promise's [[PromiseFulfillReactions]] internal slot.
+       b. Append rejectReaction as the last element of the List that is the
+          value of promise's [[PromiseRejectReactions]] internal slot.
+    [...]
+---*/
+
+var value = {};
+var resolve;
+var p = new Promise(function(_resolve) { resolve = _resolve; });
+
+p.then(function(x) {
+    if (x !== value) {
+      $DONE('The `onFulfilled` handler should be invoked with the promise result.');
+      return;
+    }
+    $DONE();
+  }, function() {
+    $DONE('The `onRejected` handler should not be invoked.');
+  });
+
+resolve(value);
diff --git a/test/built-ins/Promise/prototype/then/prfm-pending-rejected.js b/test/built-ins/Promise/prototype/then/prfm-pending-rejected.js
new file mode 100644
index 0000000000000000000000000000000000000000..23afce4b32d923dbaede319f2ba0e4097a8147af
--- /dev/null
+++ b/test/built-ins/Promise/prototype/then/prfm-pending-rejected.js
@@ -0,0 +1,35 @@
+// Copyright (C) 2016 the V8 project authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+es6id: 25.4.5.3
+description: PerformPromiseThen on a pending promise that is later rejected
+info: >
+    7. Return PerformPromiseThen(promise, onFulfilled, onRejected,
+       resultCapability).
+
+    25.4.5.3.1 PerformPromiseThen
+
+    [...]
+    7. If the value of promise's [[PromiseState]] internal slot is "pending",
+       a. Append fulfillReaction as the last element of the List that is the
+          value of promise's [[PromiseFulfillReactions]] internal slot.
+       b. Append rejectReaction as the last element of the List that is the
+          value of promise's [[PromiseRejectReactions]] internal slot.
+    [...]
+---*/
+
+var value = {};
+var reject;
+var p = new Promise(function(_, _reject) { reject = _reject; });
+
+p.then(function() {
+    $DONE('The `onFulfilled` handler should not be invoked.');
+  }, function(x) {
+    if (x !== value) {
+      $DONE('The `onRejected` handler should be invoked with the promise result.');
+      return;
+    }
+    $DONE();
+  });
+
+reject(value);