code: function merge ( obj1, obj2 ) {
      var args = argsToArray( arguments ), res;
      if ( 0 === args.length ) return {};
      if ( 1 === args.length ) return obj1;
      if ( 2 === args.length ) return mergeTwo( obj1, obj2 );
  
      // More then two objects
      res  = mergeTwo( obj1, obj2 );
      args = args.slice( 2 );
  
      while ( args.length ) {
          res = mergeTwo( res, args[ 0 ] );
          args = args.slice( 1 );
      }
  
      return res;
  
      function mergeTwo ( obj1, obj2 ) {
          if ( !isDefined( obj1 ) ) return obj2;
          if ( !isDefined( obj2 ) ) return obj1;
  
          for (var key in obj2) {
              obj1[ key ] = obj2[ key ];
          }
  
          return obj1;
      }
  }
docs: Merges two or more objects.
  (Creates only shallow copy of objects);