diff --git a/README.md b/README.md
index 0a439a969..0cfa14612 100644
--- a/README.md
+++ b/README.md
@@ -23,9 +23,9 @@ For more information check out these screencasts over Lo-Dash:
* [_.bind](http://lodash.com/docs#_bindfunc--arg1-arg2-) supports *"lazy"* binding
* [_.debounce](http://lodash.com/docs#_debouncefunc-wait-immediate)’ed functions match [_.throttle](http://lodash.com/docs#_throttlefunc-wait)’ed functions’ return value behavior
* [_.forEach](http://lodash.com/docs#_foreachcollection-callback--thisarg) is chainable
- * [_.groupBy](http://lodash.com/docs#_groupbycollection-callback--thisarg) accepts a third `thisArg` argument
+ * [_.groupBy](http://lodash.com/docs#_groupbycollection-callback--thisarg) accepts a third, `thisArg`, argument
* [_.partial](http://lodash.com/docs#_partialfunc--arg1-arg2-) for more functional fun
- * [_.size](http://lodash.com/docs#_sizecollection) returns the `length` of string values
+ * [_.size](http://lodash.com/docs#_sizecollection) supports returning the `length` of string values
## Support
@@ -121,9 +121,9 @@ git submodule update --init
* Methods should work on pages with incorrectly shimmed native methods [#7](https://github.com/documentcloud/underscore/issues/7)
* Register as AMD module, but still export to global [#431](https://github.com/documentcloud/underscore/pull/431)
* `_.forEach` should be chainable [#142](https://github.com/documentcloud/underscore/issues/142)
- * `_isNaN(new Number(NaN))` should return `true`
- * `_.reduceRight` should pass correct callback arguments when iterating objects
- * `_.size` should return the `length` of string values
+ * `_isNaN(new Number(NaN))` should return `true` [[test](https://github.com/bestiejs/lodash/blob/5bcd444084c92b1753feeaf66c20323e57a2dac3/test/test.js#L95-99)]
+ * `_.reduceRight` should pass correct callback arguments when iterating objects [[test](https://github.com/bestiejs/lodash/blob/5bcd444084c92b1753feeaf66c20323e57a2dac3/test/test.js#L106-116)]
+ * `_.size` should return the `length` of string values [[test](https://github.com/bestiejs/lodash/blob/5bcd444084c92b1753feeaf66c20323e57a2dac3/test/test.js#L121-127)]
## Optimized methods (50+)
@@ -189,9 +189,9 @@ git submodule update --init
* Added *"lazy bind"* support to `_.bind`
* Added native method overwrite detection to avoid bad native shims
* Added support for more AMD build optimizers and aliasing as the *"underscore"* module
- * Added `thisArg` to `_.groupBy`
+ * Added `thisArg` argument to `_.groupBy`
* Added whitespace to compiled strings
- * Added `_.partial`
+ * Added `_.partial` method
* Commented the `iterationFactory` options object
* Ensured `_.max` and `_.min` support extremely large arrays
* Fixed IE < 9 `[DontEnum]` bug and Firefox < 3.6, Opera > 9.50 - Opera < 11.60, and Safari < 5.1’s prototype property iteration bug
diff --git a/doc/README.md b/doc/README.md
index b1f21d887..d488f95bd 100644
--- a/doc/README.md
+++ b/doc/README.md
@@ -124,9 +124,6 @@
## `_`
-
-
-
### `_(value)`
@@ -145,9 +142,6 @@ The `lodash` function.
-
-
-
### `_.VERSION`
@@ -160,9 +154,6 @@ The `lodash` function.
-
-
-
### `_.after(n, func)`
@@ -191,9 +182,6 @@ _.forEach(notes, function(note) {
-
-
-
### `_.bind(func [, arg1, arg2, ...])`
@@ -241,9 +229,6 @@ func();
-
-
-
### `_.bindAll(object [, methodName1, methodName2, ...])`
@@ -276,9 +261,6 @@ jQuery('#lodash_button').on('click', buttonView.onClick);
-
-
-
### `_.chain(value)`
@@ -313,9 +295,6 @@ var youngest = _.chain(stooges)
-
-
-
### `_.clone(value)`
@@ -340,9 +319,6 @@ _.clone({ 'name': 'moe' });
-
-
-
### `_.compact(array)`
@@ -367,9 +343,6 @@ _.compact([0, 1, false, 2, '', 3]);
-
-
-
### `_.compose([func1, func2, ...])`
@@ -397,9 +370,6 @@ welcome('moe');
-
-
-
### `_.contains(collection, target)`
@@ -425,9 +395,6 @@ _.contains([1, 2, 3], 3);
-
-
-
### `_.debounce(func, wait, immediate)`
@@ -454,9 +421,6 @@ jQuery(window).on('resize', lazyLayout);
-
-
-
### `_.defaults(object [, defaults1, defaults2, ...])`
@@ -483,9 +447,6 @@ _.defaults(iceCream, { 'flavor': 'vanilla', 'sprinkles': 'lots' });
-
-
-
### `_.defer(func [, arg1, arg2, ...])`
@@ -511,9 +472,6 @@ _.defer(function() { alert('deferred'); });
-
-
-
### `_.delay(func, wait [, arg1, arg2, ...])`
@@ -541,9 +499,6 @@ _.delay(log, 1000, 'logged later');
-
-
-
### `_.difference(array [, array1, array2, ...])`
@@ -569,9 +524,6 @@ _.difference([1, 2, 3, 4, 5], [5, 2, 10]);
-
-
-
### `_.escape(string)`
@@ -596,9 +548,6 @@ _.escape('Curly, Larry & Moe');
-
-
-
### `_.every(collection, callback [, thisArg])`
@@ -625,9 +574,6 @@ _.every([true, 1, null, 'yes'], Boolean);
-
-
-
### `_.extend(object [, source1, source2, ...])`
@@ -653,9 +599,6 @@ _.extend({ 'name': 'moe' }, { 'age': 40 });
-
-
-
### `_.filter(collection, callback [, thisArg])`
@@ -682,9 +625,6 @@ var evens = _.filter([1, 2, 3, 4, 5, 6], function(num) { return num % 2 == 0; })
-
-
-
### `_.find(collection, callback [, thisArg])`
@@ -711,9 +651,6 @@ var even = _.find([1, 2, 3, 4, 5, 6], function(num) { return num % 2 == 0; });
-
-
-
### `_.first(array [, n, guard])`
@@ -740,9 +677,6 @@ _.first([5, 4, 3, 2, 1]);
-
-
-
### `_.flatten(array, shallow)`
@@ -771,9 +705,6 @@ _.flatten([1, [2], [3, [[4]]]], true);
-
-
-
### `_.forEach(collection, callback [, thisArg])`
@@ -803,9 +734,6 @@ _([1, 2, 3]).forEach(function(num) { alert(num); }).join(',');
-
-
-
### `_.functions(object)`
@@ -830,9 +758,6 @@ _.functions(_);
-
-
-
### `_.groupBy(collection, callback [, thisArg])`
@@ -865,9 +790,6 @@ _.groupBy(['one', 'two', 'three'], 'length');
-
-
-
### `_.has(object, property)`
@@ -893,9 +815,6 @@ _.has({ 'a': 1, 'b': 2, 'c': 3 }, 'b');
-
-
-
### `_.identity(value)`
@@ -921,9 +840,6 @@ moe === _.identity(moe);
-
-
-
### `_.indexOf(array, value [, isSorted=false])`
@@ -950,9 +866,6 @@ _.indexOf([1, 2, 3], 2);
-
-
-
### `_.initial(array [, n, guard])`
@@ -979,9 +892,6 @@ _.initial([5, 4, 3, 2, 1]);
-
-
-
### `_.intersection([array1, array2, ...])`
@@ -1006,9 +916,6 @@ _.intersection([1, 2, 3], [101, 2, 1, 10], [2, 1]);
-
-
-
### `_.invoke(array, methodName [, arg1, arg2, ...])`
@@ -1035,9 +942,6 @@ _.invoke([[5, 1, 7], [3, 2, 1]], 'sort');
-
-
-
### `_.isArguments(value)`
@@ -1065,9 +969,6 @@ _.isArguments([1, 2, 3]);
-
-
-
### `_.isArray(value)`
@@ -1095,9 +996,6 @@ _.isArray([1, 2, 3]);
-
-
-
### `_.isBoolean(value)`
@@ -1122,9 +1020,6 @@ _.isBoolean(null);
-
-
-
### `_.isDate(value)`
@@ -1149,9 +1044,6 @@ _.isDate(new Date);
-
-
-
### `_.isElement(value)`
@@ -1176,9 +1068,6 @@ _.isElement(document.body);
-
-
-
### `_.isEmpty(value)`
@@ -1206,9 +1095,6 @@ _.isEmpty({});
-
-
-
### `_.isEqual(a, b [, stack])`
@@ -1241,9 +1127,6 @@ _.isEqual(moe, clone);
-
-
-
### `_.isFinite(value)`
@@ -1274,9 +1157,6 @@ _.isFinite(Infinity);
-
-
-
### `_.isFunction(value)`
@@ -1301,9 +1181,6 @@ _.isFunction(''.concat);
-
-
-
### `_.isNaN(value)`
@@ -1337,9 +1214,6 @@ _.isNaN(undefined);
-
-
-
### `_.isNull(value)`
@@ -1367,9 +1241,6 @@ _.isNull(undefined);
-
-
-
### `_.isNumber(value)`
@@ -1394,9 +1265,6 @@ _.isNumber(8.4 * 5;
-
-
-
### `_.isObject(value)`
@@ -1424,9 +1292,6 @@ _.isObject(1);
-
-
-
### `_.isRegExp(value)`
@@ -1451,9 +1316,6 @@ _.isRegExp(/moe/);
-
-
-
### `_.isString(value)`
@@ -1478,9 +1340,6 @@ _.isString('moe');
-
-
-
### `_.isUndefined(value)`
@@ -1505,9 +1364,6 @@ _.isUndefined(void 0);
-
-
-
### `_.keys(object)`
@@ -1532,9 +1388,6 @@ _.keys({ 'one': 1, 'two': 2, 'three': 3 });
-
-
-
### `_.last(array [, n, guard])`
@@ -1561,9 +1414,6 @@ _.last([5, 4, 3, 2, 1]);
-
-
-
### `_.lastIndexOf(array, value)`
@@ -1589,9 +1439,6 @@ _.lastIndexOf([1, 2, 3, 1, 2, 3], 2);
-
-
-
### `_.map(collection, callback [, thisArg])`
@@ -1621,9 +1468,6 @@ _.map({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { return num * 3; });
-
-
-
### `_.max(array [, callback, thisArg])`
@@ -1656,9 +1500,6 @@ _.max(stooges, function(stooge) { return stooge.age; });
-
-
-
### `_.memoize(func [, resolver])`
@@ -1685,9 +1526,6 @@ var fibonacci = _.memoize(function(n) {
-
-
-
### `_.min(array [, callback, thisArg])`
@@ -1714,9 +1552,6 @@ _.min([10, 5, 100, 2, 1000]);
-
-
-
### `_.mixin(object)`
@@ -1747,9 +1582,6 @@ _('larry').capitalize();
-
-
-
### `_.noConflict()`
@@ -1770,9 +1602,6 @@ var lodash = _.noConflict();
-
-
-
### `_.once(func)`
@@ -1799,9 +1628,6 @@ initialize();
-
-
-
### `_.partial(func [, arg1, arg2, ...])`
@@ -1829,9 +1655,6 @@ hi('moe');
-
-
-
### `_.pick(object [, prop1, prop2, ...])`
@@ -1857,9 +1680,6 @@ _.pick({ 'name': 'moe', 'age': 40, 'userid': 'moe1' }, 'name', 'age');
-
-
-
### `_.pluck(collection, property)`
@@ -1891,9 +1711,6 @@ _.pluck(stooges, 'name');
-
-
-
### `_.range([start=0], end [, step=1])`
@@ -1932,9 +1749,6 @@ _.range(0);
-
-
-
### `_.reduce(collection, callback [, accumulator, thisArg])`
@@ -1962,9 +1776,6 @@ var sum = _.reduce([1, 2, 3], function(memo, num) { return memo + num; });
-
-
-
### `_.reduceRight(collection, callback [, accumulator, thisArg])`
@@ -1993,9 +1804,6 @@ var flat = _.reduceRight(list, function(a, b) { return a.concat(b); }, []);
-
-
-
### `_.reject(collection, callback [, thisArg])`
@@ -2022,9 +1830,6 @@ var odds = _.reject([1, 2, 3, 4, 5, 6], function(num) { return num % 2 == 0; });
-
-
-
### `_.rest(array [, n, guard])`
@@ -2051,9 +1856,6 @@ _.rest([5, 4, 3, 2, 1]);
-
-
-
### `_.result(object, property)`
@@ -2089,9 +1891,6 @@ _.result(object, 'stuff');
-
-
-
### `_.shuffle(array)`
@@ -2116,9 +1915,6 @@ _.shuffle([1, 2, 3, 4, 5, 6]);
-
-
-
### `_.size(collection)`
@@ -2149,9 +1945,6 @@ _.size('curly');
-
-
-
### `_.some(collection, callback [, thisArg])`
@@ -2178,9 +1971,6 @@ _.some([null, 0, 'yes', false]);
-
-
-
### `_.sortBy(collection, callback [, thisArg])`
@@ -2210,9 +2000,6 @@ _.sortBy([1, 2, 3, 4, 5, 6], function(num) { return this.sin(num); }, Math);
-
-
-
### `_.sortedIndex(array, value [, callback])`
@@ -2239,9 +2026,6 @@ _.sortedIndex([10, 20, 30, 40, 50], 35);
-
-
-
### `_.tap(value, interceptor)`
@@ -2272,9 +2056,6 @@ _.chain([1,2,3,200])
-
-
-
### `_.template(text, data, options)`
@@ -2335,9 +2116,6 @@ _.template('<%= data.hasWith %>', { 'hasWith': 'no' }, { 'variable': 'data' });
-
-
-
### `_.throttle(func, wait)`
@@ -2363,9 +2141,6 @@ jQuery(window).on('scroll', throttled);
-
-
-
### `_.times(n, callback [, thisArg])`
@@ -2388,9 +2163,6 @@ _.times(3, function() { genie.grantWish(); });
-
-
-
### `_.toArray(collection)`
@@ -2415,9 +2187,6 @@ Converts the `collection`, into an array. Useful for converting the `arguments`
-
-
-
### `_.union([array1, array2, ...])`
@@ -2442,9 +2211,6 @@ _.union([1, 2, 3], [101, 2, 1, 10], [2, 1]);
-
-
-
### `_.uniq(array [, isSorted=false, callback])`
@@ -2471,9 +2237,6 @@ _.uniq([1, 2, 1, 3, 1, 4]);
-
-
-
### `_.uniqueId([prefix])`
@@ -2498,9 +2261,6 @@ _.uniqueId('contact_');
-
-
-
### `_.values(collection)`
@@ -2525,9 +2285,6 @@ _.values({ 'one': 1, 'two': 2, 'three': 3 });
-
-
-
### `_.without(array [, value1, value2, ...])`
@@ -2553,9 +2310,6 @@ _.without([1, 2, 1, 0, 3, 1, 4], 0, 1);
-
-
-
### `_.wrap(func, wrapper [, arg1, arg2, ...])`
@@ -2586,9 +2340,6 @@ hello();
-
-
-
### `_.zip([array1, array2, ...])`
@@ -2620,9 +2371,6 @@ _.zip(['moe', 'larry', 'curly'], [30, 40, 50], [true, false, false]);
## `_.prototype`
-
-
-
### `_.prototype.chain()`
@@ -2644,9 +2392,6 @@ _([1, 2, 3]).value();
-
-
-
### `_.prototype.value()`
@@ -2675,9 +2420,6 @@ _([1, 2, 3]).value();
## `_.templateSettings`
-
-
-
### `_.templateSettings`
@@ -2690,9 +2432,6 @@ _([1, 2, 3]).value();
-
-
-
### `_.templateSettings.escape`
@@ -2705,9 +2444,6 @@ _([1, 2, 3]).value();
-
-
-
### `_.templateSettings.evaluate`
@@ -2720,9 +2456,6 @@ _([1, 2, 3]).value();
-
-
-
### `_.templateSettings.interpolate`
@@ -2735,9 +2468,6 @@ _([1, 2, 3]).value();
-
-
-
### `_.templateSettings.variable`
diff --git a/vendor/benchmark.js b/vendor/benchmark.js
index 5ff44811e..f0306c034 160000
--- a/vendor/benchmark.js
+++ b/vendor/benchmark.js
@@ -1 +1 @@
-Subproject commit 5ff44811efe0834a08ae2db77eb55d7efc89d145
+Subproject commit f0306c03451a84b85b313410f3881b36bc935f39
diff --git a/vendor/docdown b/vendor/docdown
index 5448a5837..87466c279 160000
--- a/vendor/docdown
+++ b/vendor/docdown
@@ -1 +1 @@
-Subproject commit 5448a5837d261262091c908553354ffac78f3fc8
+Subproject commit 87466c279a5424127566555a544fc9eaf5dc8670