| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 | 
							- /*!
 
-  * copy-descriptor <https://github.com/jonschlinkert/copy-descriptor>
 
-  *
 
-  * Copyright (c) 2015, Jon Schlinkert.
 
-  * Licensed under the MIT License.
 
-  */
 
- 'use strict';
 
- /**
 
-  * Copy a descriptor from one object to another.
 
-  *
 
-  * ```js
 
-  * function App() {
 
-  *   this.cache = {};
 
-  * }
 
-  * App.prototype.set = function(key, val) {
 
-  *   this.cache[key] = val;
 
-  *   return this;
 
-  * };
 
-  * Object.defineProperty(App.prototype, 'count', {
 
-  *   get: function() {
 
-  *     return Object.keys(this.cache).length;
 
-  *   }
 
-  * });
 
-  *
 
-  * copy(App.prototype, 'count', 'len');
 
-  *
 
-  * // create an instance
 
-  * var app = new App();
 
-  *
 
-  * app.set('a', true);
 
-  * app.set('b', true);
 
-  * app.set('c', true);
 
-  *
 
-  * console.log(app.count);
 
-  * //=> 3
 
-  * console.log(app.len);
 
-  * //=> 3
 
-  * ```
 
-  * @name copy
 
-  * @param {Object} `receiver` The target object
 
-  * @param {Object} `provider` The provider object
 
-  * @param {String} `from` The key to copy on provider.
 
-  * @param {String} `to` Optionally specify a new key name to use.
 
-  * @return {Object}
 
-  * @api public
 
-  */
 
- module.exports = function copyDescriptor(receiver, provider, from, to) {
 
-   if (!isObject(provider) && typeof provider !== 'function') {
 
-     to = from;
 
-     from = provider;
 
-     provider = receiver;
 
-   }
 
-   if (!isObject(receiver) && typeof receiver !== 'function') {
 
-     throw new TypeError('expected the first argument to be an object');
 
-   }
 
-   if (!isObject(provider) && typeof provider !== 'function') {
 
-     throw new TypeError('expected provider to be an object');
 
-   }
 
-   if (typeof to !== 'string') {
 
-     to = from;
 
-   }
 
-   if (typeof from !== 'string') {
 
-     throw new TypeError('expected key to be a string');
 
-   }
 
-   if (!(from in provider)) {
 
-     throw new Error('property "' + from + '" does not exist');
 
-   }
 
-   var val = Object.getOwnPropertyDescriptor(provider, from);
 
-   if (val) Object.defineProperty(receiver, to, val);
 
- };
 
- function isObject(val) {
 
-   return {}.toString.call(val) === '[object Object]';
 
- }
 
 
  |