src/util.js
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;
}
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;
}
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 ; }
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.
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 .