Bump to v3.5.0.

This commit is contained in:
jdalton
2015-03-08 18:18:32 -07:00
parent 4881dda9d1
commit 06f6ffa303
29 changed files with 197 additions and 125 deletions

View File

@@ -24,7 +24,7 @@ function baseAssign(object, source, customizer) {
value = object[key],
result = customizer(value, source[key], key, object, source);
if ((result === result ? result !== value : value === value) ||
if ((result === result ? (result !== value) : (value === value)) ||
(typeof value == 'undefined' && !(key in object))) {
object[key] = result;
}

View File

@@ -19,7 +19,7 @@ function baseFill(array, value, start, end) {
if (end < 0) {
end += length;
}
length = start > end ? 0 : end >>> 0;
length = start > end ? 0 : (end >>> 0);
start >>>= 0;
while (start < length) {

View File

@@ -38,7 +38,7 @@ function baseMerge(object, source, customizer, stackA, stackB) {
result = srcValue;
}
if ((isSrcArr || typeof result != 'undefined') &&
(isCommon || (result === result ? result !== value : value === value))) {
(isCommon || (result === result ? (result !== value) : (value === value)))) {
object[key] = result;
}
});

View File

@@ -59,7 +59,7 @@ function baseMergeDeep(object, source, key, mergeFunc, customizer, stackA, stack
if (isCommon) {
// Recursively merge objects and arrays (susceptible to call stack limits).
object[key] = mergeFunc(result, srcValue, customizer, stackA, stackB);
} else if (result === result ? result !== value : value === value) {
} else if (result === result ? (result !== value) : (value === value)) {
object[key] = result;
}
}

View File

@@ -19,7 +19,7 @@ function baseSlice(array, start, end) {
if (end < 0) {
end += length;
}
length = start > end ? 0 : (end - start) >>> 0;
length = start > end ? 0 : ((end - start) >>> 0);
start >>>= 0;
var result = Array(length);

View File

@@ -26,9 +26,8 @@ function compareMultiple(object, other, orders) {
if (result) {
if (index >= ordersLength) {
return result;
} else {
return orders[index] ? result : result * -1;
}
return result * (orders[index] ? 1 : -1);
}
}
// Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications

View File

@@ -13,7 +13,8 @@ function createBindWrapper(func, thisArg) {
var Ctor = createCtorWrapper(func);
function wrapper() {
return (this instanceof wrapper ? Ctor : func).apply(thisArg, arguments);
var fn = (this && this !== global && this instanceof wrapper) ? Ctor : func;
return fn.apply(thisArg, arguments);
}
return wrapper;
}

View File

@@ -12,7 +12,7 @@ function createComposer(fromRight) {
return function() {
var length = arguments.length,
index = length,
fromIndex = fromRight ? length - 1 : 0;
fromIndex = fromRight ? (length - 1) : 0;
if (!length) {
return function() { return arguments[0]; };

View File

@@ -96,7 +96,8 @@ function createHybridWrapper(func, bitmask, thisArg, partials, holders, partials
if (isAry && ary < args.length) {
args.length = ary;
}
return (this instanceof wrapper ? (Ctor || createCtorWrapper(func)) : func).apply(thisBinding, args);
var fn = (this && this !== global && this instanceof wrapper) ? (Ctor || createCtorWrapper(func)) : func;
return fn.apply(thisBinding, args);
}
return wrapper;
}

View File

@@ -34,7 +34,8 @@ function createPartialWrapper(func, bitmask, thisArg, partials) {
while (argsLength--) {
args[leftIndex++] = arguments[++argsIndex];
}
return (this instanceof wrapper ? Ctor : func).apply(isBind ? thisArg : this, args);
var fn = (this && this !== global && this instanceof wrapper) ? Ctor : func;
return fn.apply(isBind ? thisArg : this, args);
}
return wrapper;
}

View File

@@ -61,8 +61,10 @@ function equalObjects(object, other, equalFunc, customizer, isWhere, stackA, sta
othCtor = other.constructor;
// Non `Object` object instances with different constructors are not equal.
if (objCtor != othCtor && ('constructor' in object && 'constructor' in other) &&
!(typeof objCtor == 'function' && objCtor instanceof objCtor && typeof othCtor == 'function' && othCtor instanceof othCtor)) {
if (objCtor != othCtor &&
('constructor' in object && 'constructor' in other) &&
!(typeof objCtor == 'function' && objCtor instanceof objCtor &&
typeof othCtor == 'function' && othCtor instanceof othCtor)) {
return false;
}
}

View File

@@ -23,7 +23,8 @@ function extremumBy(collection, iteratee, isMin) {
baseEach(collection, function(value, index, collection) {
var current = iteratee(value, index, collection);
if ((isMin ? current < computed : current > computed) || (current === exValue && current === result)) {
if ((isMin ? (current < computed) : (current > computed)) ||
(current === exValue && current === result)) {
computed = current;
result = value;
}

View File

@@ -24,7 +24,7 @@ function isIterateeCall(value, index, object) {
}
if (prereq) {
var other = object[index];
return value === value ? value === other : other !== other;
return value === value ? (value === other) : (other !== other);
}
return false;
}

View File

@@ -17,7 +17,6 @@ function lazyClone() {
result.__actions__ = actions ? arrayCopy(actions) : null;
result.__dir__ = this.__dir__;
result.__dropCount__ = this.__dropCount__;
result.__filtered__ = this.__filtered__;
result.__iteratees__ = iteratees ? arrayCopy(iteratees) : null;
result.__takeCount__ = this.__takeCount__;

View File

@@ -4,8 +4,8 @@ var baseWrapperValue = require('./baseWrapperValue'),
/** Used to indicate the type of lazy iteratees. */
var LAZY_DROP_WHILE_FLAG = 0,
LAZY_MAP_FLAG = 2,
LAZY_TAKE_WHILE_FLAG = 3;
LAZY_FILTER_FLAG = 1,
LAZY_MAP_FLAG = 2;
/* Native method references for those with the same name as other `lodash` methods. */
var nativeMin = Math.min;
@@ -29,9 +29,8 @@ function lazyValue() {
start = view.start,
end = view.end,
length = end - start,
dropCount = this.__dropCount__,
index = isRight ? end : (start - 1),
takeCount = nativeMin(length, this.__takeCount__),
index = isRight ? end : start - 1,
iteratees = this.__iteratees__,
iterLength = iteratees ? iteratees.length : 0,
resIndex = 0,
@@ -49,28 +48,32 @@ function lazyValue() {
iteratee = data.iteratee,
type = data.type;
if (type != LAZY_DROP_WHILE_FLAG) {
var computed = iteratee(value);
} else {
data.done = data.done && (isRight ? index < data.index : index > data.index);
if (type == LAZY_DROP_WHILE_FLAG) {
if (data.done && (isRight ? (index > data.index) : (index < data.index))) {
data.count = 0;
data.done = false;
}
data.index = index;
computed = data.done || (data.done = !iteratee(value));
}
if (type == LAZY_MAP_FLAG) {
value = computed;
} else if (!computed) {
if (type == LAZY_TAKE_WHILE_FLAG) {
break outer;
} else {
continue outer;
if (!data.done) {
var limit = data.limit;
if (!(data.done = limit > -1 ? (data.count++ >= limit) : !iteratee(value))) {
continue outer;
}
}
} else {
var computed = iteratee(value);
if (type == LAZY_MAP_FLAG) {
value = computed;
} else if (!computed) {
if (type == LAZY_FILTER_FLAG) {
continue outer;
} else {
break outer;
}
}
}
}
if (dropCount) {
dropCount--;
} else {
result[resIndex++] = value;
}
result[resIndex++] = value;
}
return result;
}