Files
lodash/lodash.min.js
John-David Dalton 59c26957bb lodash: Optimize uniq and union, and inflate methods in the "Arrays" category. [jddalton]
Former-commit-id: b54d0bc2a77d1589d4b53b20a2f5ec175ab6c5cc
2012-04-26 23:33:53 -04:00

27 lines
11 KiB
JavaScript

/*!
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<arguments.length;)for(a in arguments[b])e[a]=arguments[b][a];for(;a=f.pop();)"object"==typeof e[a]?(c[a]=e[a].b,d[a]=e[a].j):c[a]=d[a]=e[a]||"";a=e.a;var b=/^[^,]+/.exec(a)[0],f=e.g,i=e.h,g=!("x"==b||"b"==i),i=!("c"==b||"a"==i),h=e.l!==o;return Function("d,e,j,m,n,o,q,r,t,u,y,C,E,H,I,l,J",'"use strict";return function('+a+
"){"+("var p,B"+(f?"="+f:""))+";"+(e.e||"if("+b+"==J)return B")+";"+(e.k||"")+";"+(g?"var w="+b+".length;p=-1;"+((i?"if(w===+w){":"")+(c.c||"")+";while("+(c.i||"++p<w")+"){"+c.f+"}"+(i?"}":"")):"")+(i?(g?"else{":"")+(d.c||"")+";for("+(d.i||"p in "+b)+"){"+(h?"if(n.call("+/\S+$/.exec(d.i||b)[0]+",p)){":"")+d.f+(h?"}":"")+"}"+(g?"}":""):"")+(e.d||"")+";return B}")(C,t,y,O,r,ba,s,Infinity,D,ca,Math,l,E,j,m,o)}function P(a){return a.replace(sa,function(a,c){return z[c]})}function da(a,b,c,d){if(a==h)return c;
var e=2<arguments.length,f=a.length;d&&(b=t(b,d));if(f===+f){for(f&&!e&&(c=a[--f]);f--;)c=b(c,a[f],f,a);return c}var i=Q(a);for((f=i.length)&&!e&&(c=a[i[--f]]);f--;)e=i[f],c=b(c,a[e],e,a);return c}function ea(a,b,c){var d,e=0,f=a.length;for(c&&(b=c(b));e<f;)d=e+f>>1,(c?c(a[d]):a[d])<b?e=d+1:f=d;return e}function R(a,b,c){return b==h||c?a[0]:l.call(a,0,b)}function fa(a,b){if(b)return y.apply([],a);for(var c=-1,d=a.length,e=[];++c<d;)D(a[c])?F.apply(e,fa(a[c])):e.push(a[c]);return e}function s(a,b,
c){var d;if(a==h)return-1;if(c)return c=ea(a,b),a[c]===b?c:-1;c=0;for(d=a.length;c<d;c++)if(a[c]===b)return c;return-1}function ga(a){var b=l.call(arguments,1);return S(T(a),function(a){return U(b,function(b){return-1<s(b,a)})})}function ha(a,b,c){return l.call(a,b==h||c?1:b)}function T(a,b,c){var d,e=-1,f=a.length,i=[],g=[];for(3>f&&(b=m);++e<f;)if(d=c?c(a[e]):a[e],b?!e||g[g.length-1]!==d:0>s(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<w;j++){D=arguments[j]",
i:"p in D",l:o,f:"x[p]=D[p]",d:"}"},B={g:"[]",f:"f(h[p],p,h)&&B.push(h[p])"},n={a:"h,f,G",g:"h",k:"if(!f){f=o}else if(G){f=e(f,G)}",f:"f(h[p],p,h)"},Z={g:"[]",c:{b:"B.length=w",j:"B=[]"},f:{b:"B[p]=f(h[p],p,h)",j:"B.push(f(h[p],p,h))"}},x={k:"var k,i=-r,B=i;if(!f){if(t(h)&&h[0]===+h[0])return y.max.apply(y,h);if(u(h))return B}else if(G)f=e(f,G)",f:"k=f?f(h[p],p,h):h[p];if(k>=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;c<d;c++)a[b[c]]=t(a[b[c]],a);return a},chain:function(a){return(new p(a)).chain()},clone:function(a){return a!==Object(a)?a:D(a)?a.slice():M({},a)},compact:function(a){for(var b=-1,c=a.length,d=[];++b<c;)a[b]&&d.push(a[b]);return d},compose:function(){var a=arguments;return function(){for(var b=arguments,c=a.length;c--;)b=
[a[c].apply(this,b)];return b[0]}},contains:na,debounce:ia,defaults:ra,defer:function(a){var b=l.call(arguments,1);return G(function(){return a.apply(h,b)},1)},delay:function(a,b){var c=l.call(arguments,2);return G(function(){return a.apply(h,c)},b)},difference:function(a){for(var b=-1,c=a.length,d=[],e=y.apply(d,l.call(arguments,1));++b<c;)0>s(e,a[b])&&d.push(a[b]);return d},escape:function(a){return(a+"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,
"&#x27;").replace(/\//g,"&#x2F;")},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=[];++d<f;)J[d]=(e?b:a[d][b]).apply(a[d],c);return J},isArguments:N,isArray:D,isBoolean:function(a){return a===m||a===o||j.call(a)==ja},isDate:function(a){return j.call(a)==
ka},isElement:function(a){return!!(a&&1==a.nodeType)},isEmpty:ca,isEqual:V,isFinite:function(a){return xa(a)&&j.call(a)==H},isFunction:u,isNaN:function(a){return j.call(a)==H&&a!=+a},isNull:function(a){return null===a},isNumber:function(a){return j.call(a)==H},isObject:function(a){return a===Object(a)},isRegExp:function(a){return j.call(a)==la},isString:function(a){return j.call(a)==E},isUndefined:function(a){return a===h},keys:Q,last:function(a,b,c){var d=a.length;return b==h||c?a[d-1]:l.call(a,
-b||d)},lastIndexOf:function(a,b){if(a==h)return-1;for(var c=a.length;c--;)if(a[c]===b)return c;return-1},map:$,max:pa,memoize:function(a,b){var c={};return function(){var d=b?b.apply(this,arguments):arguments[0];return r.call(c,d)?c[d]:c[d]=a.apply(this,arguments)}},min:x,mixin:ma,noConflict:function(){q._=va;return this},once:function(a){var b,c=o;return function(){if(c)return b;c=m;return b=a.apply(this,arguments)}},pick:function(a){for(var b,c=0,d=y.apply([],arguments),e=d.length,f={};++c<e;)b=
d[c],b in a&&(f[b]=a[b]);return f},pluck:L,range:function(a,b,c){c||(c=1);2>arguments.length&&(b=a||0,a=0);for(var d=-1,e=Math.max(Math.ceil((b-a)/c),0),f=Array(e);++d<e;)f[d]=a,a+=c;return f},reduce:aa,reduceRight:da,reject:B,rest:ha,result:J,shuffle:function(a){var b,c=[];v(a,function(a,e){b=Math.floor(Math.random()*(e+1));c[e]=c[b];c[b]=a});return c},size:function(a){var b=j.call(a);return b==C||b==E?a.length:Q(a).length},some:w,sortBy:function(a,b,c){if(u(b))c&&(b=t(b,c));else var d=b,b=function(a){return a[d]};
return L($(a,function(c,d){return{a:b(c,d,a),b:c}}).sort(function(a,b){var c=a.a,d=b.a;return c===h?1:d===h?-1:c<d?-1:c>d?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;c<a;c++)b(c)},toArray:function(a){if(!a)return[];if(u(a.toArray))return a.toArray();var b=a.length;return b===+b?l.call(a):qa(a)},union:function(){for(var a=-1,b=[],c=y.apply(b,arguments),d=c.length;++a<d;)0>s(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=[];++b<c;)0>s(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<b;)c[a]=L(arguments,a);return c},all:U,any:w,collect:$,detect:oa,each:v,foldl:aa,foldr:da,head:R,include:na,inject:aa,intersect:ga,methods:I,select:S,tail:ha,take:R,unique:T});p.prototype=k.prototype;ma(k);v("pop,push,reverse,shift,sort,splice,unshift".split(","),function(a){var b=A[a];k.prototype[a]=function(){var a=this.m;b.apply(a,arguments);a.length===0&&delete a[0];return this.o?
(new p(a)).chain():a}});v(["concat","join","slice"],function(a){var b=A[a];p.prototype[a]=function(){var a=b.apply(this.m,arguments);return this.o?(new p(a)).chain():a}});M(p.prototype,{chain:function(){this.o=m;return this},value:function(){return this.m}});W?"object"==typeof module&&module&&module.p==W?(module.p=k)._=k:W._=k:(q._=k,"function"==typeof define&&"object"==typeof define.amd&&define.amd&&define(function(){return k}))})(this);