flotr2.amd.js
function(src, dest){
    var i, v, result = dest || {};

    for (i in src) {
      v = src[i];
      if (v && typeof(v) === 'object') {
        if (v.constructor === Array) {
          result[i] = this._.clone(v);
        } else if (v.constructor !== RegExp && !this._.isElement(v)) {
          result[i] = Flotr.merge(v, (dest ? dest[i] : undefined));
        } else {
          result[i] = v;
        }
      } else {
        result[i] = v;
      }
    }

    return result;
  }
function(src, dest){
    var i, v, result = dest || {};

    for (i in src) {
      v = src[i];
      if (v && typeof(v) === 'object') {
        if (v.constructor === Array) {
          result[i] = this._.clone(v);
        } else if (v.constructor !== RegExp && !this._.isElement(v)) {
          result[i] = Flotr.merge(v, (dest ? dest[i] : undefined));
        } else {
          result[i] = v;
        }
      } else {
        result[i] = v;
      }
    }

    return result;
  }
function ( src , dest ) { var i , v , result = dest || { } ; for ( i in src ) { v = src [ i ] ; if ( v && typeof ( v ) === 'object' ) { if ( v . constructor === Array ) { result [ i ] = this . _ . clone ( v ) ; } else if ( v . constructor !== RegExp && ! this . _ . isElement ( v ) ) { result [ i ] = Flotr . merge ( v , ( dest ? dest [ i ] : undefined ) ) ; } else { result [ i ] = v ; } } else { result [ i ] = v ; } } return result ; }
Recursively merges two objects.
@param {Object} src - source object (likely the object with the least properties)
@param {Object} dest - destination object (optional, object with the most properties)
@return {Object} recursively merged Object
@TODO See if we can't remove this.
Recursively merges two objects .