time-to-botec

Benchmark sampling in different programming languages
Log | Files | Refs | README

_baseInvoke.js (789B)


      1 var apply = require('./_apply'),
      2     castPath = require('./_castPath'),
      3     last = require('./last'),
      4     parent = require('./_parent'),
      5     toKey = require('./_toKey');
      6 
      7 /**
      8  * The base implementation of `_.invoke` without support for individual
      9  * method arguments.
     10  *
     11  * @private
     12  * @param {Object} object The object to query.
     13  * @param {Array|string} path The path of the method to invoke.
     14  * @param {Array} args The arguments to invoke the method with.
     15  * @returns {*} Returns the result of the invoked method.
     16  */
     17 function baseInvoke(object, path, args) {
     18   path = castPath(path, object);
     19   object = parent(object, path);
     20   var func = object == null ? object : object[toKey(last(path))];
     21   return func == null ? undefined : apply(func, object, args);
     22 }
     23 
     24 module.exports = baseInvoke;