From 0c27706e89b921b573cbc1e36fe698d5b2c75e13 Mon Sep 17 00:00:00 2001 From: John-David Dalton Date: Tue, 15 Nov 2016 22:20:52 -0800 Subject: [PATCH] Bump to v4.17.2. --- README.md | 4 ++-- _basePickBy.js | 4 ++-- _basePullAt.js | 12 +++--------- _baseUnset.js | 9 +-------- main.js | 33 +++++++++++---------------------- omit.js | 10 +++++----- package.json | 2 +- result.js | 2 +- spread.js | 4 ---- 9 files changed, 26 insertions(+), 54 deletions(-) diff --git a/README.md b/README.md index 87e1f8d6a..2b8e1fb54 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# lodash-amd v4.17.1 +# lodash-amd v4.17.2 The [Lodash](https://lodash.com/) library exported as [AMD](https://github.com/amdjs/amdjs-api/wiki/AMD) modules. @@ -27,4 +27,4 @@ require({ }); ``` -See the [package source](https://github.com/lodash/lodash/tree/4.17.1-amd) for more details. +See the [package source](https://github.com/lodash/lodash/tree/4.17.2-amd) for more details. diff --git a/_basePickBy.js b/_basePickBy.js index e48d1abef..79364c28e 100644 --- a/_basePickBy.js +++ b/_basePickBy.js @@ -1,4 +1,4 @@ -define(['./_baseGet', './_baseSet'], function(baseGet, baseSet) { +define(['./_baseGet', './_baseSet', './_castPath'], function(baseGet, baseSet, castPath) { /** * The base implementation of `_.pickBy` without support for iteratee shorthands. @@ -19,7 +19,7 @@ define(['./_baseGet', './_baseSet'], function(baseGet, baseSet) { value = baseGet(object, path); if (predicate(value, path)) { - baseSet(result, path, value); + baseSet(result, castPath(path, object), value); } } return result; diff --git a/_basePullAt.js b/_basePullAt.js index 443525387..af9fbcecc 100644 --- a/_basePullAt.js +++ b/_basePullAt.js @@ -1,4 +1,4 @@ -define(['./_castPath', './_isIndex', './last', './_parent', './_toKey'], function(castPath, isIndex, last, parent, toKey) { +define(['./_baseUnset', './_isIndex'], function(baseUnset, isIndex) { /** Used for built-in method references. */ var arrayProto = Array.prototype; @@ -25,14 +25,8 @@ define(['./_castPath', './_isIndex', './last', './_parent', './_toKey'], functio var previous = index; if (isIndex(index)) { splice.call(array, index, 1); - } - else { - var path = castPath(index, array), - object = parent(array, path); - - if (object != null) { - delete object[toKey(last(path))]; - } + } else { + baseUnset(array, index); } } } diff --git a/_baseUnset.js b/_baseUnset.js index e3b99804d..4b0047ef7 100644 --- a/_baseUnset.js +++ b/_baseUnset.js @@ -1,11 +1,5 @@ define(['./_castPath', './last', './_parent', './_toKey'], function(castPath, last, parent, toKey) { - /** Used for built-in method references. */ - var objectProto = Object.prototype; - - /** Used to check objects for own properties. */ - var hasOwnProperty = objectProto.hasOwnProperty; - /** * The base implementation of `_.unset`. * @@ -17,8 +11,7 @@ define(['./_castPath', './last', './_parent', './_toKey'], function(castPath, la function baseUnset(object, path) { path = castPath(path, object); object = parent(object, path); - var key = toKey(last(path)); - return !(object != null && hasOwnProperty.call(object, key)) || delete object[key]; + return object == null || delete object[toKey(last(path))]; } return baseUnset; diff --git a/main.js b/main.js index 87ba5f9e4..dc0fa9634 100644 --- a/main.js +++ b/main.js @@ -13,7 +13,7 @@ var undefined; /** Used as the semantic version number. */ - var VERSION = '4.17.1'; + var VERSION = '4.17.2'; /** Used as the size to enable large array optimizations. */ var LARGE_ARRAY_SIZE = 200; @@ -3806,7 +3806,7 @@ value = baseGet(object, path); if (predicate(value, path)) { - baseSet(result, path, value); + baseSet(result, castPath(path, object), value); } } return result; @@ -3882,14 +3882,8 @@ var previous = index; if (isIndex(index)) { splice.call(array, index, 1); - } - else { - var path = castPath(index, array), - object = parent(array, path); - - if (object != null) { - delete object[toKey(last(path))]; - } + } else { + baseUnset(array, index); } } } @@ -4353,8 +4347,7 @@ function baseUnset(object, path) { path = castPath(path, object); object = parent(object, path); - var key = toKey(last(path)); - return !(object != null && hasOwnProperty.call(object, key)) || delete object[key]; + return object == null || delete object[toKey(last(path))]; } /** @@ -10848,15 +10841,11 @@ start = start === undefined ? 0 : nativeMax(toInteger(start), 0); return baseRest(function(args) { var array = args[start], - lastIndex = args.length - 1, otherArgs = castSlice(args, 0, start); if (array) { arrayPush(otherArgs, array); } - if (start != lastIndex) { - arrayPush(otherArgs, castSlice(args, start + 1)); - } return apply(func, this, otherArgs); }); } @@ -13471,16 +13460,16 @@ if (object == null) { return result; } - var bitmask = CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG; + var isDeep = false; paths = arrayMap(paths, function(path) { path = castPath(path, object); - bitmask |= (path.length > 1 ? CLONE_DEEP_FLAG : 0); + isDeep || (isDeep = path.length > 1); return path; }); - copyObject(object, getAllKeysIn(object), result); - result = baseClone(result, bitmask); - + if (isDeep) { + result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG); + } var length = paths.length; while (length--) { baseUnset(result, paths[length]); @@ -13601,8 +13590,8 @@ // Ensure the loop is entered when path is empty. if (!length) { - object = undefined; length = 1; + object = undefined; } while (++index < length) { var value = object == null ? undefined : object[toKey(path[index])]; diff --git a/omit.js b/omit.js index e11dbfe8c..ed4784f27 100644 --- a/omit.js +++ b/omit.js @@ -30,16 +30,16 @@ define(['./_arrayMap', './_baseClone', './_baseUnset', './_castPath', './_copyOb if (object == null) { return result; } - var bitmask = CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG; + var isDeep = false; paths = arrayMap(paths, function(path) { path = castPath(path, object); - bitmask |= (path.length > 1 ? CLONE_DEEP_FLAG : 0); + isDeep || (isDeep = path.length > 1); return path; }); - copyObject(object, getAllKeysIn(object), result); - result = baseClone(result, bitmask); - + if (isDeep) { + result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG); + } var length = paths.length; while (length--) { baseUnset(result, paths[length]); diff --git a/package.json b/package.json index 4ae382cfb..2746bbc9b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "lodash-amd", - "version": "4.17.1", + "version": "4.17.2", "description": "Lodash exported as AMD modules.", "keywords": "amd, modules, stdlib, util", "homepage": "https://lodash.com/custom-builds", diff --git a/result.js b/result.js index bd5301ade..11623e863 100644 --- a/result.js +++ b/result.js @@ -40,8 +40,8 @@ define(['./_castPath', './isFunction', './_toKey'], function(castPath, isFunctio // Ensure the loop is entered when path is empty. if (!length) { - object = undefined; length = 1; + object = undefined; } while (++index < length) { var value = object == null ? undefined : object[toKey(path[index])]; diff --git a/spread.js b/spread.js index 8fce710a8..d4e6b8c72 100644 --- a/spread.js +++ b/spread.js @@ -50,15 +50,11 @@ define(['./_apply', './_arrayPush', './_baseRest', './_castSlice', './toInteger' start = start === undefined ? 0 : nativeMax(toInteger(start), 0); return baseRest(function(args) { var array = args[start], - lastIndex = args.length - 1, otherArgs = castSlice(args, 0, start); if (array) { arrayPush(otherArgs, array); } - if (start != lastIndex) { - arrayPush(otherArgs, castSlice(args, start + 1)); - } return apply(func, this, otherArgs); }); }