123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- 'use strict';
- var $ = require('../internals/export');
- var global = require('../internals/global');
- var isPrototypeOf = require('../internals/object-is-prototype-of');
- var getPrototypeOf = require('../internals/object-get-prototype-of');
- var setPrototypeOf = require('../internals/object-set-prototype-of');
- var copyConstructorProperties = require('../internals/copy-constructor-properties');
- var create = require('../internals/object-create');
- var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
- var createPropertyDescriptor = require('../internals/create-property-descriptor');
- var clearErrorStack = require('../internals/clear-error-stack');
- var installErrorCause = require('../internals/install-error-cause');
- var iterate = require('../internals/iterate');
- var normalizeStringArgument = require('../internals/normalize-string-argument');
- var wellKnownSymbol = require('../internals/well-known-symbol');
- var ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');
- var TO_STRING_TAG = wellKnownSymbol('toStringTag');
- var Error = global.Error;
- var push = [].push;
- var $AggregateError = function AggregateError(errors, message /* , options */) {
- var options = arguments.length > 2 ? arguments[2] : undefined;
- var isInstance = isPrototypeOf(AggregateErrorPrototype, this);
- var that;
- if (setPrototypeOf) {
- that = setPrototypeOf(new Error(), isInstance ? getPrototypeOf(this) : AggregateErrorPrototype);
- } else {
- that = isInstance ? this : create(AggregateErrorPrototype);
- createNonEnumerableProperty(that, TO_STRING_TAG, 'Error');
- }
- if (message !== undefined) createNonEnumerableProperty(that, 'message', normalizeStringArgument(message));
- if (ERROR_STACK_INSTALLABLE) createNonEnumerableProperty(that, 'stack', clearErrorStack(that.stack, 1));
- installErrorCause(that, options);
- var errorsArray = [];
- iterate(errors, push, { that: errorsArray });
- createNonEnumerableProperty(that, 'errors', errorsArray);
- return that;
- };
- if (setPrototypeOf) setPrototypeOf($AggregateError, Error);
- else copyConstructorProperties($AggregateError, Error, { name: true });
- var AggregateErrorPrototype = $AggregateError.prototype = create(Error.prototype, {
- constructor: createPropertyDescriptor(1, $AggregateError),
- message: createPropertyDescriptor(1, ''),
- name: createPropertyDescriptor(1, 'AggregateError')
- });
- // `AggregateError` constructor
- // https://tc39.es/ecma262/#sec-aggregate-error-constructor
- $({ global: true }, {
- AggregateError: $AggregateError
- });
|