diff --git a/lodash.js b/lodash.js index b2739b37a..0da9e2078 100644 --- a/lodash.js +++ b/lodash.js @@ -627,7 +627,7 @@ '? callback(result, collection[index], index, collection)\n' + ': (initial = true, collection[index])' } - }) + }); /** * The right-associative version of `_.reduce`. The `callback` is bound to the @@ -774,7 +774,7 @@ * // => [5, 4, 6, 3, 1, 2] */ function sortBy(collection, callback, thisArg) { - if (!isFunction(callback)) { + if (toString.call(callback) != funcClass) { var prop = callback; callback = function(collection) { return collection[prop]; }; } else if (thisArg) { @@ -881,7 +881,7 @@ if (!collection) { return []; } - if (isFunction(collection.toArray)) { + if (toString.call(collection.toArray) == funcClass) { return collection.toArray(); } var length = collection.length; @@ -1129,8 +1129,8 @@ function invoke(array, methodName) { var args = slice.call(arguments, 2), index = -1, + length = array.length, isFunc = toString.call(methodName) == funcClass, - length = array.length; result = []; while (++index < length) { @@ -1346,9 +1346,9 @@ * // => [2, 3, 4] */ function without(array) { - var index = -1, + var excluded = slice.call(arguments, 1), + index = -1, length = array.length, - excluded = slice.call(arguments, 1), result = []; while (++index < length) { @@ -1949,10 +1949,10 @@ b = b._wrapped; } // invoke a custom `isEqual` method if one is provided - if (a.isEqual && isFunction(a.isEqual)) { + if (a.isEqual && toString.call(a.isEqual) == funcClass) { return a.isEqual(b); } - if (b.isEqual && isFunction(b.isEqual)) { + if (b.isEqual && toString.call(b.isEqual) == funcClass) { return b.isEqual(a); } // compare [[Class]] names @@ -2437,7 +2437,7 @@ return null; } var value = object[property]; - return isFunction(value) ? object[property]() : value; + return toString.call(value) == funcClass ? object[property]() : value; } /** diff --git a/lodash.min.js b/lodash.min.js index 61eebadc8..3958b481d 100644 --- a/lodash.min.js +++ b/lodash.min.js @@ -2,25 +2,26 @@ Lo-Dash 0.1.0 github.com/bestiejs/lodash/blob/master/LICENSE.txt Underscore.js 1.3.3 github.com/documentcloud/underscore/blob/master/LICENSE */ -;(function(q,h){"use strict";var m=!0,o=!1;function N(a){return"[object Arguments]"==j.call(a)}function k(a){return new p(a)}function p(a){this.m=a}function g(){for(var a,b=-1,c={},d={},e={},f=["c","i","f"];++b>1,(c?c(a[d]):a[d])f&&(b=m);++es(g,d))g.push(d),i.push(a[e]);return i}function t(a,b){var c=l.call(arguments,2),d=c.length;return function(){c.length= -d;F.apply(c,arguments);return a.apply(b,c)}}function ia(a,b,c){var d;return function(){var e=arguments,f=this;c&&!d&&a.apply(f,e);ta(d);d=G(function(){d=h;c||a.apply(f,e)},b)}}function V(a,b,c){c||(c=[]);if(a===b)return 0!==a||1/a==1/b;if(a==h||b==h)return a===b;a.o&&(a=a.m);b.o&&(b=b.m);if(a.isEqual&&u(a.isEqual))return a.isEqual(b);if(b.isEqual&&u(b.isEqual))return b.isEqual(a);var d=j.call(a);if(d!=j.call(b))return o;switch(d){case E:return a==""+b;case H:return a!=+a?b!=+b:0==a?1/a==1/b:a==+b; -case ja:case ka:return+a==+b;case la:return a.source==b.source&&a.global==b.global&&a.multiline==b.multiline&&a.ignoreCase==b.ignoreCase}if("object"!=typeof a||"object"!=typeof b)return o;for(var e=c.length;e--;)if(c[e]==a)return m;var e=m,f=0;c.push(a);if(d==C){if(f=a.length,e=f==b.length)for(;f--&&(e=f in a==f in b&&V(a[f],b[f],c)););}else{if("constructor"in a!="constructor"in b||a.constructor!=b.constructor)return o;for(var i in a)if(r.call(a,i)&&(f++,!(e=r.call(b,i)&&V(a[i],b[i],c))))break;if(e){for(i in b)if(r.call(b, -i)&&!f--)break;e=!f}}c.pop();return e}function u(a){return j.call(a)==O}function ba(a){return a}function ma(a){v(I(a),function(b){var c=k[b]=a[b];k.prototype[b]=function(){var a=[this.m];F.apply(a,arguments);a=c.apply(k,a);return this.o?(new p(a)).chain():a}})}function J(a,b){if(a==h)return null;var c=a[b];return u(c)?a[b]():c}var z={"\\":"\\","'":"'",r:"\r",n:"\n",t:"\t",u2028:"\u2028",u2029:"\u2029"};(function(){for(var a in z)z[z[a]]=a})();var W="object"==typeof exports&&exports&&("object"==typeof global&& -global&&global==global.global&&(q=global),exports),ua=0,va=q._,wa=/\\|'|\r|\n|\t|\u2028|\u2029/g,X=/.^/,sa=/\\(\\|'|r|n|t|u2028|u2029)/g,C="[object Array]",ja="[object Boolean]",ka="[object Date]",O="[object Function]",H="[object Number]",la="[object RegExp]",E="[object String]",A=Array.prototype,K=Object.prototype,y=A.concat,r=K.hasOwnProperty,F=A.push,l=A.slice,j=K.toString,xa=q.isFinite,K=Object.keys,ta=q.clearTimeout,G=q.setTimeout,w={g:"I",f:"if(!f(h[p],p,h))return!B"},Y={a:"x",g:"x",k:"for(var D,j=1,w=arguments.length;j=i)i=k,B=h[p]"},D=Array.isArray||function(a){return j.call(a)==C},ca=g({a:"K",h:"b",g:"I",k:"var g=H.call(K);if(g==d||g==E)return!K.length", -f:"return l"}),na=g({a:"h,F",g:"l",f:"if(h[p]===F)return I"}),U=g(n,w),S=g(n,B),oa=g(n,{f:"if(f(h[p],p,h))return h[p]"}),v=g(n),ya=g(n,{g:"{}",k:"var z,v=H.call(f)==m;if(v&&G)f=e(f,G)",f:"z=v?f(h[p],p,h):h[p][f];(B[z]||(B[z]=[])).push(h[p])"}),$=g(n,Z),pa=g(n,x),x=g(n,x,{k:x.k.replace("-","").replace("max","min"),f:x.f.replace(">=","<")}),L=g(Z,{a:"h,A",f:{b:"B[p]=h[p][A]",j:"B.push(h[p][A])"}}),aa=g({a:"h,f,a,G",g:"a",k:"var s=arguments.length>2;if(G)f=e(f,G)",c:{b:"if(!s)B=h[++p]"},f:{b:"B=f(B,h[p],p,h)", -j:"B=s?f(B,h[p],p,h):(s=I,h[p])"}}),B=g(n,B,{f:"!"+B.f}),w=g(n,w,{g:"l",f:w.f.replace("!","")}),qa=g(Z,{a:"h",f:{b:"B[p]=h[p]",j:"B.push(h[p])"}}),ra=g(Y,{f:"if(x[p]==J)"+Y.f}),M=g(Y),I=g({a:"x",g:"[]",l:o,f:"if(H.call(x[p])==m)B.push(p)",d:"B.sort()"});N(arguments)||(N=function(a){return!(!a||!r.call(a,"callee"))});var Q=K||g({a:"x",e:"if(x!==Object(x))throw TypeError()",g:"[]",f:"B.push(p)"});M(k,{VERSION:"0.1.0",templateSettings:{escape:/<%-([\s\S]+?)%>/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g}, -after:function(a,b){return 1>a?b():function(){if(1>--a)return b.apply(this,arguments)}},bind:t,bindAll:function(a){var b=arguments,c=1;1==b.length&&(c=0,b=I(a));for(var d=b.length;cs(e,a[b])&&d.push(a[b]);return d},escape:function(a){return(a+"").replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g, -"'").replace(/\//g,"/")},every:U,extend:M,filter:S,find:oa,first:R,flatten:fa,forEach:v,functions:I,groupBy:ya,has:function(a,b){return r.call(a,b)},identity:ba,indexOf:s,initial:function(a,b,c){return l.call(a,0,-(b==h||c?1:b))},intersection:ga,invoke:function(a,b){var c=l.call(arguments,2),d=-1,e=j.call(b)==O,f=a.length;for(J=[];++darguments.length&&(b=a||0,a=0);for(var d=-1,e=Math.max(Math.ceil((b-a)/c),0),f=Array(e);++dd?1:0}),"b")},sortedIndex:ea,tap:function(a,b){b(a);return a},template:function(a,b,c){function d(a){return e.call(this,a,k)}c=ra(c||{},k.templateSettings);a="__p+='"+a.replace(wa,function(a){return"\\"+z[a]}).replace(c.escape||X,function(a,b){return"'+((__t=("+P(b)+"))==null?'':_['escape'](__t))+'"}).replace(c.interpolate||X,function(a,b){return"'+((__t=("+P(b)+"))==null?'':__t)+'"}).replace(c.evaluate|| -X,function(a,b){return"';"+P(b)+";__p+='"})+"';\n";c.variable||(a="with(object||{}){"+a+"}");var a='var __t,__j=Array.prototype.join,__p="";function print(){__p+=__j.call(arguments,"")}'+a+"return __p",e=Function(c.variable||"object","_",a);if(b)return e(b,k);d.source="function("+(c.variable||"object")+"){"+a+"}";return d},throttle:function(a,b){var c,d,e,f,g,j,k=ia(function(){d=g=o},b);return function(){c=arguments;f=this;j||(j=G(function(){j=h;d&&a.apply(f,c);k()},b));g?d=m:e=a.apply(f,c);k();g= -m;return e}},times:function(a,b,c){c&&(b=t(b,c));for(c=0;cs(b,c[a])&&b.push(c[a]);return b},uniq:T,uniqueId:function(a){var b=ua++;return a?a+b:b},values:qa,without:function(a){for(var b=-1,c=a.length,d=l.call(arguments,1),e=[];++bs(d,a[b])&&e.push(a[b]);return e},wrap:function(a,b){return function(){var c= -[a];F.apply(c,arguments);return b.apply(this,c)}},zip:function(){for(var a=-1,b=pa(L(arguments,"length")),c=Array(b);++a>1,(c?c(a[d]):a[d])f&&(b=m);++et(g,d))g.push(d),i.push(a[e]);return i}function u(a,b){var c=l.call(arguments,2),d=c.length;return function(){c.length= +d;F.apply(c,arguments);return a.apply(b,c)}}function ga(a,b,c){var d;return function(){var e=arguments,f=this;c&&!d&&a.apply(f,e);ra(d);d=G(function(){d=j;c||a.apply(f,e)},b)}}function T(a,b,c){c||(c=[]);if(a===b)return 0!==a||1/a==1/b;if(a==j||b==j)return a===b;a.o&&(a=a.m);b.o&&(b=b.m);if(a.isEqual&&h.call(a.isEqual)==q)return a.isEqual(b);if(b.isEqual&&h.call(b.isEqual)==q)return b.isEqual(a);var d=h.call(a);if(d!=h.call(b))return o;switch(d){case E:return a==""+b;case H:return a!=+a?b!=+b:0== +a?1/a==1/b:a==+b;case ha:case ia:return+a==+b;case ja:return a.source==b.source&&a.global==b.global&&a.multiline==b.multiline&&a.ignoreCase==b.ignoreCase}if("object"!=typeof a||"object"!=typeof b)return o;for(var e=c.length;e--;)if(c[e]==a)return m;var e=m,f=0;c.push(a);if(d==C){if(f=a.length,e=f==b.length)for(;f--&&(e=f in a==f in b&&T(a[f],b[f],c)););}else{if("constructor"in a!="constructor"in b||a.constructor!=b.constructor)return o;for(var i in a)if(s.call(a,i)&&(f++,!(e=s.call(b,i)&&T(a[i],b[i], +c))))break;if(e){for(i in b)if(s.call(b,i)&&!f--)break;e=!f}}c.pop();return e}function $(a){return a}function ka(a){v(I(a),function(b){var c=k[b]=a[b];k.prototype[b]=function(){var a=[this.m];F.apply(a,arguments);a=c.apply(k,a);return this.o?(new p(a)).chain():a}})}var z={"\\":"\\","'":"'",r:"\r",n:"\n",t:"\t",u2028:"\u2028",u2029:"\u2029"};(function(){for(var a in z)z[z[a]]=a})();var U="object"==typeof exports&&exports&&("object"==typeof global&&global&&global==global.global&&(r=global),exports), +sa=0,ta=r._,ua=/\\|'|\r|\n|\t|\u2028|\u2029/g,V=/.^/,qa=/\\(\\|'|r|n|t|u2028|u2029)/g,C="[object Array]",ha="[object Boolean]",ia="[object Date]",q="[object Function]",H="[object Number]",ja="[object RegExp]",E="[object String]",A=Array.prototype,J=Object.prototype,y=A.concat,s=J.hasOwnProperty,F=A.push,l=A.slice,h=J.toString,va=r.isFinite,J=Object.keys,ra=r.clearTimeout,G=r.setTimeout,w={g:"I",f:"if(!f(h[p],p,h))return!B"},W={a:"x",g:"x",k:"for(var D,j=1,w=arguments.length;j=i)i=k,B=h[p]"},D=Array.isArray||function(a){return h.call(a)==C},aa=g({a:"K",h:"b",g:"I",k:"var g=H.call(K);if(g==d||g==E)return!K.length", +f:"return l"}),la=g({a:"h,F",g:"l",f:"if(h[p]===F)return I"}),S=g(n,w),Q=g(n,B),ma=g(n,{f:"if(f(h[p],p,h))return h[p]"}),v=g(n),wa=g(n,{g:"{}",k:"var z,v=H.call(f)==m;if(v&&G)f=e(f,G)",f:"z=v?f(h[p],p,h):h[p][f];(B[z]||(B[z]=[])).push(h[p])"}),Y=g(n,X),na=g(n,x),x=g(n,x,{k:x.k.replace("-","").replace("max","min"),f:x.f.replace(">=","<")}),K=g(X,{a:"h,A",f:{b:"B[p]=h[p][A]",j:"B.push(h[p][A])"}}),Z=g({a:"h,f,a,G",g:"a",k:"var s=arguments.length>2;if(G)f=e(f,G)",c:{b:"if(!s)B=h[++p]"},f:{b:"B=f(B,h[p],p,h)", +j:"B=s?f(B,h[p],p,h):(s=I,h[p])"}}),B=g(n,B,{f:"!"+B.f}),w=g(n,w,{g:"l",f:w.f.replace("!","")}),oa=g(X,{a:"h",f:{b:"B[p]=h[p]",j:"B.push(h[p])"}}),pa=g(W,{f:"if(x[p]==J)"+W.f}),L=g(W),I=g({a:"x",g:"[]",l:o,f:"if(H.call(x[p])==m)B.push(p)",d:"B.sort()"});M(arguments)||(M=function(a){return!(!a||!s.call(a,"callee"))});var O=J||g({a:"x",e:"if(x!==Object(x))throw TypeError()",g:"[]",f:"B.push(p)"});L(k,{VERSION:"0.1.0",templateSettings:{escape:/<%-([\s\S]+?)%>/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g}, +after:function(a,b){return 1>a?b():function(){if(1>--a)return b.apply(this,arguments)}},bind:u,bindAll:function(a){var b=arguments,c=1;1==b.length&&(c=0,b=I(a));for(var d=b.length;ct(e,a[b])&&d.push(a[b]);return d},escape:function(a){return(a+"").replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g, +"'").replace(/\//g,"/")},every:S,extend:L,filter:Q,find:ma,first:P,flatten:da,forEach:v,functions:I,groupBy:wa,has:function(a,b){return s.call(a,b)},identity:$,indexOf:t,initial:function(a,b,c){return l.call(a,0,-(b==j||c?1:b))},intersection:ea,invoke:function(a,b){for(var c=l.call(arguments,2),d=-1,e=a.length,f=h.call(b)==q,i=[];++darguments.length&&(b=a||0,a=0);for(var d=-1,e=Math.max(Math.ceil((b-a)/c),0),f=Array(e);++dd?1:0}),"b")},sortedIndex:ca,tap:function(a,b){b(a);return a},template:function(a,b,c){function d(a){return e.call(this,a,k)}c=pa(c||{},k.templateSettings);a="__p+='"+a.replace(ua,function(a){return"\\"+z[a]}).replace(c.escape||V,function(a,b){return"'+((__t=("+ +N(b)+"))==null?'':_['escape'](__t))+'"}).replace(c.interpolate||V,function(a,b){return"'+((__t=("+N(b)+"))==null?'':__t)+'"}).replace(c.evaluate||V,function(a,b){return"';"+N(b)+";__p+='"})+"';\n";c.variable||(a="with(object||{}){"+a+"}");var a='var __t,__j=Array.prototype.join,__p="";function print(){__p+=__j.call(arguments,"")}'+a+"return __p",e=Function(c.variable||"object","_",a);if(b)return e(b,k);d.source="function("+(c.variable||"object")+"){"+a+"}";return d},throttle:function(a,b){var c,d, +e,f,g,h,k=ga(function(){d=g=o},b);return function(){c=arguments;f=this;h||(h=G(function(){h=j;d&&a.apply(f,c);k()},b));g?d=m:e=a.apply(f,c);k();g=m;return e}},times:function(a,b,c){c&&(b=u(b,c));for(c=0;ct(b,c[a])&&b.push(c[a]);return b},uniq:R,uniqueId:function(a){var b=sa++;return a? +a+b:b},values:oa,without:function(a){for(var b=l.call(arguments,1),c=-1,d=a.length,e=[];++ct(b,a[c])&&e.push(a[c]);return e},wrap:function(a,b){return function(){var c=[a];F.apply(c,arguments);return b.apply(this,c)}},zip:function(){for(var a=-1,b=na(K(arguments,"length")),c=Array(b);++a