| Test Promise with Promise A+ tests 2.2.7. |
| |
| On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". |
| |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` is a promise |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.1: If either `onFulfilled` or `onRejected` returns a value `x`, run the Promise Resolution Procedure `[[Resolve]](promise2, x)` see separate 3.3 tests |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is `undefined` already-fulfilled |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is `undefined` immediately-fulfilled |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is `undefined` eventually-fulfilled |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is `undefined` already-rejected |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is `undefined` immediately-rejected |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is `undefined` eventually-rejected |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is `null` already-fulfilled |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is `null` immediately-fulfilled |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is `null` eventually-fulfilled |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is `null` already-rejected |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is `null` immediately-rejected |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is `null` eventually-rejected |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is `false` already-fulfilled |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is `false` immediately-fulfilled |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is `false` eventually-fulfilled |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is `false` already-rejected |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is `false` immediately-rejected |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is `false` eventually-rejected |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is `0` already-fulfilled |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is `0` immediately-fulfilled |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is `0` eventually-fulfilled |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is `0` already-rejected |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is `0` immediately-rejected |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is `0` eventually-rejected |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is an error already-fulfilled |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is an error immediately-fulfilled |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is an error eventually-fulfilled |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is an error already-rejected |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is an error immediately-rejected |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is an error eventually-rejected |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is an error without a stack already-fulfilled |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is an error without a stack immediately-fulfilled |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is an error without a stack eventually-fulfilled |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is an error without a stack already-rejected |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is an error without a stack immediately-rejected |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is an error without a stack eventually-rejected |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is a date already-fulfilled |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is a date immediately-fulfilled |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is a date eventually-fulfilled |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is a date already-rejected |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is a date immediately-rejected |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is a date eventually-rejected |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is an object already-fulfilled |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is an object immediately-fulfilled |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is an object eventually-fulfilled |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is an object already-rejected |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is an object immediately-rejected |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is an object eventually-rejected |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is an always-pending thenable already-fulfilled |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is an always-pending thenable immediately-fulfilled |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is an always-pending thenable eventually-fulfilled |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is an always-pending thenable already-rejected |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is an always-pending thenable immediately-rejected |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is an always-pending thenable eventually-rejected |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is a fulfilled promise already-fulfilled |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is a fulfilled promise immediately-fulfilled |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is a fulfilled promise eventually-fulfilled |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is a fulfilled promise already-rejected |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is a fulfilled promise immediately-rejected |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is a fulfilled promise eventually-rejected |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is a rejected promise already-fulfilled |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is a rejected promise immediately-fulfilled |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is a rejected promise eventually-fulfilled |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is a rejected promise already-rejected |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is a rejected promise immediately-rejected |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is a rejected promise eventually-rejected |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.3: If `onFulfilled` is not a function and `promise1` is fulfilled, `promise2` must be fulfilled with the same value. `onFulfilled` is `undefined` already-fulfilled |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.3: If `onFulfilled` is not a function and `promise1` is fulfilled, `promise2` must be fulfilled with the same value. `onFulfilled` is `undefined` immediately-fulfilled |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.3: If `onFulfilled` is not a function and `promise1` is fulfilled, `promise2` must be fulfilled with the same value. `onFulfilled` is `undefined` eventually-fulfilled |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.3: If `onFulfilled` is not a function and `promise1` is fulfilled, `promise2` must be fulfilled with the same value. `onFulfilled` is `null` already-fulfilled |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.3: If `onFulfilled` is not a function and `promise1` is fulfilled, `promise2` must be fulfilled with the same value. `onFulfilled` is `null` immediately-fulfilled |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.3: If `onFulfilled` is not a function and `promise1` is fulfilled, `promise2` must be fulfilled with the same value. `onFulfilled` is `null` eventually-fulfilled |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.3: If `onFulfilled` is not a function and `promise1` is fulfilled, `promise2` must be fulfilled with the same value. `onFulfilled` is `false` already-fulfilled |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.3: If `onFulfilled` is not a function and `promise1` is fulfilled, `promise2` must be fulfilled with the same value. `onFulfilled` is `false` immediately-fulfilled |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.3: If `onFulfilled` is not a function and `promise1` is fulfilled, `promise2` must be fulfilled with the same value. `onFulfilled` is `false` eventually-fulfilled |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.3: If `onFulfilled` is not a function and `promise1` is fulfilled, `promise2` must be fulfilled with the same value. `onFulfilled` is `5` already-fulfilled |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.3: If `onFulfilled` is not a function and `promise1` is fulfilled, `promise2` must be fulfilled with the same value. `onFulfilled` is `5` immediately-fulfilled |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.3: If `onFulfilled` is not a function and `promise1` is fulfilled, `promise2` must be fulfilled with the same value. `onFulfilled` is `5` eventually-fulfilled |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.3: If `onFulfilled` is not a function and `promise1` is fulfilled, `promise2` must be fulfilled with the same value. `onFulfilled` is an object already-fulfilled |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.3: If `onFulfilled` is not a function and `promise1` is fulfilled, `promise2` must be fulfilled with the same value. `onFulfilled` is an object immediately-fulfilled |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.3: If `onFulfilled` is not a function and `promise1` is fulfilled, `promise2` must be fulfilled with the same value. `onFulfilled` is an object eventually-fulfilled |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.3: If `onFulfilled` is not a function and `promise1` is fulfilled, `promise2` must be fulfilled with the same value. `onFulfilled` is an array containing a function already-fulfilled |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.3: If `onFulfilled` is not a function and `promise1` is fulfilled, `promise2` must be fulfilled with the same value. `onFulfilled` is an array containing a function immediately-fulfilled |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.3: If `onFulfilled` is not a function and `promise1` is fulfilled, `promise2` must be fulfilled with the same value. `onFulfilled` is an array containing a function eventually-fulfilled |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.4: If `onRejected` is not a function and `promise1` is rejected, `promise2` must be rejected with the same reason. `onRejected` is `undefined` already-rejected |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.4: If `onRejected` is not a function and `promise1` is rejected, `promise2` must be rejected with the same reason. `onRejected` is `undefined` immediately-rejected |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.4: If `onRejected` is not a function and `promise1` is rejected, `promise2` must be rejected with the same reason. `onRejected` is `undefined` eventually-rejected |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.4: If `onRejected` is not a function and `promise1` is rejected, `promise2` must be rejected with the same reason. `onRejected` is `null` already-rejected |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.4: If `onRejected` is not a function and `promise1` is rejected, `promise2` must be rejected with the same reason. `onRejected` is `null` immediately-rejected |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.4: If `onRejected` is not a function and `promise1` is rejected, `promise2` must be rejected with the same reason. `onRejected` is `null` eventually-rejected |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.4: If `onRejected` is not a function and `promise1` is rejected, `promise2` must be rejected with the same reason. `onRejected` is `false` already-rejected |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.4: If `onRejected` is not a function and `promise1` is rejected, `promise2` must be rejected with the same reason. `onRejected` is `false` immediately-rejected |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.4: If `onRejected` is not a function and `promise1` is rejected, `promise2` must be rejected with the same reason. `onRejected` is `false` eventually-rejected |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.4: If `onRejected` is not a function and `promise1` is rejected, `promise2` must be rejected with the same reason. `onRejected` is `5` already-rejected |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.4: If `onRejected` is not a function and `promise1` is rejected, `promise2` must be rejected with the same reason. `onRejected` is `5` immediately-rejected |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.4: If `onRejected` is not a function and `promise1` is rejected, `promise2` must be rejected with the same reason. `onRejected` is `5` eventually-rejected |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.4: If `onRejected` is not a function and `promise1` is rejected, `promise2` must be rejected with the same reason. `onRejected` is an object already-rejected |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.4: If `onRejected` is not a function and `promise1` is rejected, `promise2` must be rejected with the same reason. `onRejected` is an object immediately-rejected |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.4: If `onRejected` is not a function and `promise1` is rejected, `promise2` must be rejected with the same reason. `onRejected` is an object eventually-rejected |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.4: If `onRejected` is not a function and `promise1` is rejected, `promise2` must be rejected with the same reason. `onRejected` is an array containing a function already-rejected |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.4: If `onRejected` is not a function and `promise1` is rejected, `promise2` must be rejected with the same reason. `onRejected` is an array containing a function immediately-rejected |
| PASS 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` 2.2.7.4: If `onRejected` is not a function and `promise1` is rejected, `promise2` must be rejected with the same reason. `onRejected` is an array containing a function eventually-rejected |
| PASS successfullyParsed is true |
| |
| TEST COMPLETE |
| |