Compare commits

...

1 Commits

Author SHA1 Message Date
John-David Dalton
d9fd2bdf9c Bump to v4.16.3. 2016-10-02 21:54:44 -07:00
12 changed files with 45 additions and 28 deletions

View File

@@ -1,4 +1,4 @@
# lodash-es v4.16.2 # lodash-es v4.16.3
The [Lodash](https://lodash.com/) library exported as [ES](http://www.ecma-international.org/ecma-262/6.0/) modules. The [Lodash](https://lodash.com/) library exported as [ES](http://www.ecma-international.org/ecma-262/6.0/) modules.
@@ -7,4 +7,4 @@ Generated using [lodash-cli](https://www.npmjs.com/package/lodash-cli):
$ lodash modularize exports=es -o ./ $ lodash modularize exports=es -o ./
``` ```
See the [package source](https://github.com/lodash/lodash/tree/4.16.2-es) for more details. See the [package source](https://github.com/lodash/lodash/tree/4.16.3-es) for more details.

View File

@@ -12,7 +12,7 @@ import eq from './eq.js';
*/ */
function assignMergeValue(object, key, value) { function assignMergeValue(object, key, value) {
if ((value !== undefined && !eq(object[key], value)) || if ((value !== undefined && !eq(object[key], value)) ||
(typeof key == 'number' && value === undefined && !(key in object))) { (value === undefined && !(key in object))) {
baseAssignValue(object, key, value); baseAssignValue(object, key, value);
} }
} }

View File

@@ -1,5 +1,4 @@
/** Built-in value references. */ import defineProperty from './_defineProperty.js';
var defineProperty = Object.defineProperty;
/** /**
* The base implementation of `assignValue` and `assignMergeValue` without * The base implementation of `assignValue` and `assignMergeValue` without

View File

@@ -20,7 +20,7 @@ var baseCreate = (function() {
if (objectCreate) { if (objectCreate) {
return objectCreate(proto); return objectCreate(proto);
} }
object.prototype = prototype; object.prototype = proto;
var result = new object; var result = new object;
object.prototype = undefined; object.prototype = undefined;
return result; return result;

View File

@@ -4,6 +4,7 @@ import equalByTag from './_equalByTag.js';
import equalObjects from './_equalObjects.js'; import equalObjects from './_equalObjects.js';
import getTag from './_getTag.js'; import getTag from './_getTag.js';
import isArray from './isArray.js'; import isArray from './isArray.js';
import isBuffer from './isBuffer.js';
import isTypedArray from './isTypedArray.js'; import isTypedArray from './isTypedArray.js';
/** Used to compose bitmasks for comparison styles. */ /** Used to compose bitmasks for comparison styles. */
@@ -53,6 +54,13 @@ function baseIsEqualDeep(object, other, equalFunc, customizer, bitmask, stack) {
othIsObj = othTag == objectTag, othIsObj = othTag == objectTag,
isSameTag = objTag == othTag; isSameTag = objTag == othTag;
if (isSameTag && isBuffer(object)) {
if (!isBuffer(other)) {
return false;
}
objIsArr = true;
objIsObj = false;
}
if (isSameTag && !objIsObj) { if (isSameTag && !objIsObj) {
stack || (stack = new Stack); stack || (stack = new Stack);
return (objIsArr || isTypedArray(object)) return (objIsArr || isTypedArray(object))

View File

@@ -1,6 +1,7 @@
import assignMergeValue from './_assignMergeValue.js'; import assignMergeValue from './_assignMergeValue.js';
import baseClone from './_baseClone.js'; import cloneTypedArray from './_cloneTypedArray.js';
import copyArray from './_copyArray.js'; import copyArray from './_copyArray.js';
import initCloneObject from './_initCloneObject.js';
import isArguments from './isArguments.js'; import isArguments from './isArguments.js';
import isArray from './isArray.js'; import isArray from './isArray.js';
import isArrayLikeObject from './isArrayLikeObject.js'; import isArrayLikeObject from './isArrayLikeObject.js';
@@ -41,29 +42,32 @@ function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, sta
var isCommon = newValue === undefined; var isCommon = newValue === undefined;
if (isCommon) { if (isCommon) {
var isArr = isArray(srcValue),
isTyped = !isArr && isTypedArray(srcValue);
newValue = srcValue; newValue = srcValue;
if (isArray(srcValue) || isTypedArray(srcValue)) { if (isArr || isTyped) {
if (isArray(objValue)) { if (isArray(objValue)) {
newValue = objValue; newValue = objValue;
} }
else if (isArrayLikeObject(objValue)) { else if (isArrayLikeObject(objValue)) {
newValue = copyArray(objValue); newValue = copyArray(objValue);
} }
else { else if (isTyped) {
isCommon = false; isCommon = false;
newValue = baseClone(srcValue, true); newValue = cloneTypedArray(srcValue, true);
}
else {
newValue = [];
} }
} }
else if (isPlainObject(srcValue) || isArguments(srcValue)) { else if (isPlainObject(srcValue) || isArguments(srcValue)) {
newValue = objValue;
if (isArguments(objValue)) { if (isArguments(objValue)) {
newValue = toPlainObject(objValue); newValue = toPlainObject(objValue);
} }
else if (!isObject(objValue) || (srcIndex && isFunction(objValue))) { else if (!isObject(objValue) || (srcIndex && isFunction(objValue))) {
isCommon = false; newValue = initCloneObject(srcValue);
newValue = baseClone(srcValue, true);
}
else {
newValue = objValue;
} }
} }
else { else {

View File

@@ -1,6 +1,6 @@
import constant from './constant.js'; import constant from './constant.js';
import defineProperty from './_defineProperty.js';
import identity from './identity.js'; import identity from './identity.js';
import nativeDefineProperty from './_nativeDefineProperty.js';
/** /**
* The base implementation of `setToString` without support for hot loop shorting. * The base implementation of `setToString` without support for hot loop shorting.
@@ -10,8 +10,8 @@ import nativeDefineProperty from './_nativeDefineProperty.js';
* @param {Function} string The `toString` result. * @param {Function} string The `toString` result.
* @returns {Function} Returns `func`. * @returns {Function} Returns `func`.
*/ */
var baseSetToString = !nativeDefineProperty ? identity : function(func, string) { var baseSetToString = !defineProperty ? identity : function(func, string) {
return nativeDefineProperty(func, 'toString', { return defineProperty(func, 'toString', {
'configurable': true, 'configurable': true,
'enumerable': false, 'enumerable': false,
'value': constant(string), 'value': constant(string),

11
_defineProperty.js Normal file
View File

@@ -0,0 +1,11 @@
import getNative from './_getNative.js';
var defineProperty = (function() {
try {
var func = getNative(Object, 'defineProperty');
func({}, '', {});
return func;
} catch (e) {}
}());
export default defineProperty;

View File

@@ -1,6 +0,0 @@
import getNative from './_getNative.js';
/* Built-in method references that are verified to be native. */
var nativeDefineProperty = getNative(Object, 'defineProperty');
export default nativeDefineProperty;

View File

@@ -2,7 +2,8 @@ import isObject from './isObject.js';
/** `Object#toString` result references. */ /** `Object#toString` result references. */
var funcTag = '[object Function]', var funcTag = '[object Function]',
genTag = '[object GeneratorFunction]'; genTag = '[object GeneratorFunction]',
proxyTag = '[object Proxy]';
/** Used for built-in method references. */ /** Used for built-in method references. */
var objectProto = Object.prototype; var objectProto = Object.prototype;
@@ -35,7 +36,7 @@ function isFunction(value) {
// The use of `Object#toString` avoids issues with the `typeof` operator // The use of `Object#toString` avoids issues with the `typeof` operator
// in Safari 8-9 which returns 'object' for typed array and other constructors. // in Safari 8-9 which returns 'object' for typed array and other constructors.
var tag = isObject(value) ? objectToString.call(value) : ''; var tag = isObject(value) ? objectToString.call(value) : '';
return tag == funcTag || tag == genTag; return tag == funcTag || tag == genTag || tag == proxyTag;
} }
export default isFunction; export default isFunction;

View File

@@ -45,7 +45,7 @@ import toInteger from './toInteger.js';
import lodash from './wrapperLodash.js'; import lodash from './wrapperLodash.js';
/** Used as the semantic version number. */ /** Used as the semantic version number. */
var VERSION = '4.16.2'; var VERSION = '4.16.3';
/** Used to compose bitmasks for function metadata. */ /** Used to compose bitmasks for function metadata. */
var BIND_KEY_FLAG = 2; var BIND_KEY_FLAG = 2;

View File

@@ -1,6 +1,6 @@
{ {
"name": "lodash-es", "name": "lodash-es",
"version": "4.16.2", "version": "4.16.3",
"description": "Lodash exported as ES modules.", "description": "Lodash exported as ES modules.",
"keywords": "es6, modules, stdlib, util", "keywords": "es6, modules, stdlib, util",
"homepage": "https://lodash.com/custom-builds", "homepage": "https://lodash.com/custom-builds",