Test Promise with Promise A+ tests 2.3.2.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".

PASS 2.3.2: If `x` is a promise, adopt its state 2.3.2.1: If `x` is pending, `promise` must remain pending until `x` is fulfilled or rejected. via return from a fulfilled promise
PASS 2.3.2: If `x` is a promise, adopt its state 2.3.2.1: If `x` is pending, `promise` must remain pending until `x` is fulfilled or rejected. via return from a rejected promise
PASS 2.3.2: If `x` is a promise, adopt its state 2.3.2.2: If/when `x` is fulfilled, fulfill `promise` with the same value. `x` is already-fulfilled via return from a fulfilled promise
PASS 2.3.2: If `x` is a promise, adopt its state 2.3.2.2: If/when `x` is fulfilled, fulfill `promise` with the same value. `x` is already-fulfilled via return from a rejected promise
PASS 2.3.2: If `x` is a promise, adopt its state 2.3.2.2: If/when `x` is fulfilled, fulfill `promise` with the same value. `x` is eventually-fulfilled via return from a fulfilled promise
PASS 2.3.2: If `x` is a promise, adopt its state 2.3.2.2: If/when `x` is fulfilled, fulfill `promise` with the same value. `x` is eventually-fulfilled via return from a rejected promise
PASS 2.3.2: If `x` is a promise, adopt its state 2.3.2.3: If/when `x` is rejected, reject `promise` with the same reason. `x` is already-rejected via return from a fulfilled promise
PASS 2.3.2: If `x` is a promise, adopt its state 2.3.2.3: If/when `x` is rejected, reject `promise` with the same reason. `x` is already-rejected via return from a rejected promise
PASS 2.3.2: If `x` is a promise, adopt its state 2.3.2.3: If/when `x` is rejected, reject `promise` with the same reason. `x` is eventually-rejected via return from a fulfilled promise
PASS 2.3.2: If `x` is a promise, adopt its state 2.3.2.3: If/when `x` is rejected, reject `promise` with the same reason. `x` is eventually-rejected via return from a rejected promise
PASS successfullyParsed is true

TEST COMPLETE

