es.aggregate-error.js 1.2 KB

12345678910111213141516171819202122232425262728293031
  1. 'use strict';
  2. var $ = require('../internals/export');
  3. var getPrototypeOf = require('../internals/object-get-prototype-of');
  4. var setPrototypeOf = require('../internals/object-set-prototype-of');
  5. var create = require('../internals/object-create');
  6. var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
  7. var createPropertyDescriptor = require('../internals/create-property-descriptor');
  8. var iterate = require('../internals/iterate');
  9. var $AggregateError = function AggregateError(errors, message) {
  10. var that = this;
  11. if (!(that instanceof $AggregateError)) return new $AggregateError(errors, message);
  12. if (setPrototypeOf) {
  13. that = setPrototypeOf(new Error(undefined), getPrototypeOf(that));
  14. }
  15. if (message !== undefined) createNonEnumerableProperty(that, 'message', String(message));
  16. var errorsArray = [];
  17. iterate(errors, errorsArray.push, { that: errorsArray });
  18. createNonEnumerableProperty(that, 'errors', errorsArray);
  19. return that;
  20. };
  21. $AggregateError.prototype = create(Error.prototype, {
  22. constructor: createPropertyDescriptor(5, $AggregateError),
  23. message: createPropertyDescriptor(5, ''),
  24. name: createPropertyDescriptor(5, 'AggregateError')
  25. });
  26. $({ global: true }, {
  27. AggregateError: $AggregateError
  28. });