function merge (a, b, noforce) {
  if (a && b && a === Object(a) && b === Object(b)) {
    for (var key in b) {
      if (has(b, key)) {
        if (noforce) {
          if (!a.hasOwnProperty(key)) a[key] = b[key];
        } else {
          a[key] = b[key];
        }
      }
    }
  }
  return a;
}
Merge object b with object a.

var a = { foo: 'bar' }
  , b = { foo: 'quux', bar: 'baz' };

merge(a, b);
// => { foo: 'quux', bar: 'baz' }

merge(a, b, true);
// => { foo: 'bar', bar: 'baz' }

@param {Object} a
@param {Object} b
@param {Boolean} [noforce] Optionally, don't overwrite any existing keys in a found in b
@return {Object}