From aaa24df8a35eaea525e2b634cc5d11a789546024 Mon Sep 17 00:00:00 2001 From: XhmikosR Date: Tue, 9 Oct 2012 11:16:32 +0300 Subject: [PATCH] update Underscore.js to v1.4.2 --- .../{underscore-1.4.1.js => underscore-1.4.2.js} | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) rename src/_h5ai/client/js/lib/{underscore-1.4.1.js => underscore-1.4.2.js} (98%) diff --git a/src/_h5ai/client/js/lib/underscore-1.4.1.js b/src/_h5ai/client/js/lib/underscore-1.4.2.js similarity index 98% rename from src/_h5ai/client/js/lib/underscore-1.4.1.js rename to src/_h5ai/client/js/lib/underscore-1.4.2.js index 2ab97e90..1ebe2671 100644 --- a/src/_h5ai/client/js/lib/underscore-1.4.1.js +++ b/src/_h5ai/client/js/lib/underscore-1.4.2.js @@ -1,4 +1,4 @@ -// Underscore.js 1.4.1 +// Underscore.js 1.4.2 // http://underscorejs.org // (c) 2009-2012 Jeremy Ashkenas, DocumentCloud Inc. // Underscore may be freely distributed under the MIT license. @@ -65,7 +65,7 @@ } // Current version. - _.VERSION = '1.4.1'; + _.VERSION = '1.4.2'; // Collection Functions // -------------------- @@ -74,6 +74,7 @@ // Handles objects with the built-in `forEach`, arrays, and raw objects. // Delegates to **ECMAScript 5**'s native `forEach` if available. var each = _.each = _.forEach = function(obj, iterator, context) { + if (obj == null) return; if (nativeForEach && obj.forEach === nativeForEach) { obj.forEach(iterator, context); } else if (obj.length === +obj.length) { @@ -93,6 +94,7 @@ // Delegates to **ECMAScript 5**'s native `map` if available. _.map = _.collect = function(obj, iterator, context) { var results = []; + if (obj == null) return results; if (nativeMap && obj.map === nativeMap) return obj.map(iterator, context); each(obj, function(value, index, list) { results[results.length] = iterator.call(context, value, index, list); @@ -104,6 +106,7 @@ // or `foldl`. Delegates to **ECMAScript 5**'s native `reduce` if available. _.reduce = _.foldl = _.inject = function(obj, iterator, memo, context) { var initial = arguments.length > 2; + if (obj == null) obj = []; if (nativeReduce && obj.reduce === nativeReduce) { if (context) iterator = _.bind(iterator, context); return initial ? obj.reduce(iterator, memo) : obj.reduce(iterator); @@ -124,6 +127,7 @@ // Delegates to **ECMAScript 5**'s native `reduceRight` if available. _.reduceRight = _.foldr = function(obj, iterator, memo, context) { var initial = arguments.length > 2; + if (obj == null) obj = []; if (nativeReduceRight && obj.reduceRight === nativeReduceRight) { if (context) iterator = _.bind(iterator, context); return arguments.length > 2 ? obj.reduceRight(iterator, memo) : obj.reduceRight(iterator); @@ -163,6 +167,7 @@ // Aliased as `select`. _.filter = _.select = function(obj, iterator, context) { var results = []; + if (obj == null) return results; if (nativeFilter && obj.filter === nativeFilter) return obj.filter(iterator, context); each(obj, function(value, index, list) { if (iterator.call(context, value, index, list)) results[results.length] = value; @@ -173,6 +178,7 @@ // Return all the elements for which a truth test fails. _.reject = function(obj, iterator, context) { var results = []; + if (obj == null) return results; each(obj, function(value, index, list) { if (!iterator.call(context, value, index, list)) results[results.length] = value; }); @@ -185,6 +191,7 @@ _.every = _.all = function(obj, iterator, context) { iterator || (iterator = _.identity); var result = true; + if (obj == null) return result; if (nativeEvery && obj.every === nativeEvery) return obj.every(iterator, context); each(obj, function(value, index, list) { if (!(result = result && iterator.call(context, value, index, list))) return breaker; @@ -198,6 +205,7 @@ var any = _.some = _.any = function(obj, iterator, context) { iterator || (iterator = _.identity); var result = false; + if (obj == null) return result; if (nativeSome && obj.some === nativeSome) return obj.some(iterator, context); each(obj, function(value, index, list) { if (result || (result = iterator.call(context, value, index, list))) return breaker; @@ -209,6 +217,7 @@ // Aliased as `include`. _.contains = _.include = function(obj, target) { var found = false; + if (obj == null) return found; if (nativeIndexOf && obj.indexOf === nativeIndexOf) return obj.indexOf(target) != -1; found = any(obj, function(value) { return value === target; @@ -500,6 +509,7 @@ // If the array is large and already in sort order, pass `true` // for **isSorted** to use binary search. _.indexOf = function(array, item, isSorted) { + if (array == null) return -1; var i = 0, l = array.length; if (isSorted) { if (typeof isSorted == 'number') { @@ -516,6 +526,7 @@ // Delegates to **ECMAScript 5**'s native `lastIndexOf` if available. _.lastIndexOf = function(array, item, from) { + if (array == null) return -1; var hasIndex = from != null; if (nativeLastIndexOf && array.lastIndexOf === nativeLastIndexOf) { return hasIndex ? array.lastIndexOf(item, from) : array.lastIndexOf(item);