1 | 'use strict';
|
2 | var $ = require('../internals/export');
|
3 | var apply = require('../internals/function-apply');
|
4 | var slice = require('../internals/array-slice');
|
5 | var newPromiseCapabilityModule = require('../internals/new-promise-capability');
|
6 | var aCallable = require('../internals/a-callable');
|
7 | var perform = require('../internals/perform');
|
8 |
|
9 |
|
10 |
|
11 | $({ target: 'Promise', stat: true, forced: true }, {
|
12 | 'try': function (callbackfn /* , ...args */) {
|
13 | var args = slice(arguments, 1);
|
14 | var promiseCapability = newPromiseCapabilityModule.f(this);
|
15 | var result = perform(function () {
|
16 | return apply(aCallable(callbackfn), undefined, args);
|
17 | });
|
18 | (result.error ? promiseCapability.reject : promiseCapability.resolve)(result.value);
|
19 | return promiseCapability.promise;
|
20 | }
|
21 | });
|