mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-01-29 06:27:49 +00:00
Reduce _.reduceRight and update vendors.
Former-commit-id: f7250ccb4b8f15052c1f1420947c2ac68963a92c
This commit is contained in:
2
build.js
2
build.js
@@ -133,7 +133,7 @@
|
||||
'random': [],
|
||||
'range': [],
|
||||
'reduce': [],
|
||||
'reduceRight': ['keys'],
|
||||
'reduceRight': ['keys', 'reduce'],
|
||||
'reject': ['identity'],
|
||||
'rest': [],
|
||||
'result': ['isFunction'],
|
||||
|
||||
38
lodash.js
38
lodash.js
@@ -2220,39 +2220,19 @@
|
||||
if (!collection) {
|
||||
return accumulator;
|
||||
}
|
||||
|
||||
var length = collection.length,
|
||||
noaccum = arguments.length < 3;
|
||||
|
||||
if(thisArg) {
|
||||
callback = bindIterator(callback, thisArg);
|
||||
if (length !== +length) {
|
||||
var props = keys(collection);
|
||||
length = props.length;
|
||||
}
|
||||
if (length === +length) {
|
||||
var iteratee = noCharByIndex && toString.call(collection) == stringClass
|
||||
? collection.split('')
|
||||
: collection;
|
||||
|
||||
if (length && noaccum) {
|
||||
accumulator = iteratee[--length];
|
||||
}
|
||||
while (length--) {
|
||||
accumulator = callback(accumulator, iteratee[length], length, collection);
|
||||
}
|
||||
return accumulator;
|
||||
}
|
||||
|
||||
var prop,
|
||||
props = keys(collection);
|
||||
|
||||
length = props.length;
|
||||
if (length && noaccum) {
|
||||
accumulator = collection[props[--length]];
|
||||
}
|
||||
while (length--) {
|
||||
prop = props[length];
|
||||
accumulator = callback(accumulator, collection[prop], prop, collection);
|
||||
}
|
||||
return accumulator;
|
||||
return reduce(collection, function(accumulator, value, index, object) {
|
||||
var index = props ? props[--length] : --length;
|
||||
return noaccum
|
||||
? (noaccum = false, object[index])
|
||||
: callback.call(thisArg, accumulator, object[index], index, object);
|
||||
}, accumulator);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
56
lodash.min.js
vendored
56
lodash.min.js
vendored
@@ -10,31 +10,31 @@ a.m.i+"}}else{"),a.h||(t+="var v=typeof k=='function'&&r.call(k,'prototype');");
|
||||
e||!t&&m(e))return n;var r=e.constructor;return(!kt||"function"==typeof e.toString||"string"!=typeof (e+""))&&(!g(r)||r instanceof r)?St?(Yt(e,function(e,t,r){return n=!G.call(r,t),i}),n===i):(Yt(e,function(e,t){n=t}),n===i||G.call(e,n)):n}function b(e,t,s,o,u){if(e==r)return e;s&&(t=i);if(s=Bt[typeof e]){var a=tt.call(e);if(!Dt[a]||Tt&&m(e))return e;var f=a==ct,s=f||(a==vt?Jt(e,n):s)}if(!s||!t)return s?f?et.call(e):Gt({},e):e;s=e.constructor;switch(a){case ht:return new s(e==n);case pt:return new
|
||||
s(+e);case dt:case gt:return new s(e);case mt:return s(e.source,z.exec(e))}o||(o=[]),u||(u=[]);for(a=o.length;a--;)if(o[a]==e)return u[a];var l=f?s(a=e.length):{};o.push(e),u.push(l);if(f)for(f=-1;++f<a;)l[f]=b(e[f],t,r,o,u);else Zt(e,function(e,n){l[n]=b(e,t,r,o,u)});return l}function w(e,t,s,o){if(e==r||t==r)return e===t;if(e===t)return 0!==e||1/e==1/t;if(Bt[typeof e]||Bt[typeof t])e=e.__wrapped__||e,t=t.__wrapped__||t;var u=tt.call(e);if(u!=tt.call(t))return i;switch(u){case ht:case pt:return+
|
||||
e==+t;case dt:return e!=+e?t!=+t:0==e?1/e==1/t:e==+t;case mt:case gt:return e==t+""}var a=_t[u];if(Tt&&!a&&(a=m(e))&&!m(t)||!a&&(u!=vt||kt&&("function"!=typeof e.toString&&"string"==typeof (e+"")||"function"!=typeof t.toString&&"string"==typeof (t+""))))return i;s||(s=[]),o||(o=[]);for(u=s.length;u--;)if(s[u]==e)return o[u]==t;var u=-1,f=n,l=0;s.push(e),o.push(t);if(a){l=e.length;if(f=l==t.length)for(;l--&&(f=w(e[l],t[l],s,o)););return f}a=e.constructor,f=t.constructor;if(a!=f&&(!g(a)||!(a instanceof
|
||||
a&&g(f)&&f instanceof f)))return i;for(var c in e)if(G.call(e,c)&&(l++,!G.call(t,c)||!w(e[c],t[c],s,o)))return i;for(c in t)if(G.call(t,c)&&!(l--))return i;if(wt)for(;7>++u;)if(c=K[u],G.call(e,c)&&(!G.call(t,c)||!w(e[c],t[c],s,o)))return i;return n}function E(e,t,n,r){if(!e)return n;var i=e.length,s=3>arguments.length;r&&(t=u(t,r));if(i===+i){var o=Ct&&tt.call(e)==gt?e.split(""):e;for(i&&s&&(n=o[--i]);i--;)n=t(n,o[i],i,e);return n}o=rn(e);for((i=o.length)&&s&&(n=e[o[--i]]);i--;)s=o[i],n=t(n,e[s],
|
||||
s,e);return n}function S(e,t,n){if(e)return t==r||n?e[0]:et.call(e,0,t)}function x(e,t){var n=[];if(!e)return n;for(var r,i=-1,s=e.length;++i<s;)r=e[i],$t(r)?Y.apply(n,t?r:x(r)):n.push(r);return n}function T(e,t,n){if(!e)return-1;var r=-1,i=e.length;if(n){if("number"!=typeof n)return r=k(e,t),e[r]===t?r:-1;r=(0>n?ut(0,i+n):n)-1}for(;++r<i;)if(e[r]===t)return r;return-1}function N(e,t,n){var r=-Infinity,i=r;if(!e)return i;var s=-1,o=e.length;if(!t){for(;++s<o;)e[s]>i&&(i=e[s]);return i}for(n&&(t=u
|
||||
(t,n));++s<o;)n=t(e[s],s,e),n>r&&(r=n,i=e[s]);return i}function C(e,t,n){return e?et.call(e,t==r||n?1:t):[]}function k(e,t,n,r){if(!e)return 0;var i=0,s=e.length;if(n){r&&(n=A(n,r));for(t=n(t);i<s;)r=i+s>>>1,n(e[r])<t?i=r+1:s=r}else for(;i<s;)r=i+s>>>1,e[r]<t?i=r+1:s=r;return i}function L(e,t,n,r){var s=[];if(!e)return s;var o=-1,a=e.length,f=[];"function"==typeof t&&(r=n,n=t,t=i);for(n?r&&(n=u(n,r)):n=O;++o<a;)if(r=n(e[o],o,e),t?!o||f[f.length-1]!==r:0>T(f,r))f.push(r),s.push(e[o]);return s}function A
|
||||
(e,t){return At||nt&&2<arguments.length?nt.call.apply(nt,arguments):l(e,t,et.call(arguments,2))}function O(e){return e}function M(e){vn(en(e),function(t){var r=s[t]=e[t];o.prototype[t]=function(){var e=[this.__wrapped__];return arguments.length&&Y.apply(e,arguments),e=r.apply(s,e),this.__chain__&&(e=new o(e),e.__chain__=n),e}})}var n=!0,r=null,i=!1,_="object"==typeof exports&&exports&&("object"==typeof global&&global&&global==global.global&&(e=global),exports),D=Array.prototype,P=Object.prototype
|
||||
,H=0,B=30,j=e._,F=/[-?+=!~*%&^<>|{(\/]|\[\D|\b(?:delete|in|instanceof|new|typeof|void)\b/,I=/&(?:amp|lt|gt|quot|#x27);/g,q=/\b__p\+='';/g,R=/\b(__p\+=)''\+/g,U=/(__e\(.*?\)|\b__t\))\+'';/g,z=/\w*$/,W=/(?:__e|__t=)\(\s*(?![\d\s"']|this\.)/g,X=RegExp("^"+(P.valueOf+"").replace(/[.*+?^=!:${}()|[\]\/\\]/g,"\\$&").replace(/valueOf|for [^\]]+/g,".+?")+"$"),V=/($^)/,$=/[&<>"']/g,J=/['\n\r\t\u2028\u2029\\]/g,K="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf"
|
||||
.split(" "),Q=D.concat,G=P.hasOwnProperty,Y=D.push,Z=P.propertyIsEnumerable,et=D.slice,tt=P.toString,nt=X.test(nt=et.bind)&&nt,rt=Math.floor,it=X.test(it=Array.isArray)&&it,st=e.isFinite,ot=X.test(ot=Object.keys)&&ot,ut=Math.max,at=Math.min,ft=Math.random,lt="[object Arguments]",ct="[object Array]",ht="[object Boolean]",pt="[object Date]",dt="[object Number]",vt="[object Object]",mt="[object RegExp]",gt="[object String]",yt=e.clearTimeout,bt=e.setTimeout,wt,Et,St,xt=n;(function(){function e(){this
|
||||
.x=1}var t={0:1,length:1},n=[];e.prototype={valueOf:1,y:1};for(var r in new e)n.push(r);for(r in arguments)xt=!r;wt=4>(n+"").length,St="x"!=n[0],Et=(n.splice.call(t,0,1),t[0])})(1);var Tt=!m(arguments),Nt="x"!=et.call("x")[0],Ct="xx"!="x"[0]+Object("x")[0];try{var kt=("[object Object]",tt.call(e.document||0)==vt)}catch(Lt){}var At=nt&&/\n|Opera/.test(nt+tt.call(e.opera)),Ot=ot&&/^.+$|true/.test(ot+!!e.attachEvent),Mt=!At,_t={};_t[ht]=_t[pt]=_t["[object Function]"]=_t[dt]=_t[vt]=_t[mt]=i,_t[lt]=_t[ct]=
|
||||
_t[gt]=n;var Dt={};Dt[lt]=Dt["[object Function]"]=i,Dt[ct]=Dt[ht]=Dt[pt]=Dt[dt]=Dt[vt]=Dt[mt]=Dt[gt]=n;var Pt={"&":"&","<":"<",">":">",'"':""","'":"'"},Ht={"&":"&","<":"<",">":">",""":'"',"'":"'"},Bt={"boolean":i,"function":n,object:n,number:i,string:i,"undefined":i,unknown:n},jt={"\\":"\\","'":"'","\n":"n","\r":"r"," ":"t","\u2028":"u2028","\u2029":"u2029"};s.templateSettings={escape:/<%-([\s\S]+?)%>/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g
|
||||
,variable:""};var Ft={a:"e,d,y",j:"e",q:"if(!d)d=i;else if(y)d=c(d,y)",i:"if(d(A,j,e)===false)return u"},It={j:"{}",q:"var q;if(typeof d!='function'){var hh=d;d=function(A){return A[hh]}}else if(y)d=c(d,y)",i:"q=d(A,j,e);(h.call(u,q)?u[q]++:u[q]=1)"},qt={j:"true",i:"if(!d(A,j,e))return!u"},Rt={r:i,s:i,a:"n",j:"n",q:"for(var a=1,b=arguments.length;a<b;a++){if(k=arguments[a]){",i:"u[j]=A",e:"}}"},Ut={j:"[]",i:"d(A,j,e)&&u.push(A)"},zt={q:"if(y)d=c(d,y)"},Wt={i:{l:Ft.i}},Xt={j:"",f:"if(!e)return[]",
|
||||
d:{b:"u=Array(l)",l:"u="+(Ot?"Array(l)":"[]")},i:{b:"u[j]=d(A,j,e)",l:"u"+(Ot?"[o]=":".push")+"(d(A,j,e))"}},Vt={r:i,a:"n,d,y",j:"{}",q:"var R=typeof d=='function';if(!R){var t=f.apply(E,arguments)}else if(y)d=c(d,y)",i:"if(R?!d(A,j,n):M(t,j)<0)u[j]=A"};Tt&&(m=function(e){return!!e&&!!G.call(e,"callee")});var $t=it||function(e){return tt.call(e)==ct};g(/x/)&&(g=function(e){return"[object Function]"==tt.call(e)});var Jt=Bt.__proto__!=P?y:function(e,t){if(!e)return i;var n=e.valueOf,r="function"==typeof
|
||||
n&&(r=n.__proto__)&&r.__proto__;return r?e==r||e.__proto__==r&&(t||!m(e)):y(e)},Kt=c({a:"n",j:"[]",i:"u.push(j)"}),Qt=c(Rt,{i:"if(u[j]==null)"+Rt.i}),Gt=c(Rt),Yt=c(Ft,zt,Wt,{r:i}),Zt=c(Ft,zt,Wt),en=c({r:i,a:"n",j:"[]",i:"if(S(A))u.push(j)",e:"u.sort()"}),tn=c({a:"n",j:"{}",i:"u[A]=j"}),nn=c({a:"A",j:"true",q:"var H=z.call(A),l=A.length;if(D[H]"+(Tt?"||O(A)":"")+"||(H==W&&l===+l&&S(A.splice)))return!l",i:{l:"return false"}}),rn=ot?function(e){var t=typeof e;return"function"==t&&Z.call(e,"prototype"
|
||||
)?Kt(e):e&&Bt[t]?ot(e):[]}:Kt,sn=c(Rt,{a:"n,cc,N",q:"var b,P,dd,ee,C=arguments,a=0;if(N==T){b=2;dd=C[3];ee=C[4]}else{b=C.length;dd=[];ee=[]}while(++a<b){if(k=C[a]){",i:"if((cc=A)&&((P=Q(cc))||T(cc))){var K=false,ff=dd.length;while(ff--)if(K=dd[ff]==cc)break;if(K){u[j]=ee[ff]}else{dd.push(cc);ee.push(A=(A=u[j])&&P?(Q(A)?A:[]):(T(A)?A:{}));u[j]=G(A,cc,T,dd,ee)}}else if(cc!=null)u[j]=cc"}),on=c(Vt),un=c({a:"n",j:"[]",i:"u"+(Ot?"[o]=":".push")+"([j,A])"}),an=c(Vt,{q:"if(typeof d!='function'){var q,t=f.apply(E,arguments),l=t.length;for(j=1;j<l;j++){q=t[j];if(q in n)u[q]=n[q]}}else{if(y)d=c(d,y)"
|
||||
,i:"if(d(A,j,n))u[j]=A",e:"}"}),fn=c({a:"n",j:"[]",i:"u.push(A)"}),ln=c({a:"e,gg",j:"false",o:i,d:{b:"if(z.call(e)==x)return e.indexOf(gg)>-1"},i:"if(A===gg)return true"}),cn=c(Ft,It),hn=c(Ft,qt),pn=c(Ft,Ut),dn=c(Ft,zt,{j:"",i:"if(d(A,j,e))return A"}),vn=c(Ft,zt),mn=c(Ft,It,{i:"q=d(A,j,e);(h.call(u,q)?u[q]:u[q]=[]).push(A)"}),gn=c(Xt,{a:"e,U",q:"var C=w.call(arguments,2),R=typeof U=='function'",i:{b:"u[j]=(R?U:A[U]).apply(A,C)",l:"u"+(Ot?"[o]=":".push")+"((R?U:A[U]).apply(A,C))"}}),yn=c(Ft,Xt),bn=
|
||||
c(Xt,{a:"e,aa",i:{b:"u[j]=A[aa]",l:"u"+(Ot?"[o]=":".push")+"(A[aa])"}}),wn=c({a:"e,d,B,y",j:"B",q:"var V=arguments.length<3;if(y)d=c(d,y)",d:{b:"if(V)u=k[++j]"},i:{b:"u=d(u,A,j,e)",l:"u=V?(V=false,A):d(u,A,j,e)"}}),En=c(Ft,Ut,{i:"!"+Ut.i}),Sn=c(Ft,qt,{j:"false",i:qt.i.replace("!","")}),xn=c(Ft,It,Xt,{i:{b:"u[j]={a:d(A,j,e),b:j,c:A}",l:"u"+(Ot?"[o]=":".push")+"({a:d(A,j,e),b:j,c:A})"},e:"u.sort(I);l=u.length;while(l--)u[l]=u[l].c"}),Tn=c(Ut,{a:"e,Z",q:"var t=[];J(Z,function(A,q){t.push(q)});var bb=t.length"
|
||||
,i:"for(var q,Y=true,s=0;s<bb;s++){q=t[s];if(!(Y=A[q]===Z[q]))break}Y&&u.push(A)"}),Nn=c({r:i,s:i,a:"n",j:"n",q:"var L=arguments,l=L.length;if(l>1){for(var j=1;j<l;j++)u[L[j]]=F(u[L[j]],u);return u}",i:"if(S(u[j]))u[j]=F(u[j],u)"});s.VERSION="0.7.0",s.after=function(e,t){return 1>e?t():function(){if(1>--e)return t.apply(this,arguments)}},s.bind=A,s.bindAll=Nn,s.chain=function(e){return e=new o(e),e.__chain__=n,e},s.clone=b,s.compact=function(e){var t=[];if(!e)return t;for(var n=-1,r=e.length;++n<
|
||||
r;)e[n]&&t.push(e[n]);return t},s.compose=function(){var e=arguments;return function(){for(var t=arguments,n=e.length;n--;)t=[e[n].apply(this,t)];return t[0]}},s.contains=ln,s.countBy=cn,s.debounce=function(e,t,n){function i(){a=r,n||(o=e.apply(u,s))}var s,o,u,a;return function(){var r=n&&!a;return s=arguments,u=this,yt(a),a=bt(i,t),r&&(o=e.apply(u,s)),o}},s.defaults=Qt,s.defer=function(e){var n=et.call(arguments,1);return bt(function(){return e.apply(t,n)},1)},s.delay=function(e,n){var r=et.call
|
||||
(arguments,2);return bt(function(){return e.apply(t,r)},n)},s.difference=function(e){var t=[];if(!e)return t;for(var n=-1,r=e.length,i=Q.apply(t,arguments),i=a(i,r);++n<r;)i(e[n])||t.push(e[n]);return t},s.escape=function(e){return e==r?"":(e+"").replace($,p)},s.every=hn,s.extend=Gt,s.filter=pn,s.find=dn,s.first=S,s.flatten=x,s.forEach=vn,s.forIn=Yt,s.forOwn=Zt,s.functions=en,s.groupBy=mn,s.has=function(e,t){return e?G.call(e,t):i},s.identity=O,s.indexOf=T,s.initial=function(e,t,n){return e?et.call
|
||||
(e,0,-(t==r||n?1:t)):[]},s.intersection=function(e){var t=[];if(!e)return t;var n,r=arguments.length,i=[],s=-1,o=e.length;e:for(;++s<o;)if(n=e[s],0>T(t,n)){for(var u=1;u<r;u++)if(!(i[u]||(i[u]=a(arguments[u])))(n))continue e;t.push(n)}return t},s.invert=tn,s.invoke=gn,s.isArguments=m,s.isArray=$t,s.isBoolean=function(e){return e===n||e===i||tt.call(e)==ht},s.isElement=function(e){return e?1===e.nodeType:i},s.isEmpty=nn,s.isEqual=w,s.isFinite=function(e){return st(e)&&tt.call(e)==dt},s.isFunction=
|
||||
g,s.isNaN=function(e){return tt.call(e)==dt&&e!=+e},s.isNull=function(e){return e===r},s.isObject=function(e){return e?Bt[typeof e]:i},s.isUndefined=function(e){return e===t},s.keys=rn,s.last=function(e,t,n){if(e){var i=e.length;return t==r||n?e[i-1]:et.call(e,-t||i)}},s.lastIndexOf=function(e,t,n){if(!e)return-1;var r=e.length;for(n&&"number"==typeof n&&(r=(0>n?ut(0,r+n):at(n,r-1))+1);r--;)if(e[r]===t)return r;return-1},s.lateBind=function(e,t){return l(t,e,et.call(arguments,2))},s.map=yn,s.max=
|
||||
N,s.memoize=function(e,t){var n={};return function(){var r=t?t.apply(this,arguments):arguments[0];return G.call(n,r)?n[r]:n[r]=e.apply(this,arguments)}},s.merge=sn,s.min=function(e,t,n){var r=Infinity,i=r;if(!e)return i;var s=-1,o=e.length;if(!t){for(;++s<o;)e[s]<i&&(i=e[s]);return i}for(n&&(t=u(t,n));++s<o;)n=t(e[s],s,e),n<r&&(r=n,i=e[s]);return i},s.mixin=M,s.noConflict=function(){return e._=j,this},s.object=function(e,t){if(!e)return{};for(var n=-1,r=e.length,i={};++n<r;)t?i[e[n]]=t[n]:i[e[n][0
|
||||
]]=e[n][1];return i},s.omit=on,s.once=function(e){var t,s=i;return function(){return s?t:(s=n,t=e.apply(this,arguments),e=r,t)}},s.pairs=un,s.partial=function(e){return l(e,et.call(arguments,1))},s.pick=an,s.pluck=bn,s.random=function(e,t){return e==r&&t==r&&(t=1),e=+e||0,t==r&&(t=e,e=0),e+rt(ft()*((+t||0)-e+1))},s.range=function(e,t,n){e=+e||0,n=+n||1,t==r&&(t=e,e=0);for(var i=-1,t=ut(0,Math.ceil((t-e)/n)),s=Array(t);++i<t;)s[i]=e,e+=n;return s},s.reduce=wn,s.reduceRight=E,s.reject=En,s.rest=C,s
|
||||
.result=function(e,t){if(!e)return r;var n=e[t];return g(n)?e[t]():n},s.shuffle=function(e){if(!e)return[];for(var t,n=-1,r=e.length,i=Array(r);++n<r;)t=rt(ft()*(n+1)),i[n]=i[t],i[t]=e[n];return i},s.size=function(e){if(!e)return 0;var t=e.length;return t===+t?t:rn(e).length},s.some=Sn,s.sortBy=xn,s.sortedIndex=k,s.tap=function(e,t){return t(e),e},s.template=function(e,t,n){n||(n={});var e=e+"",r,i,o=0,u=s.templateSettings,a="__p += '",f=n.variable||u.variable,l=f;e.replace(RegExp((n.escape||u.escape||
|
||||
V).source+"|"+(n.interpolate||u.interpolate||V).source+"|"+(n.evaluate||u.evaluate||V).source+"|$","g"),function(t,n,i,s,u){a+=e.slice(o,u).replace(J,h),a+=n?"'+__e("+n+")+'":s?"';"+s+";__p+='":i?"'+((__t=("+i+"))==null?'':__t)+'":"",r||(r=s||F.test(n||i)),o=u+t.length}),a+="';",l||(f="obj",r?a="with("+f+"){"+a+"}":(n=RegExp("(\\(\\s*)"+f+"\\."+f+"\\b","g"),a=a.replace(W,"$&"+f+".").replace(n,"$1__d"))),a=(r?a.replace(q,""):a).replace(R,"$1").replace(U,"$1;"),a="function("+f+"){"+(l?"":f+"||("+f+"={});"
|
||||
)+"var __t,__p='',__e=_.escape"+(r?",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}":(l?"":",__d="+f+"."+f+"||"+f)+";")+a+"return __p}";try{i=Function("_","return "+a)(s)}catch(c){throw c.source=a,c}return t?i(t):(i.source=a,i)},s.throttle=function(e,t){function n(){a=new Date,u=r,s=e.apply(o,i)}var i,s,o,u,a=0;return function(){var r=new Date,f=t-(r-a);return i=arguments,o=this,0>=f?(a=r,s=e.apply(o,i)):u||(u=bt(n,f)),s}},s.times=function(e,t,n){var r=-1,i=Array(e||0);if(
|
||||
n)for(;++r<e;)i[r]=t.call(n,r);else for(;++r<e;)i[r]=t(r);return i},s.toArray=function(e){if(!e)return[];var t=e.length;return t===+t?(Nt?tt.call(e)==gt:"string"==typeof e)?e.split(""):et.call(e):fn(e)},s.unescape=function(e){return e==r?"":(e+"").replace(I,v)},s.union=function(){for(var e=-1,t=[],n=Q.apply(t,arguments),r=n.length;++e<r;)0>T(t,n[e])&&t.push(n[e]);return t},s.uniq=L,s.uniqueId=function(e){var t=H++;return e?e+t:t},s.values=fn,s.where=Tn,s.without=function(e){var t=[];if(!e)return t
|
||||
;for(var n=-1,r=e.length,i=a(arguments,1,20);++n<r;)i(e[n])||t.push(e[n]);return t},s.wrap=function(e,t){return function(){var n=[e];return arguments.length&&Y.apply(n,arguments),t.apply(this,n)}},s.zip=function(e){if(!e)return[];for(var t=-1,n=N(bn(arguments,"length")),r=Array(n);++t<n;)r[t]=bn(arguments,t);return r},s.all=hn,s.any=Sn,s.collect=yn,s.detect=dn,s.drop=C,s.each=vn,s.foldl=wn,s.foldr=E,s.head=S,s.include=ln,s.inject=wn,s.methods=en,s.select=pn,s.tail=C,s.take=S,s.unique=L,vn({Date:pt
|
||||
,Number:dt,RegExp:mt,String:gt},function(e,t){s["is"+t]=function(t){return tt.call(t)==e}}),o.prototype=s.prototype,M(s),o.prototype.chain=function(){return this.__chain__=n,this},o.prototype.value=function(){return this.__wrapped__},vn("pop push reverse shift sort splice unshift".split(" "),function(e){var t=D[e];o.prototype[e]=function(){var e=this.__wrapped__;return t.apply(e,arguments),Et&&e.length===0&&delete e[0],this.__chain__&&(e=new o(e),e.__chain__=n),e}}),vn(["concat","join","slice"],function(
|
||||
e){var t=D[e];o.prototype[e]=function(){var e=t.apply(this.__wrapped__,arguments);return this.__chain__&&(e=new o(e),e.__chain__=n),e}}),typeof define=="function"&&typeof define.amd=="object"&&define.amd?(e._=s,define(function(){return s})):_?"object"==typeof module&&module&&module.exports==_?(module.exports=s)._=s:_._=s:e._=s})(this);
|
||||
a&&g(f)&&f instanceof f)))return i;for(var c in e)if(G.call(e,c)&&(l++,!G.call(t,c)||!w(e[c],t[c],s,o)))return i;for(c in t)if(G.call(t,c)&&!(l--))return i;if(wt)for(;7>++u;)if(c=K[u],G.call(e,c)&&(!G.call(t,c)||!w(e[c],t[c],s,o)))return i;return n}function E(e,t,n,r){if(!e)return n;var s=e.length,o=3>arguments.length;if(s!==+s)var u=rn(e),s=u.length;return wn(e,function(e,n,a,f){return a=u?u[--s]:--s,o?(o=i,f[a]):t.call(r,e,f[a],a,f)},n)}function S(e,t,n){if(e)return t==r||n?e[0]:et.call(e,0,t)}
|
||||
function x(e,t){var n=[];if(!e)return n;for(var r,i=-1,s=e.length;++i<s;)r=e[i],$t(r)?Y.apply(n,t?r:x(r)):n.push(r);return n}function T(e,t,n){if(!e)return-1;var r=-1,i=e.length;if(n){if("number"!=typeof n)return r=k(e,t),e[r]===t?r:-1;r=(0>n?ut(0,i+n):n)-1}for(;++r<i;)if(e[r]===t)return r;return-1}function N(e,t,n){var r=-Infinity,i=r;if(!e)return i;var s=-1,o=e.length;if(!t){for(;++s<o;)e[s]>i&&(i=e[s]);return i}for(n&&(t=u(t,n));++s<o;)n=t(e[s],s,e),n>r&&(r=n,i=e[s]);return i}function C(e,t,n)
|
||||
{return e?et.call(e,t==r||n?1:t):[]}function k(e,t,n,r){if(!e)return 0;var i=0,s=e.length;if(n){r&&(n=A(n,r));for(t=n(t);i<s;)r=i+s>>>1,n(e[r])<t?i=r+1:s=r}else for(;i<s;)r=i+s>>>1,e[r]<t?i=r+1:s=r;return i}function L(e,t,n,r){var s=[];if(!e)return s;var o=-1,a=e.length,f=[];"function"==typeof t&&(r=n,n=t,t=i);for(n?r&&(n=u(n,r)):n=O;++o<a;)if(r=n(e[o],o,e),t?!o||f[f.length-1]!==r:0>T(f,r))f.push(r),s.push(e[o]);return s}function A(e,t){return At||nt&&2<arguments.length?nt.call.apply(nt,arguments
|
||||
):l(e,t,et.call(arguments,2))}function O(e){return e}function M(e){vn(en(e),function(t){var r=s[t]=e[t];o.prototype[t]=function(){var e=[this.__wrapped__];return arguments.length&&Y.apply(e,arguments),e=r.apply(s,e),this.__chain__&&(e=new o(e),e.__chain__=n),e}})}var n=!0,r=null,i=!1,_="object"==typeof exports&&exports&&("object"==typeof global&&global&&global==global.global&&(e=global),exports),D=Array.prototype,P=Object.prototype,H=0,B=30,j=e._,F=/[-?+=!~*%&^<>|{(\/]|\[\D|\b(?:delete|in|instanceof|new|typeof|void)\b/
|
||||
,I=/&(?:amp|lt|gt|quot|#x27);/g,q=/\b__p\+='';/g,R=/\b(__p\+=)''\+/g,U=/(__e\(.*?\)|\b__t\))\+'';/g,z=/\w*$/,W=/(?:__e|__t=)\(\s*(?![\d\s"']|this\.)/g,X=RegExp("^"+(P.valueOf+"").replace(/[.*+?^=!:${}()|[\]\/\\]/g,"\\$&").replace(/valueOf|for [^\]]+/g,".+?")+"$"),V=/($^)/,$=/[&<>"']/g,J=/['\n\r\t\u2028\u2029\\]/g,K="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "),Q=D.concat,G=P.hasOwnProperty,Y=D.push,Z=P.propertyIsEnumerable,et=D.slice,tt=
|
||||
P.toString,nt=X.test(nt=et.bind)&&nt,rt=Math.floor,it=X.test(it=Array.isArray)&&it,st=e.isFinite,ot=X.test(ot=Object.keys)&&ot,ut=Math.max,at=Math.min,ft=Math.random,lt="[object Arguments]",ct="[object Array]",ht="[object Boolean]",pt="[object Date]",dt="[object Number]",vt="[object Object]",mt="[object RegExp]",gt="[object String]",yt=e.clearTimeout,bt=e.setTimeout,wt,Et,St,xt=n;(function(){function e(){this.x=1}var t={0:1,length:1},n=[];e.prototype={valueOf:1,y:1};for(var r in new e)n.push(r);for(r in
|
||||
arguments)xt=!r;wt=4>(n+"").length,St="x"!=n[0],Et=(n.splice.call(t,0,1),t[0])})(1);var Tt=!m(arguments),Nt="x"!=et.call("x")[0],Ct="xx"!="x"[0]+Object("x")[0];try{var kt=("[object Object]",tt.call(e.document||0)==vt)}catch(Lt){}var At=nt&&/\n|Opera/.test(nt+tt.call(e.opera)),Ot=ot&&/^.+$|true/.test(ot+!!e.attachEvent),Mt=!At,_t={};_t[ht]=_t[pt]=_t["[object Function]"]=_t[dt]=_t[vt]=_t[mt]=i,_t[lt]=_t[ct]=_t[gt]=n;var Dt={};Dt[lt]=Dt["[object Function]"]=i,Dt[ct]=Dt[ht]=Dt[pt]=Dt[dt]=Dt[vt]=Dt[mt
|
||||
]=Dt[gt]=n;var Pt={"&":"&","<":"<",">":">",'"':""","'":"'"},Ht={"&":"&","<":"<",">":">",""":'"',"'":"'"},Bt={"boolean":i,"function":n,object:n,number:i,string:i,"undefined":i,unknown:n},jt={"\\":"\\","'":"'","\n":"n","\r":"r"," ":"t","\u2028":"u2028","\u2029":"u2029"};s.templateSettings={escape:/<%-([\s\S]+?)%>/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,variable:""};var Ft={a:"e,d,y",j:"e",q:"if(!d)d=i;else if(y)d=c(d,y)",i:"if(d(A,j,e)===false)return u"
|
||||
},It={j:"{}",q:"var q;if(typeof d!='function'){var hh=d;d=function(A){return A[hh]}}else if(y)d=c(d,y)",i:"q=d(A,j,e);(h.call(u,q)?u[q]++:u[q]=1)"},qt={j:"true",i:"if(!d(A,j,e))return!u"},Rt={r:i,s:i,a:"n",j:"n",q:"for(var a=1,b=arguments.length;a<b;a++){if(k=arguments[a]){",i:"u[j]=A",e:"}}"},Ut={j:"[]",i:"d(A,j,e)&&u.push(A)"},zt={q:"if(y)d=c(d,y)"},Wt={i:{l:Ft.i}},Xt={j:"",f:"if(!e)return[]",d:{b:"u=Array(l)",l:"u="+(Ot?"Array(l)":"[]")},i:{b:"u[j]=d(A,j,e)",l:"u"+(Ot?"[o]=":".push")+"(d(A,j,e))"
|
||||
}},Vt={r:i,a:"n,d,y",j:"{}",q:"var R=typeof d=='function';if(!R){var t=f.apply(E,arguments)}else if(y)d=c(d,y)",i:"if(R?!d(A,j,n):M(t,j)<0)u[j]=A"};Tt&&(m=function(e){return!!e&&!!G.call(e,"callee")});var $t=it||function(e){return tt.call(e)==ct};g(/x/)&&(g=function(e){return"[object Function]"==tt.call(e)});var Jt=Bt.__proto__!=P?y:function(e,t){if(!e)return i;var n=e.valueOf,r="function"==typeof n&&(r=n.__proto__)&&r.__proto__;return r?e==r||e.__proto__==r&&(t||!m(e)):y(e)},Kt=c({a:"n",j:"[]",i
|
||||
:"u.push(j)"}),Qt=c(Rt,{i:"if(u[j]==null)"+Rt.i}),Gt=c(Rt),Yt=c(Ft,zt,Wt,{r:i}),Zt=c(Ft,zt,Wt),en=c({r:i,a:"n",j:"[]",i:"if(S(A))u.push(j)",e:"u.sort()"}),tn=c({a:"n",j:"{}",i:"u[A]=j"}),nn=c({a:"A",j:"true",q:"var H=z.call(A),l=A.length;if(D[H]"+(Tt?"||O(A)":"")+"||(H==W&&l===+l&&S(A.splice)))return!l",i:{l:"return false"}}),rn=ot?function(e){var t=typeof e;return"function"==t&&Z.call(e,"prototype")?Kt(e):e&&Bt[t]?ot(e):[]}:Kt,sn=c(Rt,{a:"n,cc,N",q:"var b,P,dd,ee,C=arguments,a=0;if(N==T){b=2;dd=C[3];ee=C[4]}else{b=C.length;dd=[];ee=[]}while(++a<b){if(k=C[a]){"
|
||||
,i:"if((cc=A)&&((P=Q(cc))||T(cc))){var K=false,ff=dd.length;while(ff--)if(K=dd[ff]==cc)break;if(K){u[j]=ee[ff]}else{dd.push(cc);ee.push(A=(A=u[j])&&P?(Q(A)?A:[]):(T(A)?A:{}));u[j]=G(A,cc,T,dd,ee)}}else if(cc!=null)u[j]=cc"}),on=c(Vt),un=c({a:"n",j:"[]",i:"u"+(Ot?"[o]=":".push")+"([j,A])"}),an=c(Vt,{q:"if(typeof d!='function'){var q,t=f.apply(E,arguments),l=t.length;for(j=1;j<l;j++){q=t[j];if(q in n)u[q]=n[q]}}else{if(y)d=c(d,y)",i:"if(d(A,j,n))u[j]=A",e:"}"}),fn=c({a:"n",j:"[]",i:"u.push(A)"}),ln=
|
||||
c({a:"e,gg",j:"false",o:i,d:{b:"if(z.call(e)==x)return e.indexOf(gg)>-1"},i:"if(A===gg)return true"}),cn=c(Ft,It),hn=c(Ft,qt),pn=c(Ft,Ut),dn=c(Ft,zt,{j:"",i:"if(d(A,j,e))return A"}),vn=c(Ft,zt),mn=c(Ft,It,{i:"q=d(A,j,e);(h.call(u,q)?u[q]:u[q]=[]).push(A)"}),gn=c(Xt,{a:"e,U",q:"var C=w.call(arguments,2),R=typeof U=='function'",i:{b:"u[j]=(R?U:A[U]).apply(A,C)",l:"u"+(Ot?"[o]=":".push")+"((R?U:A[U]).apply(A,C))"}}),yn=c(Ft,Xt),bn=c(Xt,{a:"e,aa",i:{b:"u[j]=A[aa]",l:"u"+(Ot?"[o]=":".push")+"(A[aa])"}
|
||||
}),wn=c({a:"e,d,B,y",j:"B",q:"var V=arguments.length<3;if(y)d=c(d,y)",d:{b:"if(V)u=k[++j]"},i:{b:"u=d(u,A,j,e)",l:"u=V?(V=false,A):d(u,A,j,e)"}}),En=c(Ft,Ut,{i:"!"+Ut.i}),Sn=c(Ft,qt,{j:"false",i:qt.i.replace("!","")}),xn=c(Ft,It,Xt,{i:{b:"u[j]={a:d(A,j,e),b:j,c:A}",l:"u"+(Ot?"[o]=":".push")+"({a:d(A,j,e),b:j,c:A})"},e:"u.sort(I);l=u.length;while(l--)u[l]=u[l].c"}),Tn=c(Ut,{a:"e,Z",q:"var t=[];J(Z,function(A,q){t.push(q)});var bb=t.length",i:"for(var q,Y=true,s=0;s<bb;s++){q=t[s];if(!(Y=A[q]===Z[q]))break}Y&&u.push(A)"
|
||||
}),Nn=c({r:i,s:i,a:"n",j:"n",q:"var L=arguments,l=L.length;if(l>1){for(var j=1;j<l;j++)u[L[j]]=F(u[L[j]],u);return u}",i:"if(S(u[j]))u[j]=F(u[j],u)"});s.VERSION="0.7.0",s.after=function(e,t){return 1>e?t():function(){if(1>--e)return t.apply(this,arguments)}},s.bind=A,s.bindAll=Nn,s.chain=function(e){return e=new o(e),e.__chain__=n,e},s.clone=b,s.compact=function(e){var t=[];if(!e)return t;for(var n=-1,r=e.length;++n<r;)e[n]&&t.push(e[n]);return t},s.compose=function(){var e=arguments;return function(
|
||||
){for(var t=arguments,n=e.length;n--;)t=[e[n].apply(this,t)];return t[0]}},s.contains=ln,s.countBy=cn,s.debounce=function(e,t,n){function i(){a=r,n||(o=e.apply(u,s))}var s,o,u,a;return function(){var r=n&&!a;return s=arguments,u=this,yt(a),a=bt(i,t),r&&(o=e.apply(u,s)),o}},s.defaults=Qt,s.defer=function(e){var n=et.call(arguments,1);return bt(function(){return e.apply(t,n)},1)},s.delay=function(e,n){var r=et.call(arguments,2);return bt(function(){return e.apply(t,r)},n)},s.difference=function(e){
|
||||
var t=[];if(!e)return t;for(var n=-1,r=e.length,i=Q.apply(D,arguments),i=a(i,r);++n<r;)i(e[n])||t.push(e[n]);return t},s.escape=function(e){return e==r?"":(e+"").replace($,p)},s.every=hn,s.extend=Gt,s.filter=pn,s.find=dn,s.first=S,s.flatten=x,s.forEach=vn,s.forIn=Yt,s.forOwn=Zt,s.functions=en,s.groupBy=mn,s.has=function(e,t){return e?G.call(e,t):i},s.identity=O,s.indexOf=T,s.initial=function(e,t,n){return e?et.call(e,0,-(t==r||n?1:t)):[]},s.intersection=function(e){var t=[];if(!e)return t;var n,r=
|
||||
arguments.length,i=[],s=-1,o=e.length;e:for(;++s<o;)if(n=e[s],0>T(t,n)){for(var u=1;u<r;u++)if(!(i[u]||(i[u]=a(arguments[u])))(n))continue e;t.push(n)}return t},s.invert=tn,s.invoke=gn,s.isArguments=m,s.isArray=$t,s.isBoolean=function(e){return e===n||e===i||tt.call(e)==ht},s.isElement=function(e){return e?1===e.nodeType:i},s.isEmpty=nn,s.isEqual=w,s.isFinite=function(e){return st(e)&&tt.call(e)==dt},s.isFunction=g,s.isNaN=function(e){return tt.call(e)==dt&&e!=+e},s.isNull=function(e){return e===
|
||||
r},s.isObject=function(e){return e?Bt[typeof e]:i},s.isUndefined=function(e){return e===t},s.keys=rn,s.last=function(e,t,n){if(e){var i=e.length;return t==r||n?e[i-1]:et.call(e,-t||i)}},s.lastIndexOf=function(e,t,n){if(!e)return-1;var r=e.length;for(n&&"number"==typeof n&&(r=(0>n?ut(0,r+n):at(n,r-1))+1);r--;)if(e[r]===t)return r;return-1},s.lateBind=function(e,t){return l(t,e,et.call(arguments,2))},s.map=yn,s.max=N,s.memoize=function(e,t){var n={};return function(){var r=t?t.apply(this,arguments)
|
||||
:arguments[0];return G.call(n,r)?n[r]:n[r]=e.apply(this,arguments)}},s.merge=sn,s.min=function(e,t,n){var r=Infinity,i=r;if(!e)return i;var s=-1,o=e.length;if(!t){for(;++s<o;)e[s]<i&&(i=e[s]);return i}for(n&&(t=u(t,n));++s<o;)n=t(e[s],s,e),n<r&&(r=n,i=e[s]);return i},s.mixin=M,s.noConflict=function(){return e._=j,this},s.object=function(e,t){if(!e)return{};for(var n=-1,r=e.length,i={};++n<r;)t?i[e[n]]=t[n]:i[e[n][0]]=e[n][1];return i},s.omit=on,s.once=function(e){var t,s=i;return function(){return s?
|
||||
t:(s=n,t=e.apply(this,arguments),e=r,t)}},s.pairs=un,s.partial=function(e){return l(e,et.call(arguments,1))},s.pick=an,s.pluck=bn,s.random=function(e,t){return e==r&&t==r&&(t=1),e=+e||0,t==r&&(t=e,e=0),e+rt(ft()*((+t||0)-e+1))},s.range=function(e,t,n){e=+e||0,n=+n||1,t==r&&(t=e,e=0);for(var i=-1,t=ut(0,Math.ceil((t-e)/n)),s=Array(t);++i<t;)s[i]=e,e+=n;return s},s.reduce=wn,s.reduceRight=E,s.reject=En,s.rest=C,s.result=function(e,t){if(!e)return r;var n=e[t];return g(n)?e[t]():n},s.shuffle=function(
|
||||
e){if(!e)return[];for(var t,n=-1,r=e.length,i=Array(r);++n<r;)t=rt(ft()*(n+1)),i[n]=i[t],i[t]=e[n];return i},s.size=function(e){if(!e)return 0;var t=e.length;return t===+t?t:rn(e).length},s.some=Sn,s.sortBy=xn,s.sortedIndex=k,s.tap=function(e,t){return t(e),e},s.template=function(e,t,n){n||(n={});var e=e+"",r,i,o=0,u=s.templateSettings,a="__p += '",f=n.variable||u.variable,l=f;e.replace(RegExp((n.escape||u.escape||V).source+"|"+(n.interpolate||u.interpolate||V).source+"|"+(n.evaluate||u.evaluate||
|
||||
V).source+"|$","g"),function(t,n,i,s,u){a+=e.slice(o,u).replace(J,h),a+=n?"'+__e("+n+")+'":s?"';"+s+";__p+='":i?"'+((__t=("+i+"))==null?'':__t)+'":"",r||(r=s||F.test(n||i)),o=u+t.length}),a+="';",l||(f="obj",r?a="with("+f+"){"+a+"}":(n=RegExp("(\\(\\s*)"+f+"\\."+f+"\\b","g"),a=a.replace(W,"$&"+f+".").replace(n,"$1__d"))),a=(r?a.replace(q,""):a).replace(R,"$1").replace(U,"$1;"),a="function("+f+"){"+(l?"":f+"||("+f+"={});")+"var __t,__p='',__e=_.escape"+(r?",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}"
|
||||
:(l?"":",__d="+f+"."+f+"||"+f)+";")+a+"return __p}";try{i=Function("_","return "+a)(s)}catch(c){throw c.source=a,c}return t?i(t):(i.source=a,i)},s.throttle=function(e,t){function n(){a=new Date,u=r,s=e.apply(o,i)}var i,s,o,u,a=0;return function(){var r=new Date,f=t-(r-a);return i=arguments,o=this,0>=f?(a=r,s=e.apply(o,i)):u||(u=bt(n,f)),s}},s.times=function(e,t,n){var r=-1,i=Array(e||0);if(n)for(;++r<e;)i[r]=t.call(n,r);else for(;++r<e;)i[r]=t(r);return i},s.toArray=function(e){if(!e)return[];var t=
|
||||
e.length;return t===+t?(Nt?tt.call(e)==gt:"string"==typeof e)?e.split(""):et.call(e):fn(e)},s.unescape=function(e){return e==r?"":(e+"").replace(I,v)},s.union=function(){for(var e=-1,t=Q.apply(D,arguments),n=t.length,r=[];++e<n;)0>T(r,t[e])&&r.push(t[e]);return r},s.uniq=L,s.uniqueId=function(e){var t=H++;return e?e+t:t},s.values=fn,s.where=Tn,s.without=function(e){var t=[];if(!e)return t;for(var n=-1,r=e.length,i=a(arguments,1,20);++n<r;)i(e[n])||t.push(e[n]);return t},s.wrap=function(e,t){return function(
|
||||
){var n=[e];return arguments.length&&Y.apply(n,arguments),t.apply(this,n)}},s.zip=function(e){if(!e)return[];for(var t=-1,n=N(bn(arguments,"length")),r=Array(n);++t<n;)r[t]=bn(arguments,t);return r},s.all=hn,s.any=Sn,s.collect=yn,s.detect=dn,s.drop=C,s.each=vn,s.foldl=wn,s.foldr=E,s.head=S,s.include=ln,s.inject=wn,s.methods=en,s.select=pn,s.tail=C,s.take=S,s.unique=L,vn({Date:pt,Number:dt,RegExp:mt,String:gt},function(e,t){s["is"+t]=function(t){return tt.call(t)==e}}),o.prototype=s.prototype,M(s)
|
||||
,o.prototype.chain=function(){return this.__chain__=n,this},o.prototype.value=function(){return this.__wrapped__},vn("pop push reverse shift sort splice unshift".split(" "),function(e){var t=D[e];o.prototype[e]=function(){var e=this.__wrapped__;return t.apply(e,arguments),Et&&e.length===0&&delete e[0],this.__chain__&&(e=new o(e),e.__chain__=n),e}}),vn(["concat","join","slice"],function(e){var t=D[e];o.prototype[e]=function(){var e=t.apply(this.__wrapped__,arguments);return this.__chain__&&(e=new
|
||||
o(e),e.__chain__=n),e}}),typeof define=="function"&&typeof define.amd=="object"&&define.amd?(e._=s,define(function(){return s})):_?"object"==typeof module&&module&&module.exports==_?(module.exports=s)._=s:_._=s:e._=s})(this);
|
||||
8
vendor/underscore/test/arrays.js
vendored
8
vendor/underscore/test/arrays.js
vendored
@@ -157,6 +157,10 @@ $(document).ready(function() {
|
||||
numbers = [1, 40, 40, 40, 40, 40, 40, 40, 50, 60, 70]; num = 40;
|
||||
index = _.indexOf(numbers, num, true);
|
||||
equal(index, 1, '40 is in the list');
|
||||
|
||||
numbers = [1, 2, 3, 1, 2, 3, 1, 2, 3];
|
||||
index = _.indexOf(numbers, 2, 5);
|
||||
equal(index, 7, 'supports the fromIndex argument');
|
||||
});
|
||||
|
||||
test("lastIndexOf", function() {
|
||||
@@ -167,6 +171,10 @@ $(document).ready(function() {
|
||||
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(_.indexOf(null, 2), -1, 'handles nulls properly');
|
||||
|
||||
numbers = [1, 2, 3, 1, 2, 3, 1, 2, 3];
|
||||
index = _.lastIndexOf(numbers, 2, 2);
|
||||
equal(index, 1, 'supports the fromIndex argument');
|
||||
});
|
||||
|
||||
test("range", function() {
|
||||
|
||||
16
vendor/underscore/test/collections.js
vendored
16
vendor/underscore/test/collections.js
vendored
@@ -107,6 +107,9 @@ $(document).ready(function() {
|
||||
}
|
||||
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; });
|
||||
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');
|
||||
@@ -326,6 +329,13 @@ $(document).ready(function() {
|
||||
|
||||
var context = {};
|
||||
_.groupBy([{}], function(){ ok(this === context); }, context);
|
||||
|
||||
grouped = _.groupBy([4.2, 6.1, 6.4], function(num) {
|
||||
return Math.floor(num) > 4 ? 'hasOwnProperty' : 'constructor';
|
||||
});
|
||||
equal(grouped.constructor.length, 1);
|
||||
equal(grouped.hasOwnProperty.length, 2);
|
||||
|
||||
});
|
||||
|
||||
test('countBy', function() {
|
||||
@@ -341,6 +351,12 @@ $(document).ready(function() {
|
||||
|
||||
var context = {};
|
||||
_.countBy([{}], function(){ ok(this === context); }, context);
|
||||
|
||||
grouped = _.countBy([4.2, 6.1, 6.4], function(num) {
|
||||
return Math.floor(num) > 4 ? 'hasOwnProperty' : 'constructor';
|
||||
});
|
||||
equal(grouped.constructor, 1);
|
||||
equal(grouped.hasOwnProperty, 2);
|
||||
});
|
||||
|
||||
test('sortedIndex', function() {
|
||||
|
||||
7
vendor/underscore/test/objects.js
vendored
7
vendor/underscore/test/objects.js
vendored
@@ -15,17 +15,22 @@ $(document).ready(function() {
|
||||
});
|
||||
|
||||
test("values", function() {
|
||||
equal(_.values({one : 1, two : 2}).join(', '), '1, 2', 'can extract the values from an object');
|
||||
equal(_.values({one: 1, two: 2}).join(', '), '1, 2', 'can extract the values from an object');
|
||||
equal(_.values({one: 1, two: 2, length: 3}).join(', '), '1, 2, 3', '... even when one of them is "length"');
|
||||
});
|
||||
|
||||
test("pairs", function() {
|
||||
deepEqual(_.pairs({one: 1, two: 2}), [['one', 1], ['two', 2]], 'can convert an object into pairs');
|
||||
deepEqual(_.pairs({one: 1, two: 2, length: 3}), [['one', 1], ['two', 2], ['length', 3]], '... even when one of them is "length"');
|
||||
});
|
||||
|
||||
test("invert", function() {
|
||||
var obj = {first: 'Moe', second: 'Larry', third: 'Curly'};
|
||||
equal(_.keys(_.invert(obj)).join(' '), 'Moe Larry Curly', 'can invert an object');
|
||||
ok(_.isEqual(_.invert(_.invert(obj)), obj), 'two inverts gets you back where you started');
|
||||
|
||||
var obj = {length: 3};
|
||||
ok(_.invert(obj)['3'] == 'length', 'can invert an object with "length"')
|
||||
});
|
||||
|
||||
test("functions", function() {
|
||||
|
||||
34
vendor/underscore/underscore-min.js
vendored
34
vendor/underscore/underscore-min.js
vendored
File diff suppressed because one or more lines are too long
89
vendor/underscore/underscore.js
vendored
89
vendor/underscore/underscore.js
vendored
@@ -105,9 +105,12 @@
|
||||
return results;
|
||||
};
|
||||
|
||||
// Internal data flag for performing `reduceRight`.
|
||||
var right = null;
|
||||
|
||||
// **Reduce** builds up a single result from a list of values, aka `inject`,
|
||||
// or `foldl`. Delegates to **ECMAScript 5**'s native `reduce` if available.
|
||||
_.reduce = _.foldl = _.inject = function(obj, iterator, memo, context, right) {
|
||||
_.reduce = _.foldl = _.inject = function(obj, iterator, memo, context) {
|
||||
var initial = arguments.length > 2;
|
||||
if (obj == null) obj = [];
|
||||
if (!right && nativeReduce && obj.reduce === nativeReduce) {
|
||||
@@ -133,14 +136,18 @@
|
||||
// The right-associative version of reduce, also known as `foldr`.
|
||||
// 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);
|
||||
}
|
||||
var keys = _.keys(obj).reverse();
|
||||
var values = _.toArray(obj).reverse();
|
||||
return _.reduce(values, iterator, memo, context, {keys: keys, list: obj});
|
||||
var values = _.toArray(obj).reverse();
|
||||
if (context && !initial) iterator = _.bind(iterator, context);
|
||||
right = {keys: _.keys(obj).reverse(), list: obj};
|
||||
var result = initial ? _.reduce(values, iterator, memo, context) : _.reduce(values, iterator);
|
||||
right = null;
|
||||
return result;
|
||||
};
|
||||
|
||||
// Return the first value which passes a truth test. Aliased as `detect`.
|
||||
@@ -206,9 +213,9 @@
|
||||
return !!result;
|
||||
};
|
||||
|
||||
// Determine if a given value is included in the array or object using `===`.
|
||||
// Aliased as `contains`.
|
||||
_.include = _.contains = function(obj, target) {
|
||||
// Determine if the array or object contains a given value (using `===`).
|
||||
// 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;
|
||||
@@ -326,7 +333,7 @@
|
||||
// to group by, or a function that returns the criterion.
|
||||
_.groupBy = function(obj, value, context) {
|
||||
return group(obj, value, context, function(result, key, value) {
|
||||
(result[key] || (result[key] = [])).push(value);
|
||||
(_.has(result, key) ? result[key] : (result[key] = [])).push(value);
|
||||
});
|
||||
};
|
||||
|
||||
@@ -335,20 +342,20 @@
|
||||
// criterion.
|
||||
_.countBy = function(obj, value, context) {
|
||||
return group(obj, value, context, function(result, key, value) {
|
||||
result[key] || (result[key] = 0);
|
||||
if (!_.has(result, key)) result[key] = 0;
|
||||
result[key]++;
|
||||
});
|
||||
};
|
||||
|
||||
// Use a comparator function to figure out the smallest index at which
|
||||
// an object should be inserted so as to maintain order. Uses binary search.
|
||||
_.sortedIndex = function(array, obj, iterator) {
|
||||
_.sortedIndex = function(array, obj, iterator, context) {
|
||||
iterator || (iterator = _.identity);
|
||||
var value = iterator(obj);
|
||||
var value = iterator.call(context, obj);
|
||||
var low = 0, high = array.length;
|
||||
while (low < high) {
|
||||
var mid = (low + high) >> 1;
|
||||
iterator(array[mid]) < value ? low = mid + 1 : high = mid;
|
||||
var mid = (low + high) >>> 1;
|
||||
iterator.call(context, array[mid]) < value ? low = mid + 1 : high = mid;
|
||||
}
|
||||
return low;
|
||||
};
|
||||
@@ -431,12 +438,12 @@
|
||||
// Produce a duplicate-free version of the array. If the array has already
|
||||
// been sorted, you have the option of using a faster algorithm.
|
||||
// Aliased as `unique`.
|
||||
_.uniq = _.unique = function(array, isSorted, iterator) {
|
||||
var initial = iterator ? _.map(array, iterator) : array;
|
||||
_.uniq = _.unique = function(array, isSorted, iterator, context) {
|
||||
var initial = iterator ? _.map(array, iterator, context) : array;
|
||||
var results = [];
|
||||
var seen = [];
|
||||
each(initial, function(value, index) {
|
||||
if (isSorted ? (!index || seen[seen.length - 1] !== value) : !_.include(seen, value)) {
|
||||
if (isSorted ? (!index || seen[seen.length - 1] !== value) : !_.contains(seen, value)) {
|
||||
seen.push(value);
|
||||
results.push(array[index]);
|
||||
}
|
||||
@@ -465,7 +472,7 @@
|
||||
// Only the elements present in just the first array will remain.
|
||||
_.difference = function(array) {
|
||||
var rest = concat.apply(ArrayProto, slice.call(arguments, 1));
|
||||
return _.filter(array, function(value){ return !_.include(rest, value); });
|
||||
return _.filter(array, function(value){ return !_.contains(rest, value); });
|
||||
};
|
||||
|
||||
// Zip together multiple lists into a single array -- elements that share
|
||||
@@ -503,21 +510,25 @@
|
||||
// for **isSorted** to use binary search.
|
||||
_.indexOf = function(array, item, isSorted) {
|
||||
if (array == null) return -1;
|
||||
var i, l;
|
||||
var i = 0, l = array.length;
|
||||
if (isSorted) {
|
||||
i = _.sortedIndex(array, item);
|
||||
return array[i] === item ? i : -1;
|
||||
if (typeof isSorted == 'number') {
|
||||
i = (isSorted < 0 ? Math.max(0, l + isSorted) : isSorted);
|
||||
} else {
|
||||
i = _.sortedIndex(array, item);
|
||||
return array[i] === item ? i : -1;
|
||||
}
|
||||
}
|
||||
if (nativeIndexOf && array.indexOf === nativeIndexOf) return array.indexOf(item);
|
||||
for (i = 0, l = array.length; i < l; i++) if (array[i] === item) return i;
|
||||
if (nativeIndexOf && array.indexOf === nativeIndexOf) return array.indexOf(item, isSorted);
|
||||
for (; i < l; i++) if (array[i] === item) return i;
|
||||
return -1;
|
||||
};
|
||||
|
||||
// Delegates to **ECMAScript 5**'s native `lastIndexOf` if available.
|
||||
_.lastIndexOf = function(array, item) {
|
||||
_.lastIndexOf = function(array, item, fromIndex) {
|
||||
if (array == null) return -1;
|
||||
if (nativeLastIndexOf && array.lastIndexOf === nativeLastIndexOf) return array.lastIndexOf(item);
|
||||
var i = array.length;
|
||||
if (nativeLastIndexOf && array.lastIndexOf === nativeLastIndexOf) return array.lastIndexOf(item, fromIndex);
|
||||
var i = (fromIndex != null ? fromIndex : array.length);
|
||||
while (i--) if (array[i] === item) return i;
|
||||
return -1;
|
||||
};
|
||||
@@ -708,22 +719,23 @@
|
||||
|
||||
// Retrieve the values of an object's properties.
|
||||
_.values = function(obj) {
|
||||
return _.map(obj, _.identity);
|
||||
var values = [];
|
||||
for (var key in obj) if (_.has(obj, key)) values.push(obj[key]);
|
||||
return values;
|
||||
};
|
||||
|
||||
// Convert an object into a list of `[key, value]` pairs.
|
||||
_.pairs = function(obj) {
|
||||
return _.map(obj, function(value, key) {
|
||||
return [key, value];
|
||||
});
|
||||
var pairs = [];
|
||||
for (var key in obj) if (_.has(obj, key)) pairs.push([key, obj[key]]);
|
||||
return pairs;
|
||||
};
|
||||
|
||||
// Invert the keys and values of an object. The values must be serializable.
|
||||
_.invert = function(obj) {
|
||||
return _.reduce(obj, function(memo, value, key) {
|
||||
memo[value] = key;
|
||||
return memo;
|
||||
}, {});
|
||||
var result = {};
|
||||
for (var key in obj) if (_.has(obj, key)) result[obj[key]] = key;
|
||||
return result;
|
||||
};
|
||||
|
||||
// Return a sorted list of the function names available on the object.
|
||||
@@ -761,7 +773,7 @@
|
||||
var copy = {};
|
||||
var keys = concat.apply(ArrayProto, slice.call(arguments, 1));
|
||||
for (var key in obj) {
|
||||
if (!_.include(keys, key)) copy[key] = obj[key];
|
||||
if (!_.contains(keys, key)) copy[key] = obj[key];
|
||||
}
|
||||
return copy;
|
||||
};
|
||||
@@ -897,7 +909,7 @@
|
||||
|
||||
// Is a given value a DOM element?
|
||||
_.isElement = function(obj) {
|
||||
return !!(obj && obj.nodeType == 1);
|
||||
return !!(obj && obj.nodeType === 1);
|
||||
};
|
||||
|
||||
// Is a given value an array?
|
||||
@@ -926,6 +938,13 @@
|
||||
};
|
||||
}
|
||||
|
||||
// Optimize `isFunction` if appropriate.
|
||||
if (typeof (/./) !== 'function') {
|
||||
_.isFunction = function(obj) {
|
||||
return typeof obj === 'function';
|
||||
};
|
||||
}
|
||||
|
||||
// Is a given object a finite number?
|
||||
_.isFinite = function(obj) {
|
||||
return _.isNumber(obj) && isFinite(obj);
|
||||
|
||||
Reference in New Issue
Block a user