whole_func_string: function _smash(a, b) {
      this.forEach(b, (val, key) => {
          if (this.isSmashable(a[key], b[key])) // find a way to move isSmashable internal
              this._smash(a[key], b[key]);
          else
              a[key] = this.deepCopy(b[key]);
      });
      return a;
  }
func_code_string: function _smash(a, b) {
      this.forEach(b, (val, key) => {
          if (this.isSmashable(a[key], b[key])) // find a way to move isSmashable internal
              this._smash(a[key], b[key]);
          else
              a[key] = this.deepCopy(b[key]);
      });
      return a;
  }
func_documentation_string: Internal smash call.
  Performance abstraction to bypass all the argument shenanigans,
  as we know we will only be smashing two items at a time internally.
  
  @param {any} a The item on which to smash the second.
  @param {any} b The item to smash onto the first.
  @returns {any} The reference to the first item.