summaryrefslogtreecommitdiff
path: root/deps/npm/node_modules/es6-promise/dist/es6-promise.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/npm/node_modules/es6-promise/dist/es6-promise.js')
-rw-r--r--deps/npm/node_modules/es6-promise/dist/es6-promise.js71
1 files changed, 31 insertions, 40 deletions
diff --git a/deps/npm/node_modules/es6-promise/dist/es6-promise.js b/deps/npm/node_modules/es6-promise/dist/es6-promise.js
index 02a78bddb8..780e6a112a 100644
--- a/deps/npm/node_modules/es6-promise/dist/es6-promise.js
+++ b/deps/npm/node_modules/es6-promise/dist/es6-promise.js
@@ -3,7 +3,7 @@
* @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)
* @license Licensed under MIT license
* See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE
- * @version v4.2.6+9869a4bc
+ * @version v4.2.8+1e68dce6
*/
(function (global, factory) {
@@ -234,8 +234,6 @@ var PENDING = void 0;
var FULFILLED = 1;
var REJECTED = 2;
-var TRY_CATCH_ERROR = { error: null };
-
function selfFulfillment() {
return new TypeError("You cannot resolve a promise with itself");
}
@@ -244,15 +242,6 @@ function cannotReturnOwn() {
return new TypeError('A promises callback cannot return that same promise.');
}
-function getThen(promise) {
- try {
- return promise.then;
- } catch (error) {
- TRY_CATCH_ERROR.error = error;
- return TRY_CATCH_ERROR;
- }
-}
-
function tryThen(then$$1, value, fulfillmentHandler, rejectionHandler) {
try {
then$$1.call(value, fulfillmentHandler, rejectionHandler);
@@ -308,10 +297,7 @@ function handleMaybeThenable(promise, maybeThenable, then$$1) {
if (maybeThenable.constructor === promise.constructor && then$$1 === then && maybeThenable.constructor.resolve === resolve$1) {
handleOwnThenable(promise, maybeThenable);
} else {
- if (then$$1 === TRY_CATCH_ERROR) {
- reject(promise, TRY_CATCH_ERROR.error);
- TRY_CATCH_ERROR.error = null;
- } else if (then$$1 === undefined) {
+ if (then$$1 === undefined) {
fulfill(promise, maybeThenable);
} else if (isFunction(then$$1)) {
handleForeignThenable(promise, maybeThenable, then$$1);
@@ -325,7 +311,14 @@ function resolve(promise, value) {
if (promise === value) {
reject(promise, selfFulfillment());
} else if (objectOrFunction(value)) {
- handleMaybeThenable(promise, value, getThen(value));
+ var then$$1 = void 0;
+ try {
+ then$$1 = value.then;
+ } catch (error) {
+ reject(promise, error);
+ return;
+ }
+ handleMaybeThenable(promise, value, then$$1);
} else {
fulfill(promise, value);
}
@@ -404,31 +397,18 @@ function publish(promise) {
promise._subscribers.length = 0;
}
-function tryCatch(callback, detail) {
- try {
- return callback(detail);
- } catch (e) {
- TRY_CATCH_ERROR.error = e;
- return TRY_CATCH_ERROR;
- }
-}
-
function invokeCallback(settled, promise, callback, detail) {
var hasCallback = isFunction(callback),
value = void 0,
error = void 0,
- succeeded = void 0,
- failed = void 0;
+ succeeded = true;
if (hasCallback) {
- value = tryCatch(callback, detail);
-
- if (value === TRY_CATCH_ERROR) {
- failed = true;
- error = value.error;
- value.error = null;
- } else {
- succeeded = true;
+ try {
+ value = callback(detail);
+ } catch (e) {
+ succeeded = false;
+ error = e;
}
if (promise === value) {
@@ -437,14 +417,13 @@ function invokeCallback(settled, promise, callback, detail) {
}
} else {
value = detail;
- succeeded = true;
}
if (promise._state !== PENDING) {
// noop
} else if (hasCallback && succeeded) {
resolve(promise, value);
- } else if (failed) {
+ } else if (succeeded === false) {
reject(promise, error);
} else if (settled === FULFILLED) {
fulfill(promise, value);
@@ -522,7 +501,15 @@ var Enumerator = function () {
if (resolve$$1 === resolve$1) {
- var _then = getThen(entry);
+ var _then = void 0;
+ var error = void 0;
+ var didError = false;
+ try {
+ _then = entry.then;
+ } catch (e) {
+ didError = true;
+ error = e;
+ }
if (_then === then && entry._state !== PENDING) {
this._settledAt(entry._state, i, entry._result);
@@ -531,7 +518,11 @@ var Enumerator = function () {
this._result[i] = entry;
} else if (c === Promise$1) {
var promise = new c(noop);
- handleMaybeThenable(promise, entry, _then);
+ if (didError) {
+ reject(promise, error);
+ } else {
+ handleMaybeThenable(promise, entry, _then);
+ }
this._willSettleAt(promise, i);
} else {
this._willSettleAt(new c(function (resolve$$1) {