summaryrefslogtreecommitdiff
path: root/deps/npm/node_modules/lodash/internal/baseWrapperValue.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/npm/node_modules/lodash/internal/baseWrapperValue.js')
-rw-r--r--deps/npm/node_modules/lodash/internal/baseWrapperValue.js29
1 files changed, 29 insertions, 0 deletions
diff --git a/deps/npm/node_modules/lodash/internal/baseWrapperValue.js b/deps/npm/node_modules/lodash/internal/baseWrapperValue.js
new file mode 100644
index 0000000000..629c01fd14
--- /dev/null
+++ b/deps/npm/node_modules/lodash/internal/baseWrapperValue.js
@@ -0,0 +1,29 @@
+var LazyWrapper = require('./LazyWrapper'),
+ arrayPush = require('./arrayPush');
+
+/**
+ * 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 peform to resolve the unwrapped value.
+ * @returns {*} Returns the resolved value.
+ */
+function baseWrapperValue(value, actions) {
+ var result = value;
+ if (result instanceof LazyWrapper) {
+ result = result.value();
+ }
+ var index = -1,
+ length = actions.length;
+
+ while (++index < length) {
+ var action = actions[index];
+ result = action.func.apply(action.thisArg, arrayPush([result], action.args));
+ }
+ return result;
+}
+
+module.exports = baseWrapperValue;