// Copyright 2014 Cubane Canada, Inc.  All rights reserved.
// See LICENSE for details.

/*---
info: |
    Promise catches exceptions thrown from executor and turns
    them into reject
es6id: S25.4.3.1_A4.1_T1
author: Sam Mikes
description: new Promise(function () { throw }) should reject
flags: [async]
---*/

var errorObject = {},
    p = new Promise(function () {
        throw errorObject;
    });

p.then(function() {
    $ERROR("Unexpected fulfill -- promise should reject.");
}, function (err) {
    if (err !== errorObject) {
        $ERROR("Expected promise rejection reason to be thrown errorObject, actually " + err);
    }
}).then($DONE, $DONE);

