Security update for Core, with self-updated composer
[yaffs-website] / node_modules / grunt-legacy-util / node_modules / lodash / plant.js
1 var baseLodash = require('./_baseLodash'),
2     wrapperClone = require('./_wrapperClone');
3
4 /**
5  * Creates a clone of the chained sequence planting `value` as the wrapped value.
6  *
7  * @name plant
8  * @memberOf _
9  * @category Seq
10  * @param {*} value The value to plant.
11  * @returns {Object} Returns the new `lodash` wrapper instance.
12  * @example
13  *
14  * function square(n) {
15  *   return n * n;
16  * }
17  *
18  * var wrapped = _([1, 2]).map(square);
19  * var other = wrapped.plant([3, 4]);
20  *
21  * other.value();
22  * // => [9, 16]
23  *
24  * wrapped.value();
25  * // => [1, 4]
26  */
27 function wrapperPlant(value) {
28   var result,
29       parent = this;
30
31   while (parent instanceof baseLodash) {
32     var clone = wrapperClone(parent);
33     clone.__index__ = 0;
34     clone.__values__ = undefined;
35     if (result) {
36       previous.__wrapped__ = clone;
37     } else {
38       result = clone;
39     }
40     var previous = clone;
41     parent = parent.__wrapped__;
42   }
43   previous.__wrapped__ = value;
44   return result;
45 }
46
47 module.exports = wrapperPlant;