docs: function deepEquals(obj1, obj2) {
      if (typeof obj1 !== typeof obj2) {
          return false;
      }
  
      // NaN check
      if (obj1 !== obj1) {
          return obj2 !== obj2;
      }
  
      // Non-object types will compare correctly with ===
      if (typeof obj1 !== "object") {
          return obj1 === obj2;
      }
  
      if (!_checkKeysFromFirstAreInSecond(obj1, obj2)) {
          return false;
      }
  
      if (!_checkKeysFromFirstAreInSecond(obj2, obj1)) {
          return false;
      }
  
      return true;
  }