lodash: Avoid an extra callback call in the sortedIndex while loop. [jddalton, spadgos]

Former-commit-id: 87228c7308475f9430e5bcb0bc0d647b2210388f
This commit is contained in:
John-David Dalton
2012-04-26 09:05:45 -04:00
parent 7fa4304097
commit 520d09e81e
2 changed files with 11 additions and 8 deletions

View File

@@ -859,9 +859,12 @@
low = 0,
high = array.length;
if (callback) {
value = callback(value);
}
while (low < high) {
mid = (low + high) >> 1;
if (callback ? callback(array[mid]) < callback(value) : array[mid] < value) {
if ((callback ? callback(array[mid]) : array[mid]) < value) {
low = mid + 1;
} else {
high = mid;

14
lodash.min.js vendored
View File

@@ -4,13 +4,13 @@
*/
;(function(q,h){"use strict";var m=!0,o=!1;function R(a){return"[object Arguments]"==k.call(a)}function i(a){return new p(a)}function p(a){this.o=a}function g(){for(var a,b=-1,c={},d={},e={},f=["c","j","g"];++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].k):c[a]=d[a]=e[a]||"";a=e.a;var b=/^[^,]+/.exec(a)[0],f=e.h,j=e.i,g=!("x"==b||"b"==j),j=!("c"==b||"a"==j),h=e.n!==o;return Function("d,e,j,m,n,o,q,r,t,u,y,D,F,I,J,l,K",'"use strict";return function('+a+
"){"+("var p,C"+(f?"="+f:""))+";if("+(e.f||b+"==K")+")return "+(e.e||"C")+";"+(e.m||"")+";"+(g?"var w="+b+".length;p=-1;"+((j?"if(w===+w){":"")+(c.c||"")+";while("+(c.j||"++p<w")+"){"+c.g+"}"+(j?"}":"")):"")+(j?(g?"else{":"")+(d.c||"")+";for("+(d.j||"p in "+b)+"){"+(h?"if(n.call("+/\S+$/.exec(d.j||b)[0]+",p)){":"")+d.g+(h?"}":"")+"}"+(g?"}":""):"")+(e.d||"")+";return "+(e.l||"C")+"}")(B,s,C,aa,r,ba,D,Infinity,E,ca,Math,n,F,k,m,o)}function S(a){return a.replace(ta,function(a,c){return y[c]})}function da(a,
b,c,d){if(a==h)return c;var e=2<arguments.length,f=a.length;d&&(b=s(b,d));if(f===+f){for(f&&!e&&(c=a[--f]);f--;)c=b(c,a[f],f,a);return c}var j=T(a);for((f=j.length)&&!e&&(c=a[j[--f]]);f--;)e=j[f],c=b(c,a[e],e,a);return c}function ea(a,b,c){for(var d,e=0,f=a.length;e<f;)d=e+f>>1,(c?c(a[d])<c(b):a[d]<b)?e=d+1:f=d;return e}function U(a,b,c){return b==h||c?a[0]:n.call(a,0,b)}function fa(a,b){if(b)return C.apply([],a);for(var c=-1,d=a.length,e=[];++c<d;)E(a[c])?G.apply(e,fa(a[c])):e.push(a[c]);return e}
function D(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=n.call(arguments,1);return V(H(a),function(a){return W(b,function(b){return-1<D(b,a)})})}function ha(a,b,c){var d=a.length;return b==h||c?a[d-1]:n.call(a,-b||d)}function ia(a,b,c){return n.call(a,b==h||c?1:b)}function H(a,b,c){var c=c?I(a,c):a,d=[];3>a.length&&(b=m);J(c,function(c,f,j){if(b?ha(c)!==f||!c.length:0>D(c,f))c.push(f),d.push(a[j]);return c},
[]);return d}function s(a,b){var c=n.call(arguments,2),d=c.length;return function(){c.length=d;G.apply(c,arguments);return a.apply(b,c)}}function ja(a,b,c){var d;return function(){var e=arguments,f=this;c&&!d&&a.apply(f,e);ua(d);d=K(function(){d=h;c||a.apply(f,e)},b)}}function X(a,b,c){c||(c=[]);if(a===b)return 0!==a||1/a==1/b;if(a==h||b==h)return a===b;a.p&&(a=a.o);b.p&&(b=b.o);if(a.isEqual&&t(a.isEqual))return a.isEqual(b);if(b.isEqual&&t(b.isEqual))return b.isEqual(a);var d=k.call(a);if(d!=k.call(b))return o;
switch(d){case F:return a==""+b;case L:return a!=+a?b!=+b:0==a?1/a==1/b:a==+b;case ka:case la:return+a==+b;case ma: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==B){if(f=a.length,e=f==b.length)for(;f--&&(e=f in a==f in b&&X(a[f],b[f],c)););}else{if("constructor"in a!="constructor"in b||a.constructor!=b.constructor)return o;
for(var j in a)if(r.call(a,j)&&(f++,!(e=r.call(b,j)&&X(a[j],b[j],c))))break;if(e){for(j in b)if(r.call(b,j)&&!f--)break;e=!f}}c.pop();return e}function t(a){return k.call(a)==aa}function ba(a){return a}function na(a){u(M(a),function(b){var c=i[b]=a[b];i.prototype[b]=function(){var a=[this.o];G.apply(a,arguments);a=c.apply(i,a);return this.p?(new p(a)).chain():a}})}var y={"\\":"\\","'":"'",r:"\r",n:"\n",t:"\t",u2028:"\u2028",u2029:"\u2029"};(function(){for(var a in y)y[y[a]]=a})();var Y="object"==
typeof exports&&exports&&("object"==typeof global&&global&&global==global.global&&(q=global),exports),va=0,wa=q._,xa=/\\|'|\r|\n|\t|\u2028|\u2029/g,Z=/.^/,ta=/\\(\\|'|r|n|t|u2028|u2029)/g,B="[object Array]",ka="[object Boolean]",la="[object Date]",aa="[object Function]",L="[object Number]",ma="[object RegExp]",F="[object String]",z=Array.prototype,N=Object.prototype,C=z.concat,r=N.hasOwnProperty,G=z.push,n=z.slice,k=N.toString,ya=q.isFinite,N=Object.keys,ua=q.clearTimeout,K=q.setTimeout,O={a:"c",
h:"[]",m:"var M=j.apply([],D.call(arguments,1))",g:"if(q(M,c[p])<0)C.push(c[p])"},v={h:"J",g:"if(!f(h[p],p,h))return!C"},$={a:"x",h:"x",m:"for(var E,j=1,w=arguments.length;j<w;j++){E=arguments[j]",j:"p in E",n:o,g:"x[p]=E[p]",d:"}"},A={h:"[]",g:"f(h[p],p,h)&&C.push(h[p])"},l={a:"h,f,H",h:"h",m:"if(!f){f=o}else if(H){f=e(f,H)}",g:"f(h[p],p,h)"},w={h:"",e:"[]",c:{b:"C=Array(w)",k:"C=[]"},g:{b:"C[p]=f(h[p],p,h)",k:"C.push(f(h[p],p,h))"}},x={m:"var k,i=-r,C=i;if(!f){if(t(h)&&h[0]===+h[0])return y.max.apply(y,h);if(u(h))return C}else if(H)f=e(f,H)",
b,c,d){if(a==h)return c;var e=2<arguments.length,f=a.length;d&&(b=s(b,d));if(f===+f){for(f&&!e&&(c=a[--f]);f--;)c=b(c,a[f],f,a);return c}var j=T(a);for((f=j.length)&&!e&&(c=a[j[--f]]);f--;)e=j[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 U(a,b,c){return b==h||c?a[0]:n.call(a,0,b)}function fa(a,b){if(b)return C.apply([],a);for(var c=-1,d=a.length,e=[];++c<d;)E(a[c])?G.apply(e,fa(a[c])):e.push(a[c]);
return e}function D(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=n.call(arguments,1);return V(H(a),function(a){return W(b,function(b){return-1<D(b,a)})})}function ha(a,b,c){var d=a.length;return b==h||c?a[d-1]:n.call(a,-b||d)}function ia(a,b,c){return n.call(a,b==h||c?1:b)}function H(a,b,c){var c=c?I(a,c):a,d=[];3>a.length&&(b=m);J(c,function(c,f,j){if(b?ha(c)!==f||!c.length:0>D(c,f))c.push(f),d.push(a[j]);
return c},[]);return d}function s(a,b){var c=n.call(arguments,2),d=c.length;return function(){c.length=d;G.apply(c,arguments);return a.apply(b,c)}}function ja(a,b,c){var d;return function(){var e=arguments,f=this;c&&!d&&a.apply(f,e);ua(d);d=K(function(){d=h;c||a.apply(f,e)},b)}}function X(a,b,c){c||(c=[]);if(a===b)return 0!==a||1/a==1/b;if(a==h||b==h)return a===b;a.p&&(a=a.o);b.p&&(b=b.o);if(a.isEqual&&t(a.isEqual))return a.isEqual(b);if(b.isEqual&&t(b.isEqual))return b.isEqual(a);var d=k.call(a);
if(d!=k.call(b))return o;switch(d){case F:return a==""+b;case L:return a!=+a?b!=+b:0==a?1/a==1/b:a==+b;case ka:case la:return+a==+b;case ma: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==B){if(f=a.length,e=f==b.length)for(;f--&&(e=f in a==f in b&&X(a[f],b[f],c)););}else{if("constructor"in a!="constructor"in b||a.constructor!=
b.constructor)return o;for(var j in a)if(r.call(a,j)&&(f++,!(e=r.call(b,j)&&X(a[j],b[j],c))))break;if(e){for(j in b)if(r.call(b,j)&&!f--)break;e=!f}}c.pop();return e}function t(a){return k.call(a)==aa}function ba(a){return a}function na(a){u(M(a),function(b){var c=i[b]=a[b];i.prototype[b]=function(){var a=[this.o];G.apply(a,arguments);a=c.apply(i,a);return this.p?(new p(a)).chain():a}})}var y={"\\":"\\","'":"'",r:"\r",n:"\n",t:"\t",u2028:"\u2028",u2029:"\u2029"};(function(){for(var a in y)y[y[a]]=
a})();var Y="object"==typeof exports&&exports&&("object"==typeof global&&global&&global==global.global&&(q=global),exports),va=0,wa=q._,xa=/\\|'|\r|\n|\t|\u2028|\u2029/g,Z=/.^/,ta=/\\(\\|'|r|n|t|u2028|u2029)/g,B="[object Array]",ka="[object Boolean]",la="[object Date]",aa="[object Function]",L="[object Number]",ma="[object RegExp]",F="[object String]",z=Array.prototype,N=Object.prototype,C=z.concat,r=N.hasOwnProperty,G=z.push,n=z.slice,k=N.toString,ya=q.isFinite,N=Object.keys,ua=q.clearTimeout,K=
q.setTimeout,O={a:"c",h:"[]",m:"var M=j.apply([],D.call(arguments,1))",g:"if(q(M,c[p])<0)C.push(c[p])"},v={h:"J",g:"if(!f(h[p],p,h))return!C"},$={a:"x",h:"x",m:"for(var E,j=1,w=arguments.length;j<w;j++){E=arguments[j]",j:"p in E",n:o,g:"x[p]=E[p]",d:"}"},A={h:"[]",g:"f(h[p],p,h)&&C.push(h[p])"},l={a:"h,f,H",h:"h",m:"if(!f){f=o}else if(H){f=e(f,H)}",g:"f(h[p],p,h)"},w={h:"",e:"[]",c:{b:"C=Array(w)",k:"C=[]"},g:{b:"C[p]=f(h[p],p,h)",k:"C.push(f(h[p],p,h))"}},x={m:"var k,i=-r,C=i;if(!f){if(t(h)&&h[0]===+h[0])return y.max.apply(y,h);if(u(h))return C}else if(H)f=e(f,H)",
g:"k=f?f(h[p],p,h):h[p];if(k>=i)i=k,C=h[p]"},E=Array.isArray||function(a){return k.call(a)==B},ca=g({a:"L",i:"b",h:"J",m:"var g=I.call(L);if(g==d||g==F)return!L.length",g:"return l"}),oa=g({a:"h,G",h:"l",g:"if(h[p]===G)return J"}),W=g(l,v),V=g(l,A),pa=g(l,{g:"if(f(h[p],p,h))return h[p]"}),u=g(l),za=g(l,{h:"{}",m:"var A,v=I.call(f)==m;if(v&&H)f=e(f,H)",g:"A=v?f(h[p],p,h):h[p][f];(C[A]||(C[A]=[])).push(h[p])"}),I=g(l,w),qa=g(l,x),x=g(l,x,{m:x.m.replace("-","").replace("max","min"),g:x.g.replace(">=",
"<")}),P=g(w,{a:"h,B",g:{b:"C[p]=h[p][B]",k:"C.push(h[p][B])"}}),J=g({a:"h,f,a,H",h:"a",m:"var s=arguments.length>2;if(H)f=e(f,H)",c:{b:"if(!s)C=h[++p]"},g:{b:"C=f(C,h[p],p,h)",k:"C=s?f(C,h[p],p,h):(s=J,h[p])"}}),A=g(l,A,{g:"!"+A.g}),v=g(l,v,{h:"l",g:v.g.replace("!","")}),ra=g(w,{a:"h",g:{b:"C[p]=h[p]",k:"C.push(h[p])"}}),l=g({a:"c",h:"[]",g:"if(c[p])C.push(c[p])"}),Aa=g(O),w=g(w,{a:"c,z",m:"var b=D.call(arguments,2),v=I.call(z)==m",g:"C[p]=(v?z:c[p][z]).apply(c[p],b)"}),O=g(O,{h:"[]",m:"var M=D.call(arguments,1)"}),
sa=g($,{g:"if(x[p]==K)"+$.g}),Q=g($),M=g({a:"x",h:"[]",n:o,g:"if(I.call(x[p])==m)C.push(p)",l:"C.sort()"});R(arguments)||(R=function(a){return!(!a||!r.call(a,"callee"))});var T=N||g({a:"x",f:"x!==Object(x)",e:"throw TypeError()",h:"[]",g:"C.push(p)"});Q(i,{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:s,bindAll:function(a){var b=arguments,