'use strict'; var isCallable = require('../object/is-callable') , value = require('../object/valid-value') , slice = Array.prototype.slice, apply = Function.prototype.apply; module.exports = function (name/*, …args*/) { var args = slice.call(arguments, 1), isFn = isCallable(name); return function (obj) { value(obj); return apply.call(isFn ? name : obj[name], obj, args.concat(slice.call(arguments, 1))); }; };