var error1 = new TypeError('Error 1');
var error2 = new TypeError('Error 2');
var aggregate = new AggregateError([error1, error2], 'Collected errors');
log(aggregate.errors[0] === error1); // => true
log(aggregate.errors[1] === error2); // => true

var cause = new TypeError('Something wrong');
var error = new TypeError('Here explained what`s wrong', {
  cause: cause
});
log(error.cause === cause); // => true

log(Error.prototype.toString.call({
  message: 1,
  name: 2
}) === '2: 1'); // => true