time-to-botec

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

_baseWrapperValue.js (857B)


      1 var LazyWrapper = require('./_LazyWrapper'),
      2     arrayPush = require('./_arrayPush'),
      3     arrayReduce = require('./_arrayReduce');
      4 
      5 /**
      6  * The base implementation of `wrapperValue` which returns the result of
      7  * performing a sequence of actions on the unwrapped `value`, where each
      8  * successive action is supplied the return value of the previous.
      9  *
     10  * @private
     11  * @param {*} value The unwrapped value.
     12  * @param {Array} actions Actions to perform to resolve the unwrapped value.
     13  * @returns {*} Returns the resolved value.
     14  */
     15 function baseWrapperValue(value, actions) {
     16   var result = value;
     17   if (result instanceof LazyWrapper) {
     18     result = result.value();
     19   }
     20   return arrayReduce(actions, function(result, action) {
     21     return action.func.apply(action.thisArg, arrayPush([result], action.args));
     22   }, result);
     23 }
     24 
     25 module.exports = baseWrapperValue;