code: function(dest, source) {
              lang.eachProp(source, function (value, prop) {
                  if (typeof value === 'object' && value &&
                      !lang.isArray(value) && !lang.isFunction(value) &&
                      !(value instanceof RegExp)) {
  
                      if (!dest[prop]) {
                          dest[prop] = {};
                      }
                      lang.deepMix(dest[prop], value);
                  } else {
                      dest[prop] = value;
                  }
              });
              return dest;
          }
docs: Does a deep mix of source into dest, where source values override
  dest values if a winner is needed.
  @param  {Object} dest destination object that receives the mixed
  values.
  @param  {Object} source source object contributing properties to mix
  in.
  @return {[Object]} returns dest object with the modification.