diff --git a/dist/lodash.compat.js b/dist/lodash.compat.js index 951467e70..a15c9f762 100644 --- a/dist/lodash.compat.js +++ b/dist/lodash.compat.js @@ -3230,7 +3230,7 @@ var n = 0, length = array.length; - if (typeof callback == 'function') { + if (typeof callback != 'number' && callback != null) { var index = -1; callback = createCallback(callback, thisArg); while (++index < length && callback(array[index], index, array)) { @@ -3386,7 +3386,7 @@ var n = 0, length = array.length; - if (typeof callback == 'function') { + if (typeof callback != 'number' && callback != null) { var index = length; callback = createCallback(callback, thisArg); while (index-- && callback(array[index], index, array)) { @@ -3508,7 +3508,7 @@ var n = 0, length = array.length; - if (typeof callback == 'function') { + if (typeof callback != 'number' && callback != null) { var index = length; callback = createCallback(callback, thisArg); while (index-- && callback(array[index], index, array)) { @@ -3696,7 +3696,7 @@ * // => [{ 'name': 'beet', 'type': 'vegetable' }] */ function rest(array, callback, thisArg) { - if (typeof callback == 'function') { + if (typeof callback != 'number' && callback != null) { var n = 0, index = -1, length = array ? array.length : 0; diff --git a/dist/lodash.compat.min.js b/dist/lodash.compat.min.js index f5432a39c..7eea5bd67 100644 --- a/dist/lodash.compat.min.js +++ b/dist/lodash.compat.min.js @@ -16,8 +16,8 @@ u[n[o]]=o}return u}function w(n,t,r,e,u,o){var i=r===ot;if(r&&!i){r=typeof e=="u if(t&&((u=lr(t))||yr(t))){for(o=a.length;o--;)if(e=a[o]==t){f=c[o];break}e||(f=u?lr(f)?f:[]:yr(f)?f:{},i&&(o=i(f,t),typeof o!="undefined"&&(f=o)),a.push(t),c.push(f),i||(f=S(f,t,ot,i,a,c)))}else i&&(o=i(f,t),typeof o=="undefined"&&(o=t)),typeof o!="undefined"&&(f=o);n[r]=f});return n}function E(n){for(var t=-1,r=pr(n),e=r.length,u=Array(e);++tr?$t(0,u+r):r)||0,typeof u=="number"?o=-1<(A(n)?n.indexOf(t,r):z(n,t,r)):fr(n,function(n){return++eo&&(o=a)}}else t=!t&&A(n)?u:f(t,r),fr(n,function(n,r,u){r=t(n,r,u),r>e&&(e=r,o=n)});return o}function I(n,t,r,e){var u=3>arguments.length;if(t=f(t,e,4),lr(n)){var o=-1,i=n.length;for(u&&(r=n[++o]);++oarguments.length;if(typeof o!="number")var a=pr(n),o=a.length;else Xt&&A(n)&&(u=n.split(""));return t=f(t,e,4),$(n,function(n,e,f){e=a?a[--o]:--o,r=i?(i=W,u[e]):t(r,u[e],e,f)}),r}function B(n,t,r){var e;if(t=f(t,r),lr(n)){r=-1;for(var u=n.length;++rr?$t(0,u+r):r||0)-1;else if(r)return e=K(n,t),n[e]===t?e:-1;for(;++earguments.length;if(typeof o!="number")var a=pr(n),o=a.length;else Xt&&A(n)&&(u=n.split(""));return t=f(t,e,4),$(n,function(n,e,f){e=a?a[--o]:--o,r=i?(i=W,u[e]):t(r,u[e],e,f)}),r}function B(n,t,r){var e;if(t=f(t,r),lr(n)){r=-1;for(var u=n.length;++rr?$t(0,u+r):r||0)-1;else if(r)return e=K(n,t),n[e]===t?e:-1;for(;++e>>1,r(n[e])z(a,p))&&((r||c)&&a.push(p),i.push(e))}return i}function U(n,t){return Vt||Et&&2/g,yt=/($^)/,mt=/[&<>"']/g,_t=/['\n\r\t\u2028\u2029\\]/g,dt="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "),bt=Math.ceil,wt=rt.concat,jt=Math.floor,xt=vt.test(xt=Object.getPrototypeOf)&&xt,Ot=et.hasOwnProperty,At=rt.push,St=et.toString,Et=vt.test(Et=v.bind)&&Et,kt=vt.test(kt=Array.isArray)&&kt,qt=n.isFinite,Nt=n.isNaN,Rt=vt.test(Rt=Object.keys)&&Rt,$t=Math.max,Ft=Math.min,Dt=Math.random,It="[object Arguments]",Tt="[object Array]",Bt="[object Boolean]",Mt="[object Date]",Pt="[object Number]",zt="[object Object]",Ct="[object RegExp]",Kt="[object String]",Lt=!!n.attachEvent,Ut=Et&&!/\n|true/.test(Et+Lt),Vt=Et&&!Ut,Gt=Rt&&(Lt||Ut),Ht=(Ht={0:1,length:1},rt.splice.call(Ht,0,1),Ht[0]),Jt=J; (function(){function n(){this.x=1}var t=[];n.prototype={valueOf:1,y:1};for(var r in new n)t.push(r);for(r in arguments)Jt=!r;Z=!/valueOf/.test(t),nt=n.propertyIsEnumerable("prototype"),tt="x"!=t[0]})(1);var Qt=arguments.constructor==Object,Wt=!h(arguments),Xt="xx"!="x"[0]+Object("x")[0];try{var Yt=St.call(document)==zt&&!({toString:0}+"")}catch(Zt){}var nr={"[object Function]":W};nr[It]=nr[Tt]=nr[Bt]=nr[Mt]=nr[Pt]=nr[zt]=nr[Ct]=nr[Kt]=J;var tr={};tr[Tt]=Array,tr[Bt]=Boolean,tr[Mt]=Date,tr[zt]=Object,tr[Pt]=Number,tr[Ct]=RegExp,tr[Kt]=String; @@ -26,7 +26,7 @@ Wt&&(h=function(n){return n?Ot.call(n,"callee"):W});var ar=a(or,ir,{m:W}),cr=a(o var t=n.valueOf,r=typeof t=="function"&&(r=xt(t))&&xt(r);return r?n==r||xt(n)==r&&!h(n):y(n)}:y,mr=F,_r=N;r.after=function(n,t){return 1>n?t():function(){return 1>--n?t.apply(this,arguments):void 0}},r.assign=gr,r.at=function(n){var t=-1,r=wt.apply(rt,v(arguments,1)),e=r.length,u=Array(e);for(Xt&&A(n)&&(n=n.split(""));++tz(c,l)){f&&c.push(l);for(var s=r;--s;)if(!(u[s]||(u[s]=e(t[s],0,100)))(l))continue n;a.push(l)}}return a},r.invert=b,r.invoke=function(n,t){var r=v(arguments,2),e=-1,u=typeof t=="function",o=n?n.length:0,i=Array(typeof o=="number"?o:0); +}),e},r.initial=function(n,t,r){if(!n)return[];var e=0,u=n.length;if(typeof t!="number"&&t!=Q){var o=u;for(t=f(t,r);o--&&t(n[o],o,n);)e++}else e=t==Q||r?1:t||e;return v(n,0,Ft($t(0,u-e),u))},r.intersection=function(n){var t=arguments,r=t.length,u={0:{}},o=-1,i=n?n.length:0,f=100<=i,a=[],c=a;n:for(;++oz(c,l)){f&&c.push(l);for(var s=r;--s;)if(!(u[s]||(u[s]=e(t[s],0,100)))(l))continue n;a.push(l)}}return a},r.invert=b,r.invoke=function(n,t){var r=v(arguments,2),e=-1,u=typeof t=="function",o=n?n.length:0,i=Array(typeof o=="number"?o:0); return $(n,function(n){i[++e]=(u?t:n[t]).apply(n,r)}),i},r.keys=pr,r.map=F,r.max=D,r.memoize=function(n,t){var r={};return function(){var e=(t?t.apply(this,arguments):arguments[0])+"";return Ot.call(r,e)?r[e]:r[e]=n.apply(this,arguments)}},r.merge=S,r.min=function(n,t,r){var e=1/0,o=e;if(!t&&lr(n)){r=-1;for(var i=n.length;++rz(o,r,1))&&(u[r]=n)}),u},r.once=function(n){var t,r;return function(){return t?r:(t=J,r=n.apply(this,arguments),n=Q,r)}},r.pairs=function(n){for(var t=-1,r=pr(n),e=r.length,u=Array(e);++tr?$t(0,e+r):Ft(r,e-1))+1);e--;)if(n[e]===t)return e;return-1},r.mixin=G,r.noConflict=function(){return n._=ft,this},r.random=function(n,t){return n==Q&&t==Q&&(t=1),n=+n||0,t==Q&&(t=n,n=0),n+jt(Dt()*((+t||0)-n+1))},r.reduce=I,r.reduceRight=T,r.result=function(n,r){var e=n?n[r]:t;return j(e)?n[r]():e},r.size=function(n){var t=n?n.length:0;return typeof t=="number"?t:pr(n).length},r.some=B,r.sortedIndex=K,r.template=function(n,e,u){var o=r.templateSettings; n||(n=""),u=hr({},u,o);var i,f=hr({},u.imports,o.imports),o=pr(f),f=E(f),a=0,l=u.interpolate||yt,p="__p+='";n.replace(RegExp((u.escape||yt).source+"|"+l.source+"|"+(l===ht?gt:yt).source+"|"+(u.evaluate||yt).source+"|$","g"),function(t,r,e,u,o,f){return e||(e=u),p+=n.slice(a,f).replace(_t,c),r&&(p+="'+__e("+r+")+'"),o&&(i=J,p+="';"+o+";__p+='"),e&&(p+="'+((__t=("+e+"))==null?'':__t)+'"),a=f+t.length,t}),p+="';\n",l=u=u.variable,l||(u="obj",p="with("+u+"){"+p+"}"),p=(i?p.replace(ct,""):p).replace(lt,"$1").replace(pt,"$1;"),p="function("+u+"){"+(l?"":u+"||("+u+"={});")+"var __t,__p='',__e=_.escape"+(i?",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}":(l?"":",__d="+u+"."+u+"||"+u)+";")+p+"return __p}"; -try{var s=Function(o,"return "+p).apply(t,f)}catch(v){throw v.source=p,v}return e?s(e):(s.source=p,s)},r.unescape=function(n){return n==Q?"":(n+"").replace(at,g)},r.uniqueId=function(n){var t=++ut;return(n==Q?"":n+"")+t},r.all=q,r.any=B,r.detect=R,r.foldl=I,r.foldr=T,r.include=k,r.inject=I,cr(r,function(n,t){r.prototype[t]||(r.prototype[t]=function(){var t=[this.__wrapped__];return At.apply(t,arguments),n.apply(r,t)})}),r.first=M,r.last=function(n,t,r){if(n){var e=0,u=n.length;if(typeof t=="function"){var o=u; +try{var s=Function(o,"return "+p).apply(t,f)}catch(v){throw v.source=p,v}return e?s(e):(s.source=p,s)},r.unescape=function(n){return n==Q?"":(n+"").replace(at,g)},r.uniqueId=function(n){var t=++ut;return(n==Q?"":n+"")+t},r.all=q,r.any=B,r.detect=R,r.foldl=I,r.foldr=T,r.include=k,r.inject=I,cr(r,function(n,t){r.prototype[t]||(r.prototype[t]=function(){var t=[this.__wrapped__];return At.apply(t,arguments),n.apply(r,t)})}),r.first=M,r.last=function(n,t,r){if(n){var e=0,u=n.length;if(typeof t!="number"&&t!=Q){var o=u; for(t=f(t,r);o--&&t(n[o],o,n);)e++}else if(e=t,e==Q||r)return n[u-1];return v(n,$t(0,u-e))}},r.take=M,r.head=M,cr(r,function(n,t){r.prototype[t]||(r.prototype[t]=function(t,e){var u=n(this.__wrapped__,t,e);return t==Q||e&&typeof t!="function"?u:new r(u)})}),r.VERSION="1.0.0-rc.3",r.prototype.toString=function(){return this.__wrapped__+""},r.prototype.value=H,r.prototype.valueOf=H,fr(["join","pop","shift"],function(n){var t=rt[n];r.prototype[n]=function(){return t.apply(this.__wrapped__,arguments) }}),fr(["push","reverse","sort","unshift"],function(n){var t=rt[n];r.prototype[n]=function(){return t.apply(this.__wrapped__,arguments),this}}),fr(["concat","slice","splice"],function(n){var t=rt[n];r.prototype[n]=function(){return new r(t.apply(this.__wrapped__,arguments))}}),Ht&&fr(["pop","shift","splice"],function(n){var t=rt[n],e="splice"==n;r.prototype[n]=function(){var n=this.__wrapped__,u=t.apply(n,arguments);return 0===n.length&&delete n[0],e?new r(u):u}}),typeof define=="function"&&typeof define.amd=="object"&&define.amd?(n._=r,define(function(){return r })):X?typeof module=="object"&&module&&module.exports==X?(module.exports=r)._=r:X._=r:n._=r})(this); \ No newline at end of file diff --git a/dist/lodash.js b/dist/lodash.js index 9cb742f0e..95fc9d918 100644 --- a/dist/lodash.js +++ b/dist/lodash.js @@ -3080,7 +3080,7 @@ var n = 0, length = array.length; - if (typeof callback == 'function') { + if (typeof callback != 'number' && callback != null) { var index = -1; callback = createCallback(callback, thisArg); while (++index < length && callback(array[index], index, array)) { @@ -3236,7 +3236,7 @@ var n = 0, length = array.length; - if (typeof callback == 'function') { + if (typeof callback != 'number' && callback != null) { var index = length; callback = createCallback(callback, thisArg); while (index-- && callback(array[index], index, array)) { @@ -3358,7 +3358,7 @@ var n = 0, length = array.length; - if (typeof callback == 'function') { + if (typeof callback != 'number' && callback != null) { var index = length; callback = createCallback(callback, thisArg); while (index-- && callback(array[index], index, array)) { @@ -3546,7 +3546,7 @@ * // => [{ 'name': 'beet', 'type': 'vegetable' }] */ function rest(array, callback, thisArg) { - if (typeof callback == 'function') { + if (typeof callback != 'number' && callback != null) { var n = 0, index = -1, length = array ? array.length : 0; diff --git a/dist/lodash.min.js b/dist/lodash.min.js index 7cdd94c93..cebe63b28 100644 --- a/dist/lodash.min.js +++ b/dist/lodash.min.js @@ -4,36 +4,36 @@ * Build: `lodash modern -o ./dist/lodash.js` * Underscore.js 1.4.4 underscorejs.org/LICENSE */ -;(function(n,t){function r(n){return n&&typeof n=="object"&&n.__wrapped__?n:this instanceof r?(this.__wrapped__=n,void 0):new r(n)}function e(n,t,r){t||(t=0);var e=n.length,u=e-t>=(r||Y);if(u){var o={};for(r=t-1;++rt||typeof n=="undefined")return 1;if(nr?0:r);++er?xt(0,u+r):r)||0,typeof u=="number"?o=-1<(x(n)?n.indexOf(t,r):M(n,t,r)):Gt(n,function(n){return++eo&&(o=a)}}else t=!t&&x(n)?u:f(t,r),Gt(n,function(n,r,u){r=t(n,r,u),r>e&&(e=r,o=n)});return o}function F(n,t,r,e){var u=3>arguments.length;if(t=f(t,e,4),Lt(n)){var o=-1,i=n.length;for(u&&(r=n[++o]);++oarguments.length;if(typeof u!="number")var i=Qt(n),u=i.length;return t=f(t,e,4),N(n,function(e,f,a){f=i?i[--u]:--u,r=o?(o=!1,n[f]):t(r,n[f],f,a)}),r}function T(n,t,r){var e;if(t=f(t,r),Lt(n)){r=-1;for(var u=n.length;++rr?xt(0,u+r):r||0)-1;else if(r)return e=P(n,t),n[e]===t?e:-1;for(;++e>>1,r(n[e])M(a,p))&&((r||c)&&a.push(p),i.push(e))}return i}function K(n,t){return Bt||_t&&2/g,at=/($^)/,ct=/[&<>"']/g,lt=/['\n\r\t\u2028\u2029\\]/g,pt=Math.ceil,st=L.concat,vt=Math.floor,gt=ot.test(gt=Object.getPrototypeOf)&>,ht=Q.hasOwnProperty,yt=L.push,mt=Q.toString,_t=ot.test(_t=s.bind)&&_t,dt=ot.test(dt=Array.isArray)&&dt,bt=n.isFinite,wt=n.isNaN,jt=ot.test(jt=Object.keys)&&jt,xt=Math.max,At=Math.min,Ot=Math.random,Et="[object Arguments]",St="[object Array]",qt="[object Boolean]",kt="[object Date]",Nt="[object Number]",Rt="[object Object]",$t="[object RegExp]",Ft="[object String]",Dt=!!n.attachEvent,Tt=_t&&!/\n|true/.test(_t+Dt),Bt=_t&&!Tt,It=jt&&(Dt||Tt),Mt={"[object Function]":!1}; -Mt[Et]=Mt[St]=Mt[qt]=Mt[kt]=Mt[Nt]=Mt[Rt]=Mt[$t]=Mt[Ft]=!0;var zt={};zt[St]=Array,zt[qt]=Boolean,zt[kt]=Date,zt[Rt]=Object,zt[Nt]=Number,zt[$t]=RegExp,zt[Ft]=String;var Pt={"boolean":!1,"function":!0,object:!0,number:!1,string:!1,undefined:!1},Ct={"\\":"\\","'":"'","\n":"n","\r":"r"," ":"t","\u2028":"u2028","\u2029":"u2029"};r.templateSettings={escape:/<%-([\s\S]+?)%>/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:ft,variable:"",imports:{_:r}};var Kt={a:"p,v,g",l:"var a=0,b=typeof g=='number'?2:arguments.length;while(++a":">",'"':""","'":"'"},Xt=_(Wt),Yt=a(Kt),Zt=a(Kt,{h:"if(t[i]==null)"+Kt.h});b(/x/)&&(b=function(n){return n instanceof Function||"[object Function]"==mt.call(n)});var nr=function(n){if(!n||typeof n!="object")return!1;var t=n.valueOf,r=typeof t=="function"&&(r=gt(t))&>(r);if(r)n=n==r||gt(n)==r&&!g(n);else{var e=!1;!n||typeof n!="object"||g(n)?n=e:(t=n.constructor,!b(t)||t instanceof t?(Ht(n,function(n,t){e=t}),n=!1===e||ht.call(n,e)):n=e) -}return n};r.after=function(n,t){return 1>n?t():function(){return 1>--n?t.apply(this,arguments):void 0}},r.assign=Yt,r.at=function(n){for(var t=-1,r=st.apply(L,s(arguments,1)),e=r.length,u=Array(e);++tM(c,l)){f&&c.push(l);for(var s=r;--s;)if(!(u[s]||(u[s]=e(t[s],0,100)))(l))continue n;a.push(l)}}return a},r.invert=_,r.invoke=function(n,t){var r=s(arguments,2),e=-1,u=typeof t=="function",o=n?n.length:0,i=Array(typeof o=="number"?o:0); -return N(n,function(n){i[++e]=(u?t:n[t]).apply(n,r)}),i},r.keys=Qt,r.map=R,r.max=$,r.memoize=function(n,t){var r={};return function(){var e=(t?t.apply(this,arguments):arguments[0])+"";return ht.call(r,e)?r[e]:r[e]=n.apply(this,arguments)}},r.merge=A,r.min=function(n,t,r){var e=1/0,o=e;if(!t&&Lt(n)){r=-1;for(var i=n.length;++rM(o,r,1))&&(u[r]=n)}),u},r.once=function(n){var t,r;return function(){return t?r:(t=!0,r=n.apply(this,arguments),n=null,r)}},r.pairs=function(n){for(var t=-1,r=Qt(n),e=r.length,u=Array(e);++tr?xt(0,e+r):At(r,e-1))+1);e--;)if(n[e]===t)return e;return-1},r.mixin=V,r.noConflict=function(){return n._=Z,this},r.random=function(n,t){return null==n&&null==t&&(t=1),n=+n||0,null==t&&(t=n,n=0),n+vt(Ot()*((+t||0)-n+1))},r.reduce=F,r.reduceRight=D,r.result=function(n,r){var e=n?n[r]:t;return b(e)?n[r]():e},r.size=function(n){var t=n?n.length:0;return typeof t=="number"?t:Qt(n).length},r.some=T,r.sortedIndex=P,r.template=function(n,e,u){var o=r.templateSettings; -n||(n=""),u=Zt({},u,o);var i,f=Zt({},u.imports,o.imports),o=Qt(f),f=O(f),a=0,l=u.interpolate||at,p="__p+='";n.replace(RegExp((u.escape||at).source+"|"+l.source+"|"+(l===ft?it:at).source+"|"+(u.evaluate||at).source+"|$","g"),function(t,r,e,u,o,f){return e||(e=u),p+=n.slice(a,f).replace(lt,c),r&&(p+="'+__e("+r+")+'"),o&&(i=!0,p+="';"+o+";__p+='"),e&&(p+="'+((__t=("+e+"))==null?'':__t)+'"),a=f+t.length,t}),p+="';\n",l=u=u.variable,l||(u="obj",p="with("+u+"){"+p+"}"),p=(i?p.replace(tt,""):p).replace(rt,"$1").replace(et,"$1;"),p="function("+u+"){"+(l?"":u+"||("+u+"={});")+"var __t,__p='',__e=_.escape"+(i?",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}":(l?"":",__d="+u+"."+u+"||"+u)+";")+p+"return __p}"; -try{var s=Function(o,"return "+p).apply(t,f)}catch(v){throw v.source=p,v}return e?s(e):(s.source=p,s)},r.unescape=function(n){return null==n?"":(n+"").replace(nt,v)},r.uniqueId=function(n){var t=++W;return(null==n?"":n+"")+t},r.all=S,r.any=T,r.detect=k,r.foldl=F,r.foldr=D,r.include=E,r.inject=F,Jt(r,function(n,t){r.prototype[t]||(r.prototype[t]=function(){var t=[this.__wrapped__];return yt.apply(t,arguments),n.apply(r,t)})}),r.first=B,r.last=function(n,t,r){if(n){var e=0,u=n.length;if(typeof t=="function"){var o=u; -for(t=f(t,r);o--&&t(n[o],o,n);)e++}else if(e=t,null==e||r)return n[u-1];return s(n,xt(0,u-e))}},r.take=B,r.head=B,Jt(r,function(n,t){r.prototype[t]||(r.prototype[t]=function(t,e){var u=n(this.__wrapped__,t,e);return null==t||e&&typeof t!="function"?u:new r(u)})}),r.VERSION="1.0.0-rc.3",r.prototype.toString=function(){return this.__wrapped__+""},r.prototype.value=G,r.prototype.valueOf=G,Gt(["join","pop","shift"],function(n){var t=L[n];r.prototype[n]=function(){return t.apply(this.__wrapped__,arguments) -}}),Gt(["push","reverse","sort","unshift"],function(n){var t=L[n];r.prototype[n]=function(){return t.apply(this.__wrapped__,arguments),this}}),Gt(["concat","slice","splice"],function(n){var t=L[n];r.prototype[n]=function(){return new r(t.apply(this.__wrapped__,arguments))}}),typeof define=="function"&&typeof define.amd=="object"&&define.amd?(n._=r,define(function(){return r})):H?typeof module=="object"&&module&&module.exports==H?(module.exports=r)._=r:H._=r:n._=r})(this); \ No newline at end of file +;(function(n,t){function r(n){if(!n||typeof n!="object")return Q;var t=n.valueOf,r=typeof t=="function"&&(r=dt(t))&&dt(r);if(r)n=n==r||dt(n)==r&&!h(n);else{var e=Q;!n||typeof n!="object"||h(n)?n=e:(t=n.constructor,!w(t)||t instanceof t?(Wt(n,function(n,t){e=t}),n=e===Q||_t.call(n,e)):n=e)}return n}function e(n){return n&&typeof n=="object"&&n.__wrapped__?n:this instanceof e?(this.__wrapped__=n,void 0):new e(n)}function u(n,t,r){t||(t=0);var e=n.length,u=e-t>=(r||rt);if(u){var o={};for(r=t-1;++rt||typeof n=="undefined")return 1;if(nr?0:r);++er?St(0,u+r):r)||0,typeof u=="number"?o=-1<(A(n)?n.indexOf(t,r):z(n,t,r)):Qt(n,function(n){return++eu&&(u=a)}}else t=!t&&A(n)?o:f(t,r),Qt(n,function(n,r,o){r=t(n,r,o),r>e&&(e=r,u=n)});return u}function D(n,t,r,e){var u=3>arguments.length;if(t=f(t,e,4),Yt(n)){var o=-1,i=n.length;for(u&&(r=n[++o]);++oarguments.length;if(typeof u!="number")var i=Zt(n),u=i.length;return t=f(t,e,4),R(n,function(e,a,f){a=i?i[--u]:--u,r=o?(o=Q,n[a]):t(r,n[a],a,f)}),r}function B(n,t,r){var e;if(t=f(t,r),Yt(n)){r=-1;for(var u=n.length;++rr?St(0,u+r):r||0)-1;else if(r)return e=C(n,t),n[e]===t?e:-1;for(;++e>>1,r(n[e])z(a,p))&&((r||c)&&a.push(p),i.push(e))}return i}function U(n,t){return Pt||jt&&2/g,st=/($^)/,vt=/[&<>"']/g,gt=/['\n\r\t\u2028\u2029\\]/g,ht=Math.ceil,yt=Y.concat,mt=Math.floor,dt=ct.test(dt=Object.getPrototypeOf)&&dt,_t=Z.hasOwnProperty,bt=Y.push,wt=Z.toString,jt=ct.test(jt=v.bind)&&jt,xt=ct.test(xt=Array.isArray)&&xt,At=n.isFinite,Ot=n.isNaN,Et=ct.test(Et=Object.keys)&&Et,St=Math.max,qt=Math.min,kt=Math.random,Nt="[object Arguments]",Rt="[object Array]",$t="[object Boolean]",Ft="[object Date]",Dt="[object Number]",Tt="[object Object]",Bt="[object RegExp]",It="[object String]",Mt=!!n.attachEvent,zt=jt&&!/\n|true/.test(jt+Mt),Pt=jt&&!zt,Ct=Et&&(Mt||zt),Kt={"[object Function]":Q}; +Kt[Nt]=Kt[Rt]=Kt[$t]=Kt[Ft]=Kt[Dt]=Kt[Tt]=Kt[Bt]=Kt[It]=J;var Ut={};Ut[Rt]=Array,Ut[$t]=Boolean,Ut[Ft]=Date,Ut[Tt]=Object,Ut[Dt]=Number,Ut[Bt]=RegExp,Ut[It]=String;var Vt={"boolean":Q,"function":J,object:J,number:Q,string:Q,undefined:Q},Gt={"\\":"\\","'":"'","\n":"n","\r":"r"," ":"t","\u2028":"u2028","\u2029":"u2029"};e.templateSettings={escape:/<%-([\s\S]+?)%>/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:pt,variable:"",imports:{_:e}};var Ht={a:"p,v,g",l:"var a=0,b=typeof g=='number'?2:arguments.length;while(++a":">",'"':""","'":"'"},tr=_(nr),rr=c(Ht),er=c(Ht,{h:"if(t[i]==null)"+Ht.h});w(/x/)&&(w=function(n){return n instanceof Function||"[object Function]"==wt.call(n)}),e.after=function(n,t){return 1>n?t():function(){return 1>--n?t.apply(this,arguments):void 0}},e.assign=rr,e.at=function(n){for(var t=-1,r=yt.apply(Y,v(arguments,1)),e=r.length,u=Array(e);++tz(c,l)){a&&c.push(l);for(var s=r;--s;)if(!(e[s]||(e[s]=u(t[s],0,100)))(l))continue n; +f.push(l)}}return f},e.invert=_,e.invoke=function(n,t){var r=v(arguments,2),e=-1,u=typeof t=="function",o=n?n.length:0,i=Array(typeof o=="number"?o:0);return R(n,function(n){i[++e]=(u?t:n[t]).apply(n,r)}),i},e.keys=Zt,e.map=$,e.max=F,e.memoize=function(n,t){var r={};return function(){var e=(t?t.apply(this,arguments):arguments[0])+"";return _t.call(r,e)?r[e]:r[e]=n.apply(this,arguments)}},e.merge=O,e.min=function(n,t,r){var e=1/0,u=e;if(!t&&Yt(n)){r=-1;for(var i=n.length;++rz(o,r,1))&&(u[r]=n)}),u},e.once=function(n){var t,r;return function(){return t?r:(t=J,r=n.apply(this,arguments),n=L,r)}},e.pairs=function(n){for(var t=-1,r=Zt(n),e=r.length,u=Array(e);++tr?St(0,e+r):qt(r,e-1))+1);e--;)if(n[e]===t)return e;return-1},e.mixin=G,e.noConflict=function(){return n._=et,this},e.random=function(n,t){return n==L&&t==L&&(t=1),n=+n||0,t==L&&(t=n,n=0),n+mt(kt()*((+t||0)-n+1))},e.reduce=D,e.reduceRight=T,e.result=function(n,r){var e=n?n[r]:t;return w(e)?n[r]():e},e.size=function(n){var t=n?n.length:0;return typeof t=="number"?t:Zt(n).length +},e.some=B,e.sortedIndex=C,e.template=function(n,r,u){var o=e.templateSettings;n||(n=""),u=er({},u,o);var i,a=er({},u.imports,o.imports),o=Zt(a),a=E(a),f=0,c=u.interpolate||st,p="__p+='";n.replace(RegExp((u.escape||st).source+"|"+c.source+"|"+(c===pt?lt:st).source+"|"+(u.evaluate||st).source+"|$","g"),function(t,r,e,u,o,a){return e||(e=u),p+=n.slice(f,a).replace(gt,l),r&&(p+="'+__e("+r+")+'"),o&&(i=J,p+="';"+o+";__p+='"),e&&(p+="'+((__t=("+e+"))==null?'':__t)+'"),f=a+t.length,t}),p+="';\n",c=u=u.variable,c||(u="obj",p="with("+u+"){"+p+"}"),p=(i?p.replace(ot,""):p).replace(it,"$1").replace(at,"$1;"),p="function("+u+"){"+(c?"":u+"||("+u+"={});")+"var __t,__p='',__e=_.escape"+(i?",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}":(c?"":",__d="+u+"."+u+"||"+u)+";")+p+"return __p}"; +try{var s=Function(o,"return "+p).apply(t,a)}catch(v){throw v.source=p,v}return r?s(r):(s.source=p,s)},e.unescape=function(n){return n==L?"":(n+"").replace(ut,g)},e.uniqueId=function(n){var t=++nt;return(n==L?"":n+"")+t},e.all=q,e.any=B,e.detect=N,e.foldl=D,e.foldr=T,e.include=S,e.inject=D,Xt(e,function(n,t){e.prototype[t]||(e.prototype[t]=function(){var t=[this.__wrapped__];return bt.apply(t,arguments),n.apply(e,t)})}),e.first=I,e.last=function(n,t,r){if(n){var e=0,u=n.length;if(typeof t!="number"&&t!=L){var o=u; +for(t=f(t,r);o--&&t(n[o],o,n);)e++}else if(e=t,e==L||r)return n[u-1];return v(n,St(0,u-e))}},e.take=I,e.head=I,Xt(e,function(n,t){e.prototype[t]||(e.prototype[t]=function(t,r){var u=n(this.__wrapped__,t,r);return t==L||r&&typeof t!="function"?u:new e(u)})}),e.VERSION="1.0.0-rc.3",e.prototype.toString=function(){return this.__wrapped__+""},e.prototype.value=H,e.prototype.valueOf=H,Qt(["join","pop","shift"],function(n){var t=Y[n];e.prototype[n]=function(){return t.apply(this.__wrapped__,arguments)} +}),Qt(["push","reverse","sort","unshift"],function(n){var t=Y[n];e.prototype[n]=function(){return t.apply(this.__wrapped__,arguments),this}}),Qt(["concat","slice","splice"],function(n){var t=Y[n];e.prototype[n]=function(){return new e(t.apply(this.__wrapped__,arguments))}}),typeof define=="function"&&typeof define.amd=="object"&&define.amd?(n._=e,define(function(){return e})):W?typeof module=="object"&&module&&module.exports==W?(module.exports=e)._=e:W._=e:n._=e})(this); \ No newline at end of file diff --git a/dist/lodash.underscore.js b/dist/lodash.underscore.js index 2e3dfe05a..f2c1cb01a 100644 --- a/dist/lodash.underscore.js +++ b/dist/lodash.underscore.js @@ -2581,7 +2581,7 @@ var n = 0, length = array.length; - if (typeof callback == 'function') { + if (typeof callback != 'number' && callback != null) { var index = -1; callback = createCallback(callback, thisArg); while (++index < length && callback(array[index], index, array)) { @@ -2737,7 +2737,7 @@ var n = 0, length = array.length; - if (typeof callback == 'function') { + if (typeof callback != 'number' && callback != null) { var index = length; callback = createCallback(callback, thisArg); while (index-- && callback(array[index], index, array)) { @@ -2847,7 +2847,7 @@ var n = 0, length = array.length; - if (typeof callback == 'function') { + if (typeof callback != 'number' && callback != null) { var index = length; callback = createCallback(callback, thisArg); while (index-- && callback(array[index], index, array)) { @@ -3035,7 +3035,7 @@ * // => [{ 'name': 'beet', 'type': 'vegetable' }] */ function rest(array, callback, thisArg) { - if (typeof callback == 'function') { + if (typeof callback != 'number' && callback != null) { var n = 0, index = -1, length = array ? array.length : 0; diff --git a/dist/lodash.underscore.min.js b/dist/lodash.underscore.min.js index 8788d9213..685478cc2 100644 --- a/dist/lodash.underscore.min.js +++ b/dist/lodash.underscore.min.js @@ -4,31 +4,31 @@ * Build: `lodash underscore -o ./dist/lodash.underscore.js` * Underscore.js 1.4.4 underscorejs.org/LICENSE */ -;(function(n,t){function r(n,t){var r;if(n&&Rt[typeof n])for(r in t||(t=W),n)if(t(n[r],r,n)===Z)break}function e(n,t,r){if(n){t=t&&typeof r=="undefined"?t:a(t,r);var e=n.length;if(r=-1,typeof e=="number")for(;++rt||typeof n=="undefined")return 1;if(nr?0:r);++eo&&(o=f)}}else t=a(t,r),e(n,function(n,r,e){r=t(n,r,e),r>u&&(u=r,o=n)});return o}function q(n,t,r,u){var o=3>arguments.length;if(t=a(t,u,4),qt(n)){var i=-1,f=n.length;for(o&&(r=n[++i]);++iarguments.length;if(typeof u!="number")var i=Bt(n),u=i.length;return t=a(t,e,4),F(n,function(e,a,f){a=i?i[--u]:--u,r=o?(o=K,n[a]):t(r,n[a],a,f)}),r}function D(n,t,r){var u; -if(t=a(t,r),qt(n)){r=-1;for(var o=n.length;++rr?_t(0,u+r):r||0)-1;else if(r)return e=P(n,t),n[e]===t?e:-1;for(;++e>>1,r(n[e])z(f,c))&&(r&&f.push(c),i.push(e))}return i}function V(n,t){return Nt||st&&2"']/g,ot=/['\n\r\t\u2028\u2029\\]/g,it=Math.ceil,at=X.concat,ft=Math.floor,ct=Q.hasOwnProperty,lt=X.push,pt=Q.toString,st=rt.test(st=p.bind)&&st,vt=rt.test(vt=Array.isArray)&&vt,ht=n.isFinite,gt=n.isNaN,yt=rt.test(yt=Object.keys)&&yt,_t=Math.max,mt=Math.min,dt=Math.random,bt="[object Arguments]",jt="[object Array]",wt="[object Boolean]",At="[object Date]",xt="[object Number]",Et="[object Object]",Ot="[object RegExp]",St="[object String]",Q=!!n.attachEvent,Q=st&&!/\n|true/.test(st+Q),Nt=st&&!Q,kt=(kt={0:1,length:1},X.splice.call(kt,0,1),kt[0]),Ft=arguments.constructor==Object,Rt={"boolean":K,"function":H,object:H,number:K,string:K,undefined:K},Tt={"\\":"\\","'":"'","\n":"n","\r":"r"," ":"t","\u2028":"u2028","\u2029":"u2029"}; -u.templateSettings={escape:/<%-([\s\S]+?)%>/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,variable:""},v(arguments)||(v=function(n){return n?ct.call(n,"callee"):K});var qt=vt||function(n){return Ft&&n instanceof Array||pt.call(n)==jt},Bt=yt?function(n){return w(n)?yt(n):[]}:h,Dt={"&":"&","<":"<",">":">",'"':""","'":"'"},Mt=m(Dt);j(/x/)&&(j=function(n){return n instanceof Function||"[object Function]"==pt.call(n)});var $t=R;u.after=function(n,t){return 1>n?t():function(){return 1>--n?t.apply(this,arguments):void 0 -}},u.bind=V,u.bindAll=function(n){for(var t=at.apply(X,arguments),r=1z(e,o,r)&&u.push(o)}return u},u.filter=N,u.flatten=I,u.forEach=F,u.functions=_,u.groupBy=function(n,t,r){var e={}; -return t=a(t,r),F(n,function(n,r,u){r=t(n,r,u)+"",(ct.call(e,r)?e[r]:e[r]=[]).push(n)}),e},u.initial=function(n,t,r){if(!n)return[];var e=0,u=n.length;if(typeof t=="function"){var o=u;for(t=a(t,r);o--&&t(n[o],o,n);)e++}else e=t==J||r?1:t||e;return p(n,0,mt(_t(0,u-e),u))},u.intersection=function(n){var t=arguments,r=t.length,e=-1,u=n?n.length:0,o=[];n:for(;++ez(o,i)){for(var a=r;--a;)if(0>z(t[a],i))continue n;o.push(i)}}return o},u.invert=m,u.invoke=function(n,t){var r=p(arguments,2),e=-1,u=typeof t=="function",o=n?n.length:0,i=Array(typeof o=="number"?o:0); -return F(n,function(n){i[++e]=(u?t:n[t]).apply(n,r)}),i},u.keys=Bt,u.map=R,u.max=T,u.memoize=function(n,t){var r={};return function(){var e=(t?t.apply(this,arguments):arguments[0])+"";return ct.call(r,e)?r[e]:r[e]=n.apply(this,arguments)}},u.min=function(n,t,r){var u=1/0,o=u;if(!t&&qt(n)){r=-1;for(var i=n.length;++rz(t,r,1)&&(e[r]=n)}),e},u.once=function(n){var t,r;return function(){return t?r:(t=H,r=n.apply(this,arguments),n=J,r)}},u.pairs=function(n){for(var t=-1,r=Bt(n),e=r.length,u=Array(e);++tz(arguments,u,1)&&e.push(u)}return e},u.wrap=function(n,t){return function(){var r=[n];return lt.apply(r,arguments),t.apply(this,r)}},u.zip=function(n){for(var t=-1,r=n?T($t(arguments,"length")):0,e=Array(r);++tr?_t(0,e+r):mt(r,e-1))+1);e--;)if(n[e]===t)return e;return-1},u.mixin=G,u.noConflict=function(){return n._=nt,this},u.random=function(n,t){return n==J&&t==J&&(t=1),n=+n||0,t==J&&(t=n,n=0),n+ft(dt()*((+t||0)-n+1))},u.reduce=q,u.reduceRight=B,u.result=function(n,t){var r=n?n[t]:J;return j(r)?n[t]():r},u.size=function(n){var t=n?n.length:0;return typeof t=="number"?t:Bt(n).length -},u.some=D,u.sortedIndex=P,u.template=function(n,t,r){n||(n=""),r=y({},r,u.templateSettings);var e=0,o="__p+='",i=r.variable;n.replace(RegExp((r.escape||et).source+"|"+(r.interpolate||et).source+"|"+(r.evaluate||et).source+"|$","g"),function(t,r,u,i,a){return o+=n.slice(e,a).replace(ot,f),r&&(o+="'+_['escape']("+r+")+'"),i&&(o+="';"+i+";__p+='"),u&&(o+="'+((__t=("+u+"))==null?'':__t)+'"),e=a+t.length,t}),o+="';\n",i||(i="obj",o="with("+i+"||{}){"+o+"}"),o="function("+i+"){var __t,__p='',__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}"+o+"return __p}"; -try{var a=Function("_","return "+o)(u)}catch(c){throw c.source=o,c}return t?a(t):(a.source=o,a)},u.unescape=function(n){return n==J?"":(n+"").replace(tt,s)},u.uniqueId=function(n){var t=++Y+"";return n?n+t:t},u.all=S,u.any=D,u.detect=k,u.foldl=q,u.foldr=B,u.include=O,u.inject=q,u.first=$,u.last=function(n,t,r){if(n){var e=0,u=n.length;if(typeof t=="function"){var o=u;for(t=a(t,r);o--&&t(n[o],o,n);)e++}else if(e=t,e==J||r)return n[u-1];return p(n,_t(0,u-e))}},u.take=$,u.head=$,u.chain=function(n){return n=new u(n),n.__chain__=H,n -},u.VERSION="1.0.0-rc.3",G(u),u.prototype.chain=function(){return this.__chain__=H,this},u.prototype.value=function(){return this.__wrapped__},e("pop push reverse shift sort splice unshift".split(" "),function(n){var t=X[n];u.prototype[n]=function(){var n=this.__wrapped__;return t.apply(n,arguments),kt&&0===n.length&&delete n[0],this}}),e(["concat","join","slice"],function(n){var t=X[n];u.prototype[n]=function(){var n=t.apply(this.__wrapped__,arguments);return this.__chain__&&(n=new u(n),n.__chain__=H),n +;(function(n,r){function t(n,r){var t;if(n&&Rr[typeof n])for(t in r||(r=W),n)if(r(n[t],t,n)===Z)break}function e(n,r,t){if(n){r=r&&typeof t=="undefined"?r:a(r,t);var e=n.length;if(t=-1,typeof e=="number")for(;++tr||typeof n=="undefined")return 1;if(nt?0:t);++eo&&(o=f)}}else r=a(r,t),e(n,function(n,t,e){t=r(n,t,e),t>u&&(u=t,o=n)});return o}function q(n,r,t,u){var o=3>arguments.length;if(r=a(r,u,4),qr(n)){var i=-1,f=n.length;for(o&&(t=n[++i]);++iarguments.length;if(typeof u!="number")var i=Br(n),u=i.length;return r=a(r,e,4),F(n,function(e,a,f){a=i?i[--u]:--u,t=o?(o=K,n[a]):r(t,n[a],a,f)}),t}function D(n,r,t){var u; +if(r=a(r,t),qr(n)){t=-1;for(var o=n.length;++tt?mr(0,u+t):t||0)-1;else if(t)return e=P(n,r),n[e]===r?e:-1;for(;++e>>1,t(n[e])z(f,c))&&(t&&f.push(c),i.push(e))}return i}function V(n,r){return Nr||sr&&2"']/g,or=/['\n\r\t\u2028\u2029\\]/g,ir=Math.ceil,ar=X.concat,fr=Math.floor,cr=Q.hasOwnProperty,lr=X.push,pr=Q.toString,sr=tr.test(sr=p.bind)&&sr,vr=tr.test(vr=Array.isArray)&&vr,hr=n.isFinite,gr=n.isNaN,yr=tr.test(yr=Object.keys)&&yr,mr=Math.max,_r=Math.min,dr=Math.random,br="[object Arguments]",jr="[object Array]",wr="[object Boolean]",Ar="[object Date]",xr="[object Number]",Er="[object Object]",Or="[object RegExp]",Sr="[object String]",Q=!!n.attachEvent,Q=sr&&!/\n|true/.test(sr+Q),Nr=sr&&!Q,kr=(kr={0:1,length:1},X.splice.call(kr,0,1),kr[0]),Fr=arguments.constructor==Object,Rr={"boolean":K,"function":H,object:H,number:K,string:K,undefined:K},Tr={"\\":"\\","'":"'","\n":"n","\r":"r"," ":"t","\u2028":"u2028","\u2029":"u2029"}; +u.templateSettings={escape:/<%-([\s\S]+?)%>/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,variable:""},v(arguments)||(v=function(n){return n?cr.call(n,"callee"):K});var qr=vr||function(n){return Fr&&n instanceof Array||pr.call(n)==jr},Br=yr?function(n){return w(n)?yr(n):[]}:h,Dr={"&":"&","<":"<",">":">",'"':""","'":"'"},Mr=_(Dr);j(/x/)&&(j=function(n){return n instanceof Function||"[object Function]"==pr.call(n)});var $r=R;u.after=function(n,r){return 1>n?r():function(){return 1>--n?r.apply(this,arguments):void 0 +}},u.bind=V,u.bindAll=function(n){for(var r=ar.apply(X,arguments),t=1z(e,o,t)&&u.push(o)}return u},u.filter=N,u.flatten=I,u.forEach=F,u.functions=m,u.groupBy=function(n,r,t){var e={}; +return r=a(r,t),F(n,function(n,t,u){t=r(n,t,u)+"",(cr.call(e,t)?e[t]:e[t]=[]).push(n)}),e},u.initial=function(n,r,t){if(!n)return[];var e=0,u=n.length;if(typeof r!="number"&&r!=J){var o=u;for(r=a(r,t);o--&&r(n[o],o,n);)e++}else e=r==J||t?1:r||e;return p(n,0,_r(mr(0,u-e),u))},u.intersection=function(n){var r=arguments,t=r.length,e=-1,u=n?n.length:0,o=[];n:for(;++ez(o,i)){for(var a=t;--a;)if(0>z(r[a],i))continue n;o.push(i)}}return o},u.invert=_,u.invoke=function(n,r){var t=p(arguments,2),e=-1,u=typeof r=="function",o=n?n.length:0,i=Array(typeof o=="number"?o:0); +return F(n,function(n){i[++e]=(u?r:n[r]).apply(n,t)}),i},u.keys=Br,u.map=R,u.max=T,u.memoize=function(n,r){var t={};return function(){var e=(r?r.apply(this,arguments):arguments[0])+"";return cr.call(t,e)?t[e]:t[e]=n.apply(this,arguments)}},u.min=function(n,r,t){var u=1/0,o=u;if(!r&&qr(n)){t=-1;for(var i=n.length;++tz(r,t,1)&&(e[t]=n)}),e},u.once=function(n){var r,t;return function(){return r?t:(r=H,t=n.apply(this,arguments),n=J,t)}},u.pairs=function(n){for(var r=-1,t=Br(n),e=t.length,u=Array(e);++rz(arguments,u,1)&&e.push(u)}return e},u.wrap=function(n,r){return function(){var t=[n];return lr.apply(t,arguments),r.apply(this,t)}},u.zip=function(n){for(var r=-1,t=n?T($r(arguments,"length")):0,e=Array(t);++rt?mr(0,e+t):_r(t,e-1))+1);e--;)if(n[e]===r)return e;return-1},u.mixin=G,u.noConflict=function(){return n._=nr,this},u.random=function(n,r){return n==J&&r==J&&(r=1),n=+n||0,r==J&&(r=n,n=0),n+fr(dr()*((+r||0)-n+1))},u.reduce=q,u.reduceRight=B,u.result=function(n,r){var t=n?n[r]:J;return j(t)?n[r]():t},u.size=function(n){var r=n?n.length:0;return typeof r=="number"?r:Br(n).length +},u.some=D,u.sortedIndex=P,u.template=function(n,r,t){n||(n=""),t=y({},t,u.templateSettings);var e=0,o="__p+='",i=t.variable;n.replace(RegExp((t.escape||er).source+"|"+(t.interpolate||er).source+"|"+(t.evaluate||er).source+"|$","g"),function(r,t,u,i,a){return o+=n.slice(e,a).replace(or,f),t&&(o+="'+_['escape']("+t+")+'"),i&&(o+="';"+i+";__p+='"),u&&(o+="'+((__t=("+u+"))==null?'':__t)+'"),e=a+r.length,r}),o+="';\n",i||(i="obj",o="with("+i+"||{}){"+o+"}"),o="function("+i+"){var __t,__p='',__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}"+o+"return __p}"; +try{var a=Function("_","return "+o)(u)}catch(c){throw c.source=o,c}return r?a(r):(a.source=o,a)},u.unescape=function(n){return n==J?"":(n+"").replace(rr,s)},u.uniqueId=function(n){var r=++Y+"";return n?n+r:r},u.all=S,u.any=D,u.detect=k,u.foldl=q,u.foldr=B,u.include=O,u.inject=q,u.first=$,u.last=function(n,r,t){if(n){var e=0,u=n.length;if(typeof r!="number"&&r!=J){var o=u;for(r=a(r,t);o--&&r(n[o],o,n);)e++}else if(e=r,e==J||t)return n[u-1];return p(n,mr(0,u-e))}},u.take=$,u.head=$,u.chain=function(n){return n=new u(n),n.__chain__=H,n +},u.VERSION="1.0.0-rc.3",G(u),u.prototype.chain=function(){return this.__chain__=H,this},u.prototype.value=function(){return this.__wrapped__},e("pop push reverse shift sort splice unshift".split(" "),function(n){var r=X[n];u.prototype[n]=function(){var n=this.__wrapped__;return r.apply(n,arguments),kr&&0===n.length&&delete n[0],this}}),e(["concat","join","slice"],function(n){var r=X[n];u.prototype[n]=function(){var n=r.apply(this.__wrapped__,arguments);return this.__chain__&&(n=new u(n),n.__chain__=H),n }}),L?typeof module=="object"&&module&&module.exports==L?(module.exports=u)._=u:L._=u:n._=u})(this); \ No newline at end of file diff --git a/lodash.js b/lodash.js index 5b3d6585c..05ada1a9e 100644 --- a/lodash.js +++ b/lodash.js @@ -3237,7 +3237,7 @@ var n = 0, length = array.length; - if (typeof callback == 'function') { + if (typeof callback != 'number' && callback != null) { var index = -1; callback = createCallback(callback, thisArg); while (++index < length && callback(array[index], index, array)) { @@ -3393,7 +3393,7 @@ var n = 0, length = array.length; - if (typeof callback == 'function') { + if (typeof callback != 'number' && callback != null) { var index = length; callback = createCallback(callback, thisArg); while (index-- && callback(array[index], index, array)) { @@ -3515,7 +3515,7 @@ var n = 0, length = array.length; - if (typeof callback == 'function') { + if (typeof callback != 'number' && callback != null) { var index = length; callback = createCallback(callback, thisArg); while (index-- && callback(array[index], index, array)) { @@ -3703,7 +3703,7 @@ * // => [{ 'name': 'beet', 'type': 'vegetable' }] */ function rest(array, callback, thisArg) { - if (typeof callback == 'function') { + if (typeof callback != 'number' && callback != null) { var n = 0, index = -1, length = array ? array.length : 0; diff --git a/test/test.js b/test/test.js index baf0b82ff..6bbb59266 100644 --- a/test/test.js +++ b/test/test.js @@ -674,21 +674,26 @@ QUnit.module('lodash.find'); (function() { - var array = [ - { 'a': 1, 'b': 2, 'c': 3 }, - { 'a': 2, 'b': 2, 'c': 3 } + var objects = [ + { 'a': 0, 'b': 0 }, + { 'a': 1, 'b': 1 }, + { 'a': 2, 'b': 2 } ]; test('should return found `value`', function() { - equal(_.find(array, function(object) { return object.a == 1; }), array[0]); + equal(_.find(objects, function(object) { return object.a == 1; }), objects[1]); }); test('should return `undefined` if `value` is not found', function() { - equal(_.find(array, function(object) { return object.a == 3; }), undefined); + equal(_.find(objects, function(object) { return object.a == 3; }), undefined); }); test('should work with an object for `callback`', function() { - equal(_.find(array, { 'b': 2, 'c': 3 }), array[0]); + equal(_.find(objects, { 'b': 2 }), objects[2]); + }); + + test('should work with a string for `callback`', function() { + equal(_.find(objects, 'b'), objects[1]); }); }()); @@ -699,6 +704,12 @@ (function() { var array = [1, 2, 3]; + var objects = [ + { 'a': 2, 'b': 2 }, + { 'a': 1, 'b': 1 }, + { 'a': 0, 'b': 0 } + ]; + test('should return the first element', function() { strictEqual(_.first(array), 1); }); @@ -755,6 +766,14 @@ var actual = _(array).first(); strictEqual(actual, 1); }); + + test('should work with an object for `callback`', function() { + deepEqual(_.first(objects, { 'b': 2 }), objects.slice(0, 1)); + }); + + test('should work with a string for `callback`', function() { + deepEqual(_.first(objects, 'b'), objects.slice(0, 2)); + }); }()); /*--------------------------------------------------------------------------*/ @@ -965,6 +984,12 @@ (function() { var array = [1, 2, 3]; + var objects = [ + { 'a': 0, 'b': 0 }, + { 'a': 1, 'b': 1 }, + { 'a': 2, 'b': 2 } + ]; + test('returns all elements for `n` of `0`', function() { deepEqual(_.initial(array, 0), [1, 2, 3]); }); @@ -1011,6 +1036,14 @@ deepEqual(actual, [1]); }); + + test('should work with an object for `callback`', function() { + deepEqual(_.initial(objects, { 'b': 2 }), objects.slice(0, 2)); + }); + + test('should work with a string for `callback`', function() { + deepEqual(_.initial(objects, 'b'), objects.slice(0, 1)); + }); }()); /*--------------------------------------------------------------------------*/ @@ -1306,6 +1339,12 @@ (function() { var array = [1, 2, 3]; + var objects = [ + { 'a': 0, 'b': 0 }, + { 'a': 1, 'b': 1 }, + { 'a': 2, 'b': 2 } + ]; + test('should return the last element', function() { equal(_.last(array), 3); }); @@ -1362,6 +1401,14 @@ var actual = _(array).last(); equal(actual, 3); }); + + test('should work with an object for `callback`', function() { + deepEqual(_.last(objects, { 'b': 2 }), objects.slice(-1)); + }); + + test('should work with a string for `callback`', function() { + deepEqual(_.last(objects, 'b'), objects.slice(-2)); + }); }()); /*--------------------------------------------------------------------------*/ @@ -1927,6 +1974,12 @@ (function() { var array = [1, 2, 3]; + var objects = [ + { 'a': 2, 'b': 2 }, + { 'a': 1, 'b': 1 }, + { 'a': 0, 'b': 0 } + ]; + test('returns all elements for `n` of `0`', function() { deepEqual(_.rest(array, 0), [1, 2, 3]); }); @@ -1973,6 +2026,14 @@ deepEqual(actual, [3]); }); + + test('should work with an object for `callback`', function() { + deepEqual(_.rest(objects, { 'b': 2 }), objects.slice(-2)); + }); + + test('should work with a string for `callback`', function() { + deepEqual(_.rest(objects, 'b'), objects.slice(-1)); + }); }()); /*--------------------------------------------------------------------------*/