| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 | 
							- /*!
 
-  * merge-descriptors
 
-  * Copyright(c) 2014 Jonathan Ong
 
-  * Copyright(c) 2015 Douglas Christopher Wilson
 
-  * MIT Licensed
 
-  */
 
- 'use strict'
 
- /**
 
-  * Module exports.
 
-  * @public
 
-  */
 
- module.exports = merge
 
- /**
 
-  * Module variables.
 
-  * @private
 
-  */
 
- var hasOwnProperty = Object.prototype.hasOwnProperty
 
- /**
 
-  * Merge the property descriptors of `src` into `dest`
 
-  *
 
-  * @param {object} dest Object to add descriptors to
 
-  * @param {object} src Object to clone descriptors from
 
-  * @param {boolean} [redefine=true] Redefine `dest` properties with `src` properties
 
-  * @returns {object} Reference to dest
 
-  * @public
 
-  */
 
- function merge (dest, src, redefine) {
 
-   if (!dest) {
 
-     throw new TypeError('argument dest is required')
 
-   }
 
-   if (!src) {
 
-     throw new TypeError('argument src is required')
 
-   }
 
-   if (redefine === undefined) {
 
-     // Default to true
 
-     redefine = true
 
-   }
 
-   Object.getOwnPropertyNames(src).forEach(function forEachOwnPropertyName (name) {
 
-     if (!redefine && hasOwnProperty.call(dest, name)) {
 
-       // Skip descriptor
 
-       return
 
-     }
 
-     // Copy descriptor
 
-     var descriptor = Object.getOwnPropertyDescriptor(src, name)
 
-     Object.defineProperty(dest, name, descriptor)
 
-   })
 
-   return dest
 
- }
 
 
  |