]> git.r.bdr.sh - rbdr/dotfiles/blob - atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/invoke.js
9195afddd8c1e8b61e6540ba76764b80c870f0a5
[rbdr/dotfiles] / atom / packages / vim-mode / node_modules / grim / node_modules / emissary / node_modules / es6-weak-map / node_modules / es5-ext / function / invoke.js
1 'use strict';
2
3 var isCallable = require('../object/is-callable')
4 , value = require('../object/valid-value')
5
6 , slice = Array.prototype.slice, apply = Function.prototype.apply;
7
8 module.exports = function (name/*, …args*/) {
9 var args = slice.call(arguments, 1), isFn = isCallable(name);
10 return function (obj) {
11 value(obj);
12 return apply.call(isFn ? name : obj[name], obj,
13 args.concat(slice.call(arguments, 1)));
14 };
15 };