message: Don't discard previous description and context in rethrow()
diff: export function rethrow(error, description, context) {
  // allow throwing from inside promise `catch` functions, see https://stackoverflow.com/a/30741722
  setTimeout(() => {
  - error.description = description;
  - error.context = context;
  + if (description) error.description = description;
  + if (context) error.context = context;
  throw error;
  }, 0);
  }
  