@description
Determines if a reference is an `Error`.
Loosely based on https://www.npmjs.com/package/iserror

@param {*} value Reference to check.
@returns {boolean} True if `value` is an `Error`.
function isError(value) {
  var tag = toString.call(value);
  switch (tag) {
    case '[object Error]': return true;
    case '[object Exception]': return true;
    case '[object DOMException]': return true;
    default: return value instanceof Error;
  }
}