docs: function isObject(x) {
    // This check is true on all objects, but also on all objects created by custom constructors (which we don't want).
    // Note that in ES2015 and later, objects created by using `new` on a `class` will return false directly right here.
    if (toString.call(x) !== '[object Object]') {
      return false;
    }
  
    // The Object prototype itself passes, along with objects created without a prototype from Object.create(null);
    const proto = Object.getPrototypeOf(x);
    if (proto === null) {
      return true;
    }
  
    // Check to see whether the constructor of the tested object is the Object constructor,
    const ctor = Object.prototype.hasOwnProperty.call(proto, 'constructor') && proto.constructor;
    return typeof ctor === 'function' && ctor === Object;
  }