lib/utils.js
function copyOwnProperties(src, dst, overwrite) {
  var names = Object.getOwnPropertyNames(src);
  var i, l, name;
  for (i = 0, l = names.length; i < l; i++) {
    name = names[i];
    if (!dst.hasOwnProperty(name) || overwrite) {
      var descriptor = Object.getOwnPropertyDescriptor(src, name);
      Object.defineProperty(dst, name, descriptor);
    }
  }
  return dst;
}
function copyOwnProperties(src, dst, overwrite) {
  var names = Object.getOwnPropertyNames(src);
  var i, l, name;
  for (i = 0, l = names.length; i < l; i++) {
    name = names[i];
    if (!dst.hasOwnProperty(name) || overwrite) {
      var descriptor = Object.getOwnPropertyDescriptor(src, name);
      Object.defineProperty(dst, name, descriptor);
    }
  }
  return dst;
}
function copyOwnProperties ( src , dst , overwrite ) { var names = Object . getOwnPropertyNames ( src ) ; var i , l , name ; for ( i = 0 , l = names . length ; i < l ; i ++ ) { name = names [ i ] ; if ( ! dst . hasOwnProperty ( name ) || overwrite ) { var descriptor = Object . getOwnPropertyDescriptor ( src , name ) ; Object . defineProperty ( dst , name , descriptor ) ; } } return dst ; }
Copy properties from one object to another.

@param src {Object} The source object.
@param dst {Object} The destination object.
@param overwrite {Boolean} Whether to overwrite existing destination
properties. Defaults to false.
Copy properties from one object to another .