isInstance = (instance, safeOriginalProto) => {
  for (let obj = instance; isObject(obj) && (obj = getPrototypeOf(obj));) {
    if (obj === safeOriginalProto) {
      return true;
    }
  }
}
Unlike the built-in `instanceof` operator this doesn't call @@hasInstance which may be spoofed