function defaultDiffer(prevProp: mixed, nextProp: mixed): boolean {
  if (typeof nextProp !== 'object' || nextProp === null) {
    // Scalars have already been checked for equality
    return true;
  } else {
    // For objects and arrays, the default diffing algorithm is a deep compare
    return deepDiffer(prevProp, nextProp, deepDifferOptions);
  }
}
Create a payload that contains all the updates between two sets of props.

These helpers are all encapsulated into a single module, because they use
mutation as a performance optimization which leads to subtle shared
dependencies between the code paths. To avoid this mutable state leaking
across modules, I've kept them isolated to this module.