| /*! | 
|  * object-visit <https://github.com/jonschlinkert/object-visit> | 
|  * | 
|  * Copyright (c) 2015, 2017, Jon Schlinkert. | 
|  * Released under the MIT License. | 
|  */ | 
|   | 
| 'use strict'; | 
|   | 
| var isObject = require('isobject'); | 
|   | 
| module.exports = function visit(thisArg, method, target, val) { | 
|   if (!isObject(thisArg) && typeof thisArg !== 'function') { | 
|     throw new Error('object-visit expects `thisArg` to be an object.'); | 
|   } | 
|   | 
|   if (typeof method !== 'string') { | 
|     throw new Error('object-visit expects `method` name to be a string'); | 
|   } | 
|   | 
|   if (typeof thisArg[method] !== 'function') { | 
|     return thisArg; | 
|   } | 
|   | 
|   var args = [].slice.call(arguments, 3); | 
|   target = target || {}; | 
|   | 
|   for (var key in target) { | 
|     var arr = [key, target[key]].concat(args); | 
|     thisArg[method].apply(thisArg, arr); | 
|   } | 
|   return thisArg; | 
| }; |