mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-02-12 03:47:50 +00:00
Update vendor.
Former-commit-id: 9f433cc31e3c70dddba332346c7d053539f54ab5
This commit is contained in:
2
vendor/underscore/test/arrays.js
vendored
2
vendor/underscore/test/arrays.js
vendored
@@ -144,7 +144,6 @@ $(document).ready(function() {
|
|||||||
equal(_.indexOf(numbers, 2), 1, 'can compute indexOf, even without the native function');
|
equal(_.indexOf(numbers, 2), 1, 'can compute indexOf, even without the native function');
|
||||||
var result = (function(){ return _.indexOf(arguments, 2); })(1, 2, 3);
|
var result = (function(){ return _.indexOf(arguments, 2); })(1, 2, 3);
|
||||||
equal(result, 1, 'works on an arguments object');
|
equal(result, 1, 'works on an arguments object');
|
||||||
equal(_.indexOf(null, 2), -1, 'handles nulls properly');
|
|
||||||
|
|
||||||
var numbers = [10, 20, 30, 40, 50], num = 35;
|
var numbers = [10, 20, 30, 40, 50], num = 35;
|
||||||
var index = _.indexOf(numbers, num, true);
|
var index = _.indexOf(numbers, num, true);
|
||||||
@@ -170,7 +169,6 @@ $(document).ready(function() {
|
|||||||
equal(_.lastIndexOf(numbers, 0), 8, 'lastIndexOf the other element');
|
equal(_.lastIndexOf(numbers, 0), 8, 'lastIndexOf the other element');
|
||||||
var result = (function(){ return _.lastIndexOf(arguments, 1); })(1, 0, 1, 0, 0, 1, 0, 0, 0);
|
var result = (function(){ return _.lastIndexOf(arguments, 1); })(1, 0, 1, 0, 0, 1, 0, 0, 0);
|
||||||
equal(result, 5, 'works on an arguments object');
|
equal(result, 5, 'works on an arguments object');
|
||||||
equal(_.indexOf(null, 2), -1, 'handles nulls properly');
|
|
||||||
|
|
||||||
numbers = [1, 2, 3, 1, 2, 3, 1, 2, 3];
|
numbers = [1, 2, 3, 1, 2, 3, 1, 2, 3];
|
||||||
index = _.lastIndexOf(numbers, 2, 2);
|
index = _.lastIndexOf(numbers, 2, 2);
|
||||||
|
|||||||
31
vendor/underscore/test/collections.js
vendored
31
vendor/underscore/test/collections.js
vendored
@@ -25,10 +25,6 @@ $(document).ready(function() {
|
|||||||
answer = null;
|
answer = null;
|
||||||
_.each([1, 2, 3], function(num, index, arr){ if (_.include(arr, num)) answer = true; });
|
_.each([1, 2, 3], function(num, index, arr){ if (_.include(arr, num)) answer = true; });
|
||||||
ok(answer, 'can reference the original collection from inside the iterator');
|
ok(answer, 'can reference the original collection from inside the iterator');
|
||||||
|
|
||||||
answers = 0;
|
|
||||||
_.each(null, function(){ ++answers; });
|
|
||||||
equal(answers, 0, 'handles a null properly');
|
|
||||||
});
|
});
|
||||||
|
|
||||||
test('map', function() {
|
test('map', function() {
|
||||||
@@ -54,9 +50,6 @@ $(document).ready(function() {
|
|||||||
|
|
||||||
var ids = _.map(document.images, function(n){ return n.id; });
|
var ids = _.map(document.images, function(n){ return n.id; });
|
||||||
ok(ids[0] == 'chart_image', 'can use collection methods on HTMLCollections');
|
ok(ids[0] == 'chart_image', 'can use collection methods on HTMLCollections');
|
||||||
|
|
||||||
var ifnull = _.map(null, function(){});
|
|
||||||
ok(_.isArray(ifnull) && ifnull.length === 0, 'handles a null properly');
|
|
||||||
});
|
});
|
||||||
|
|
||||||
test('reduce', function() {
|
test('reduce', function() {
|
||||||
@@ -76,15 +69,6 @@ $(document).ready(function() {
|
|||||||
var sum = _.reduce([1, 2, 3], function(sum, num){ return sum + num; });
|
var sum = _.reduce([1, 2, 3], function(sum, num){ return sum + num; });
|
||||||
equal(sum, 6, 'default initial value');
|
equal(sum, 6, 'default initial value');
|
||||||
|
|
||||||
var ifnull;
|
|
||||||
try {
|
|
||||||
_.reduce(null, function(){});
|
|
||||||
} catch (ex) {
|
|
||||||
ifnull = ex;
|
|
||||||
}
|
|
||||||
ok(ifnull instanceof TypeError, 'handles a null (without inital value) properly');
|
|
||||||
|
|
||||||
ok(_.reduce(null, function(){}, 138) === 138, 'handles a null (with initial value) properly');
|
|
||||||
equal(_.reduce([], function(){}, undefined), undefined, 'undefined can be passed as a special case');
|
equal(_.reduce([], function(){}, undefined), undefined, 'undefined can be passed as a special case');
|
||||||
raises(function() { _.reduce([], function(){}); }, TypeError, 'throws an error for empty arrays with no initial value');
|
raises(function() { _.reduce([], function(){}); }, TypeError, 'throws an error for empty arrays with no initial value');
|
||||||
});
|
});
|
||||||
@@ -99,19 +83,9 @@ $(document).ready(function() {
|
|||||||
var list = _.foldr(["foo", "bar", "baz"], function(memo, str){ return memo + str; });
|
var list = _.foldr(["foo", "bar", "baz"], function(memo, str){ return memo + str; });
|
||||||
equal(list, 'bazbarfoo', 'default initial value');
|
equal(list, 'bazbarfoo', 'default initial value');
|
||||||
|
|
||||||
var ifnull;
|
|
||||||
try {
|
|
||||||
_.reduceRight(null, function(){});
|
|
||||||
} catch (ex) {
|
|
||||||
ifnull = ex;
|
|
||||||
}
|
|
||||||
ok(ifnull instanceof TypeError, 'handles a null (without inital value) properly');
|
|
||||||
|
|
||||||
var sum = _.reduceRight({a: 1, b: 2, c: 3}, function(sum, num){ return sum + num; });
|
var sum = _.reduceRight({a: 1, b: 2, c: 3}, function(sum, num){ return sum + num; });
|
||||||
equal(sum, 6, 'default initial value on object');
|
equal(sum, 6, 'default initial value on object');
|
||||||
|
|
||||||
ok(_.reduceRight(null, function(){}, 138) === 138, 'handles a null (with initial value) properly');
|
|
||||||
|
|
||||||
equal(_.reduceRight([], function(){}, undefined), undefined, 'undefined can be passed as a special case');
|
equal(_.reduceRight([], function(){}, undefined), undefined, 'undefined can be passed as a special case');
|
||||||
raises(function() { _.reduceRight([], function(){}); }, TypeError, 'throws an error for empty arrays with no initial value');
|
raises(function() { _.reduceRight([], function(){}); }, TypeError, 'throws an error for empty arrays with no initial value');
|
||||||
|
|
||||||
@@ -336,6 +310,8 @@ $(document).ready(function() {
|
|||||||
equal(grouped.constructor.length, 1);
|
equal(grouped.constructor.length, 1);
|
||||||
equal(grouped.hasOwnProperty.length, 2);
|
equal(grouped.hasOwnProperty.length, 2);
|
||||||
|
|
||||||
|
var array = [{}];
|
||||||
|
_.groupBy(array, function(value, index, obj){ ok(obj === array); });
|
||||||
});
|
});
|
||||||
|
|
||||||
test('countBy', function() {
|
test('countBy', function() {
|
||||||
@@ -357,6 +333,9 @@ $(document).ready(function() {
|
|||||||
});
|
});
|
||||||
equal(grouped.constructor, 1);
|
equal(grouped.constructor, 1);
|
||||||
equal(grouped.hasOwnProperty, 2);
|
equal(grouped.hasOwnProperty, 2);
|
||||||
|
|
||||||
|
var array = [{}];
|
||||||
|
_.countBy(array, function(value, index, obj){ ok(obj === array); });
|
||||||
});
|
});
|
||||||
|
|
||||||
test('sortedIndex', function() {
|
test('sortedIndex', function() {
|
||||||
|
|||||||
16
vendor/underscore/underscore-min.js
vendored
16
vendor/underscore/underscore-min.js
vendored
File diff suppressed because one or more lines are too long
22
vendor/underscore/underscore.js
vendored
22
vendor/underscore/underscore.js
vendored
@@ -1,10 +1,7 @@
|
|||||||
// Underscore.js 1.3.3
|
// Underscore.js 1.4.0
|
||||||
|
// http://underscorejs.org
|
||||||
// (c) 2009-2012 Jeremy Ashkenas, DocumentCloud Inc.
|
// (c) 2009-2012 Jeremy Ashkenas, DocumentCloud Inc.
|
||||||
// Underscore may be freely distributed under the MIT license.
|
// Underscore may be freely distributed under the MIT license.
|
||||||
// Portions of Underscore are inspired or borrowed from Prototype,
|
|
||||||
// Oliver Steele's Functional, and John Resig's Micro-Templating.
|
|
||||||
// For all details and documentation:
|
|
||||||
// http://documentcloud.github.com/underscore
|
|
||||||
|
|
||||||
(function() {
|
(function() {
|
||||||
|
|
||||||
@@ -68,7 +65,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Current version.
|
// Current version.
|
||||||
_.VERSION = '1.3.3';
|
_.VERSION = '1.4.0';
|
||||||
|
|
||||||
// Collection Functions
|
// Collection Functions
|
||||||
// --------------------
|
// --------------------
|
||||||
@@ -77,7 +74,6 @@
|
|||||||
// Handles objects with the built-in `forEach`, arrays, and raw objects.
|
// Handles objects with the built-in `forEach`, arrays, and raw objects.
|
||||||
// Delegates to **ECMAScript 5**'s native `forEach` if available.
|
// Delegates to **ECMAScript 5**'s native `forEach` if available.
|
||||||
var each = _.each = _.forEach = function(obj, iterator, context) {
|
var each = _.each = _.forEach = function(obj, iterator, context) {
|
||||||
if (obj == null) return;
|
|
||||||
if (nativeForEach && obj.forEach === nativeForEach) {
|
if (nativeForEach && obj.forEach === nativeForEach) {
|
||||||
obj.forEach(iterator, context);
|
obj.forEach(iterator, context);
|
||||||
} else if (obj.length === +obj.length) {
|
} else if (obj.length === +obj.length) {
|
||||||
@@ -97,7 +93,6 @@
|
|||||||
// Delegates to **ECMAScript 5**'s native `map` if available.
|
// Delegates to **ECMAScript 5**'s native `map` if available.
|
||||||
_.map = _.collect = function(obj, iterator, context) {
|
_.map = _.collect = function(obj, iterator, context) {
|
||||||
var results = [];
|
var results = [];
|
||||||
if (obj == null) return results;
|
|
||||||
if (nativeMap && obj.map === nativeMap) return obj.map(iterator, context);
|
if (nativeMap && obj.map === nativeMap) return obj.map(iterator, context);
|
||||||
each(obj, function(value, index, list) {
|
each(obj, function(value, index, list) {
|
||||||
results[results.length] = iterator.call(context, value, index, list);
|
results[results.length] = iterator.call(context, value, index, list);
|
||||||
@@ -109,7 +104,6 @@
|
|||||||
// or `foldl`. Delegates to **ECMAScript 5**'s native `reduce` if available.
|
// or `foldl`. Delegates to **ECMAScript 5**'s native `reduce` if available.
|
||||||
_.reduce = _.foldl = _.inject = function(obj, iterator, memo, context) {
|
_.reduce = _.foldl = _.inject = function(obj, iterator, memo, context) {
|
||||||
var initial = arguments.length > 2;
|
var initial = arguments.length > 2;
|
||||||
if (obj == null) obj = [];
|
|
||||||
if (nativeReduce && obj.reduce === nativeReduce) {
|
if (nativeReduce && obj.reduce === nativeReduce) {
|
||||||
if (context) iterator = _.bind(iterator, context);
|
if (context) iterator = _.bind(iterator, context);
|
||||||
return initial ? obj.reduce(iterator, memo) : obj.reduce(iterator);
|
return initial ? obj.reduce(iterator, memo) : obj.reduce(iterator);
|
||||||
@@ -130,7 +124,6 @@
|
|||||||
// Delegates to **ECMAScript 5**'s native `reduceRight` if available.
|
// Delegates to **ECMAScript 5**'s native `reduceRight` if available.
|
||||||
_.reduceRight = _.foldr = function(obj, iterator, memo, context) {
|
_.reduceRight = _.foldr = function(obj, iterator, memo, context) {
|
||||||
var initial = arguments.length > 2;
|
var initial = arguments.length > 2;
|
||||||
if (obj == null) obj = [];
|
|
||||||
if (nativeReduceRight && obj.reduceRight === nativeReduceRight) {
|
if (nativeReduceRight && obj.reduceRight === nativeReduceRight) {
|
||||||
if (context) iterator = _.bind(iterator, context);
|
if (context) iterator = _.bind(iterator, context);
|
||||||
return arguments.length > 2 ? obj.reduceRight(iterator, memo) : obj.reduceRight(iterator);
|
return arguments.length > 2 ? obj.reduceRight(iterator, memo) : obj.reduceRight(iterator);
|
||||||
@@ -170,7 +163,6 @@
|
|||||||
// Aliased as `select`.
|
// Aliased as `select`.
|
||||||
_.filter = _.select = function(obj, iterator, context) {
|
_.filter = _.select = function(obj, iterator, context) {
|
||||||
var results = [];
|
var results = [];
|
||||||
if (obj == null) return results;
|
|
||||||
if (nativeFilter && obj.filter === nativeFilter) return obj.filter(iterator, context);
|
if (nativeFilter && obj.filter === nativeFilter) return obj.filter(iterator, context);
|
||||||
each(obj, function(value, index, list) {
|
each(obj, function(value, index, list) {
|
||||||
if (iterator.call(context, value, index, list)) results[results.length] = value;
|
if (iterator.call(context, value, index, list)) results[results.length] = value;
|
||||||
@@ -181,7 +173,6 @@
|
|||||||
// Return all the elements for which a truth test fails.
|
// Return all the elements for which a truth test fails.
|
||||||
_.reject = function(obj, iterator, context) {
|
_.reject = function(obj, iterator, context) {
|
||||||
var results = [];
|
var results = [];
|
||||||
if (obj == null) return results;
|
|
||||||
each(obj, function(value, index, list) {
|
each(obj, function(value, index, list) {
|
||||||
if (!iterator.call(context, value, index, list)) results[results.length] = value;
|
if (!iterator.call(context, value, index, list)) results[results.length] = value;
|
||||||
});
|
});
|
||||||
@@ -194,7 +185,6 @@
|
|||||||
_.every = _.all = function(obj, iterator, context) {
|
_.every = _.all = function(obj, iterator, context) {
|
||||||
iterator || (iterator = _.identity);
|
iterator || (iterator = _.identity);
|
||||||
var result = true;
|
var result = true;
|
||||||
if (obj == null) return result;
|
|
||||||
if (nativeEvery && obj.every === nativeEvery) return obj.every(iterator, context);
|
if (nativeEvery && obj.every === nativeEvery) return obj.every(iterator, context);
|
||||||
each(obj, function(value, index, list) {
|
each(obj, function(value, index, list) {
|
||||||
if (!(result = result && iterator.call(context, value, index, list))) return breaker;
|
if (!(result = result && iterator.call(context, value, index, list))) return breaker;
|
||||||
@@ -208,7 +198,6 @@
|
|||||||
var any = _.some = _.any = function(obj, iterator, context) {
|
var any = _.some = _.any = function(obj, iterator, context) {
|
||||||
iterator || (iterator = _.identity);
|
iterator || (iterator = _.identity);
|
||||||
var result = false;
|
var result = false;
|
||||||
if (obj == null) return result;
|
|
||||||
if (nativeSome && obj.some === nativeSome) return obj.some(iterator, context);
|
if (nativeSome && obj.some === nativeSome) return obj.some(iterator, context);
|
||||||
each(obj, function(value, index, list) {
|
each(obj, function(value, index, list) {
|
||||||
if (result || (result = iterator.call(context, value, index, list))) return breaker;
|
if (result || (result = iterator.call(context, value, index, list))) return breaker;
|
||||||
@@ -220,7 +209,6 @@
|
|||||||
// Aliased as `include`.
|
// Aliased as `include`.
|
||||||
_.contains = _.include = function(obj, target) {
|
_.contains = _.include = function(obj, target) {
|
||||||
var found = false;
|
var found = false;
|
||||||
if (obj == null) return found;
|
|
||||||
if (nativeIndexOf && obj.indexOf === nativeIndexOf) return obj.indexOf(target) != -1;
|
if (nativeIndexOf && obj.indexOf === nativeIndexOf) return obj.indexOf(target) != -1;
|
||||||
found = any(obj, function(value) {
|
found = any(obj, function(value) {
|
||||||
return value === target;
|
return value === target;
|
||||||
@@ -326,7 +314,7 @@
|
|||||||
var result = {};
|
var result = {};
|
||||||
var iterator = lookupIterator(value);
|
var iterator = lookupIterator(value);
|
||||||
each(obj, function(value, index) {
|
each(obj, function(value, index) {
|
||||||
var key = iterator.call(context, value, index);
|
var key = iterator.call(context, value, index, obj);
|
||||||
behavior(result, key, value);
|
behavior(result, key, value);
|
||||||
});
|
});
|
||||||
return result;
|
return result;
|
||||||
@@ -512,7 +500,6 @@
|
|||||||
// If the array is large and already in sort order, pass `true`
|
// If the array is large and already in sort order, pass `true`
|
||||||
// for **isSorted** to use binary search.
|
// for **isSorted** to use binary search.
|
||||||
_.indexOf = function(array, item, isSorted) {
|
_.indexOf = function(array, item, isSorted) {
|
||||||
if (array == null) return -1;
|
|
||||||
var i = 0, l = array.length;
|
var i = 0, l = array.length;
|
||||||
if (isSorted) {
|
if (isSorted) {
|
||||||
if (typeof isSorted == 'number') {
|
if (typeof isSorted == 'number') {
|
||||||
@@ -529,7 +516,6 @@
|
|||||||
|
|
||||||
// Delegates to **ECMAScript 5**'s native `lastIndexOf` if available.
|
// Delegates to **ECMAScript 5**'s native `lastIndexOf` if available.
|
||||||
_.lastIndexOf = function(array, item, fromIndex) {
|
_.lastIndexOf = function(array, item, fromIndex) {
|
||||||
if (array == null) return -1;
|
|
||||||
if (nativeLastIndexOf && array.lastIndexOf === nativeLastIndexOf) return array.lastIndexOf(item, fromIndex);
|
if (nativeLastIndexOf && array.lastIndexOf === nativeLastIndexOf) return array.lastIndexOf(item, fromIndex);
|
||||||
var i = (fromIndex != null ? fromIndex : array.length);
|
var i = (fromIndex != null ? fromIndex : array.length);
|
||||||
while (i--) if (array[i] === item) return i;
|
while (i--) if (array[i] === item) return i;
|
||||||
|
|||||||
Reference in New Issue
Block a user