X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=node_modules%2Funcss%2Fnode_modules%2Flodash%2Finternal%2FbaseMerge.js;fp=node_modules%2Funcss%2Fnode_modules%2Flodash%2Finternal%2FbaseMerge.js;h=48d28314d0766b3d4270ac8b0da39049510f6e83;hp=0000000000000000000000000000000000000000;hb=a2bd1bf0c2c1f1a17d188f4dc0726a45494cefae;hpb=57c063afa3f66b07c4bbddc2d6129a96d90f0aad diff --git a/node_modules/uncss/node_modules/lodash/internal/baseMerge.js b/node_modules/uncss/node_modules/lodash/internal/baseMerge.js new file mode 100644 index 000000000..48d28314d --- /dev/null +++ b/node_modules/uncss/node_modules/lodash/internal/baseMerge.js @@ -0,0 +1,44 @@ +var Stack = require('./Stack'), + arrayEach = require('./arrayEach'), + assignMergeValue = require('./assignMergeValue'), + baseMergeDeep = require('./baseMergeDeep'), + isArray = require('../isArray'), + isObject = require('../isObject'), + isTypedArray = require('../isTypedArray'), + keysIn = require('../keysIn'); + +/** + * The base implementation of `_.merge` without support for multiple sources. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @param {number} srcIndex The index of `source`. + * @param {Function} [customizer] The function to customize merged values. + * @param {Object} [stack] Tracks traversed source values and their merged counterparts. + */ +function baseMerge(object, source, srcIndex, customizer, stack) { + if (object === source) { + return; + } + var props = (isArray(source) || isTypedArray(source)) ? undefined : keysIn(source); + arrayEach(props || source, function(srcValue, key) { + if (props) { + key = srcValue; + srcValue = source[key]; + } + if (isObject(srcValue)) { + stack || (stack = new Stack); + baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack); + } + else { + var newValue = customizer ? customizer(object[key], srcValue, (key + ''), object, source, stack) : undefined; + if (newValue === undefined) { + newValue = srcValue; + } + assignMergeValue(object, key, newValue); + } + }); +} + +module.exports = baseMerge;