code: 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;
  }
docs: 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.