| 
								
							 | 
							
								var LazyWrapper = require('./_LazyWrapper'),
							 | 
						
						
						
							| 
								
							 | 
							
								    arrayPush = require('./_arrayPush'),
							 | 
						
						
						
							| 
								
							 | 
							
								    arrayReduce = require('./_arrayReduce');
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/**
							 | 
						
						
						
							| 
								
							 | 
							
								 * The base implementation of `wrapperValue` which returns the result of
							 | 
						
						
						
							| 
								
							 | 
							
								 * performing a sequence of actions on the unwrapped `value`, where each
							 | 
						
						
						
							| 
								
							 | 
							
								 * successive action is supplied the return value of the previous.
							 | 
						
						
						
							| 
								
							 | 
							
								 *
							 | 
						
						
						
							| 
								
							 | 
							
								 * @private
							 | 
						
						
						
							| 
								
							 | 
							
								 * @param {*} value The unwrapped value.
							 | 
						
						
						
							| 
								
							 | 
							
								 * @param {Array} actions Actions to perform to resolve the unwrapped value.
							 | 
						
						
						
							| 
								
							 | 
							
								 * @returns {*} Returns the resolved value.
							 | 
						
						
						
							| 
								
							 | 
							
								 */
							 | 
						
						
						
							| 
								
							 | 
							
								function baseWrapperValue(value, actions) {
							 | 
						
						
						
							| 
								
							 | 
							
								  var result = value;
							 | 
						
						
						
							| 
								
							 | 
							
								  if (result instanceof LazyWrapper) {
							 | 
						
						
						
							| 
								
							 | 
							
								    result = result.value();
							 | 
						
						
						
							| 
								
							 | 
							
								  }
							 | 
						
						
						
							| 
								
							 | 
							
								  return arrayReduce(actions, function(result, action) {
							 | 
						
						
						
							| 
								
							 | 
							
								    return action.func.apply(action.thisArg, arrayPush([result], action.args));
							 | 
						
						
						
							| 
								
							 | 
							
								  }, result);
							 | 
						
						
						
							| 
								
							 | 
							
								}
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								module.exports = baseWrapperValue;
							 |