code: function objectEquals(object1, object2, traversedValues) {
    let keys1 = Object.keys(object1)
    let keys2 = Object.keys(object2)
    
    return structureEquals(
      object1,
      object2,
      keys1,
      keys2,
      (object, key) => object[key],
      traversedValues
    )
  }
docs: Compares the two provided plain objects.
  
  @param {Object<string, *>} object1 The 1st object to compare.
  @param {Object<string, *>} object2 The 2nd object to compare.
  @param {Map<Object, Object>} traversedValues A map of non-primitive values
  traversed in the first structure to their equal counterparts in the
  second structure.
  @return {boolean} {@code true} if the objects are equal.