diff --git a/README.md b/README.md
index be7e10950..29fa3b35e 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# lodash-es v3.3.0
+# lodash-es v3.3.1
The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash](https://lodash.com/) exported as [ES](https://people.mozilla.org/~jorendorff/es6-draft.html) modules.
@@ -7,4 +7,4 @@ Generated using [lodash-cli](https://www.npmjs.com/package/lodash-cli):
$ lodash modularize modern exports=es -o ./
```
-See the [package source](https://github.com/lodash/lodash/tree/3.3.0-es) for more details.
+See the [package source](https://github.com/lodash/lodash/tree/3.3.1-es) for more details.
diff --git a/array/findLastIndex.js b/array/findLastIndex.js
index ff4d45004..1606833e9 100644
--- a/array/findLastIndex.js
+++ b/array/findLastIndex.js
@@ -37,7 +37,7 @@ import baseCallback from '../internal/baseCallback';
* // => 2
*
* // using the `_.matches` callback shorthand
- * _.findLastIndex(users, { user': 'barney', 'active': true });
+ * _.findLastIndex(users, { 'user': 'barney', 'active': true });
* // => 0
*
* // using the `_.matchesProperty` callback shorthand
diff --git a/array/indexOf.js b/array/indexOf.js
index 3939866c8..d08de53db 100644
--- a/array/indexOf.js
+++ b/array/indexOf.js
@@ -26,7 +26,7 @@ var nativeMax = Math.max;
* @example
*
* _.indexOf([1, 2, 1, 2], 2);
- * // => 2
+ * // => 1
*
* // using `fromIndex`
* _.indexOf([1, 2, 1, 2], 2, 2);
diff --git a/array/intersection.js b/array/intersection.js
index 2a493ab57..4b115a5bb 100644
--- a/array/intersection.js
+++ b/array/intersection.js
@@ -34,7 +34,7 @@ function intersection() {
var value = arguments[argsIndex];
if (isArray(value) || isArguments(value)) {
args.push(value);
- caches.push(isCommon && value.length >= 120 && createCache(argsIndex && value));
+ caches.push((isCommon && value.length >= 120) ? createCache(argsIndex && value) : null);
}
}
argsLength = args.length;
diff --git a/collection/some.js b/collection/some.js
index fdf7f5140..9626b94bf 100644
--- a/collection/some.js
+++ b/collection/some.js
@@ -41,7 +41,7 @@ import isArray from '../lang/isArray';
* ];
*
* // using the `_.matches` callback shorthand
- * _.some(users, { user': 'barney', 'active': false });
+ * _.some(users, { 'user': 'barney', 'active': false });
* // => false
*
* // using the `_.matchesProperty` callback shorthand
diff --git a/function/debounce.js b/function/debounce.js
index 59e331885..7d0185b50 100644
--- a/function/debounce.js
+++ b/function/debounce.js
@@ -26,7 +26,7 @@ var nativeMax = Math.max;
* @memberOf _
* @category Function
* @param {Function} func The function to debounce.
- * @param {number} wait The number of milliseconds to delay.
+ * @param {number} [wait=0] The number of milliseconds to delay.
* @param {Object} [options] The options object.
* @param {boolean} [options.leading=false] Specify invoking on the leading
* edge of the timeout.
@@ -84,7 +84,7 @@ function debounce(func, wait, options) {
if (typeof func != 'function') {
throw new TypeError(FUNC_ERROR_TEXT);
}
- wait = wait < 0 ? 0 : wait;
+ wait = wait < 0 ? 0 : (+wait || 0);
if (options === true) {
var leading = true;
trailing = false;
diff --git a/function/throttle.js b/function/throttle.js
index e65a3036c..b92a56346 100644
--- a/function/throttle.js
+++ b/function/throttle.js
@@ -30,7 +30,7 @@ var debounceOptions = {
* @memberOf _
* @category Function
* @param {Function} func The function to throttle.
- * @param {number} wait The number of milliseconds to throttle invocations to.
+ * @param {number} [wait=0] The number of milliseconds to throttle invocations to.
* @param {Object} [options] The options object.
* @param {boolean} [options.leading=true] Specify invoking on the leading
* edge of the timeout.
diff --git a/internal/baseDifference.js b/internal/baseDifference.js
index 5e37d12ff..9aae88ea2 100644
--- a/internal/baseDifference.js
+++ b/internal/baseDifference.js
@@ -21,7 +21,7 @@ function baseDifference(array, values) {
var index = -1,
indexOf = baseIndexOf,
isCommon = true,
- cache = isCommon && values.length >= 200 && createCache(values),
+ cache = (isCommon && values.length >= 200) ? createCache(values) : null,
valuesLength = values.length;
if (cache) {
diff --git a/internal/baseUniq.js b/internal/baseUniq.js
index 1bd8f328b..c5894a2d2 100644
--- a/internal/baseUniq.js
+++ b/internal/baseUniq.js
@@ -17,7 +17,7 @@ function baseUniq(array, iteratee) {
length = array.length,
isCommon = true,
isLarge = isCommon && length >= 200,
- seen = isLarge && createCache(),
+ seen = isLarge ? createCache() : null,
result = [];
if (seen) {
diff --git a/internal/isIterateeCall.js b/internal/isIterateeCall.js
index 40cc3a9c4..ab0925304 100644
--- a/internal/isIterateeCall.js
+++ b/internal/isIterateeCall.js
@@ -22,8 +22,11 @@ function isIterateeCall(value, index, object) {
} else {
prereq = type == 'string' && index in object;
}
- var other = object[index];
- return prereq && (value === value ? value === other : other !== other);
+ if (prereq) {
+ var other = object[index];
+ return value === value ? value === other : other !== other;
+ }
+ return false;
}
export default isIterateeCall;
diff --git a/lodash.js b/lodash.js
index c46bfc4e9..b6e93355c 100644
--- a/lodash.js
+++ b/lodash.js
@@ -1,9 +1,9 @@
/**
* @license
- * lodash 3.3.0 (Custom Build)
+ * lodash 3.3.1 (Custom Build)
* Build: `lodash modularize modern exports="es" -o ./`
* Copyright 2012-2015 The Dojo Foundation
- * Based on Underscore.js 1.7.0
+ * Based on Underscore.js 1.8.2
* Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
* Available under MIT license
*/
@@ -38,7 +38,7 @@ import support from './support';
import thru from './chain/thru';
/** Used as the semantic version number. */
-var VERSION = '3.3.0';
+var VERSION = '3.3.1';
/** Used to indicate the type of lazy iteratees. */
var LAZY_FILTER_FLAG = 0,
@@ -320,15 +320,13 @@ arrayEach(['bind', 'bindKey', 'curry', 'curryRight', 'partial', 'partialRight'],
// Add `LazyWrapper` methods that accept an `iteratee` value.
arrayEach(['filter', 'map', 'takeWhile'], function(methodName, index) {
- var isFilter = index == LAZY_FILTER_FLAG,
- isWhile = index == LAZY_WHILE_FLAG;
+ var isFilter = index == LAZY_FILTER_FLAG || index == LAZY_WHILE_FLAG;
LazyWrapper.prototype[methodName] = function(iteratee, thisArg) {
var result = this.clone(),
- filtered = result.__filtered__,
iteratees = result.__iteratees__ || (result.__iteratees__ = []);
- result.__filtered__ = filtered || isFilter || (isWhile && result.__dir__ < 0);
+ result.__filtered__ = result.__filtered__ || isFilter;
iteratees.push({ 'iteratee': baseCallback(iteratee, thisArg, 3), 'type': index });
return result;
};
@@ -395,9 +393,14 @@ LazyWrapper.prototype.compact = function() {
};
LazyWrapper.prototype.dropWhile = function(predicate, thisArg) {
- var done;
+ var done,
+ lastIndex,
+ isRight = this.__dir__ < 0;
+
predicate = baseCallback(predicate, thisArg, 3);
return this.filter(function(value, index, array) {
+ done = done && (isRight ? index < lastIndex : index > lastIndex);
+ lastIndex = index;
return done || (done = !predicate(value, index, array));
});
};
diff --git a/package.json b/package.json
index 79c93f8af..376625a00 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash-es",
- "version": "3.3.0",
+ "version": "3.3.1",
"description": "The modern build of lodash exported as ES modules.",
"homepage": "https://lodash.com/custom-builds",
"license": "MIT",
diff --git a/string/template.js b/string/template.js
index 8b3e85729..003015def 100644
--- a/string/template.js
+++ b/string/template.js
@@ -111,10 +111,10 @@ var reUnescapedString = /['\n\r\u2028\u2029\\]/g;
* var compiled = _.template('hi <%= data.user %>!', { 'variable': 'data' });
* compiled.source;
* // => function(data) {
- * var __t, __p = '';
- * __p += 'hi ' + ((__t = ( data.user )) == null ? '' : __t) + '!';
- * return __p;
- * }
+ * // var __t, __p = '';
+ * // __p += 'hi ' + ((__t = ( data.user )) == null ? '' : __t) + '!';
+ * // return __p;
+ * // }
*
* // using the `source` property to inline compiled templates for meaningful
* // line numbers in error messages and a stack trace