From fca8da118e98e6b18c06537289947da75a4a48cf Mon Sep 17 00:00:00 2001 From: John-David Dalton Date: Fri, 9 Aug 2013 21:23:03 -0700 Subject: [PATCH] Ensure `createBound` works with ES5 features removed. Former-commit-id: 30fd5e615b473c9c9d3c013a4a5d7e1759872ede --- dist/lodash.compat.js | 4 +-- dist/lodash.compat.min.js | 36 ++++++++++++------------- dist/lodash.js | 4 +-- dist/lodash.min.js | 2 +- dist/lodash.underscore.js | 4 +-- dist/lodash.underscore.min.js | 50 +++++++++++++++++------------------ lodash.js | 4 +-- test/test.js | 12 +++++++-- 8 files changed, 58 insertions(+), 58 deletions(-) diff --git a/dist/lodash.compat.js b/dist/lodash.compat.js index 7ef8cf23d..e5679b25f 100644 --- a/dist/lodash.compat.js +++ b/dist/lodash.compat.js @@ -1441,9 +1441,7 @@ push.apply(args, partialRightArgs); } if (isCurry && args.length < arity) { - bindData[2] = args; - bindData[3] = null; - return createBound(bound, bitmask & ~8 & ~16); + return createBound(func, 12, args, null, null, arity); } if (isBindKey) { func = thisBinding[key]; diff --git a/dist/lodash.compat.min.js b/dist/lodash.compat.min.js index ff1672f66..90b4c00a5 100644 --- a/dist/lodash.compat.min.js +++ b/dist/lodash.compat.min.js @@ -6,49 +6,49 @@ ;!function(n){function t(n,t,r){r=(r||0)-1;for(var e=n?n.length:0;++rt||typeof n=="undefined")return 1;if(ne?1:0}function a(n){var t=-1,r=n.length,u=n[0],o=n[r-1];if(u&&typeof u=="object"&&o&&typeof o=="object")return b;for(u=c(),u["false"]=u["null"]=u["true"]=u.undefined=b,o=c(),o.b=n,o.k=u,o.push=e;++tr?0:r);++e=E&&i===t,h=u||p?f():l; -if(p){var v=a(h);v?(i=r,h=v):(p=b,h=u?h:(s(h),l))}for(;++oi(h,y))&&((u||p)&&h.push(y),l.push(v))}return p?(s(h.b),g(h)):u&&s(h),l}function ot(n){return function(t,r,e){var u={};return r=_.createCallback(r,e,3),Et(t,function(t,e,o){e=tr(r(t,e,o)),n(u,t,e,o)}),u}}function at(n,t,r,e,u,o){var a=1&t,i=2&t,f=4&t,c=16&t;if(!i&&!mt(n))throw new rr;if(!a||i||f||c||!($r.fastBind||jr&&r.length))l=function(){var c=arguments,s=a?u:this;return r&&wr.apply(c,r),e&&vr.apply(c,e),f&&c.lengthi(h,y))&&((u||p)&&h.push(y),l.push(v))}return p?(s(h.b),g(h)):u&&s(h),l}function ot(n){return function(t,r,e){var u={};return r=_.createCallback(r,e,3),Et(t,function(t,e,o){e=tr(r(t,e,o)),n(u,t,e,o)}),u}}function at(n,t,r,e,u,o){var a=1&t,i=2&t,f=4&t;if(t&=16,!i&&!mt(n))throw new rr;if(!a||i||f||t||!($r.fastBind||jr&&r.length))c=function(){var t=arguments,p=a?u:this;return r&&wr.apply(t,r),e&&vr.apply(t,e),f&&t.lengthk;k++)e+="n='"+n.h[k]+"';if((!(r&&x[n])&&m.call(t,n))",n.j||(e+="||(!x[n]&&t[n]!==A[n])"),e+="){"+n.g+"}"; -e+="}"}return(n.b||$r.nonEnumArgs)&&(e+="}"),e+=n.c+";return E",t=t("d,j,k,m,o,p,q,s,v,A,B,y,I,J,L",r+e+"}"),g(n),t(Y,G,ur,hr,x,gt,zr,_t,n.f,or,X,Rr,V,ar,_r)}function ft(n){return dt(n)?kr(n):{}}function ct(n){return Gr[n]}function lt(){var n=(n=_.indexOf)===Ft?t:n;return n}function pt(n){var t,r;return!n||_r.call(n)!=H||(t=n.constructor,mt(t)&&!(t instanceof t))||!$r.argsClass&>(n)||!$r.nodeClass&&l(n)?b:$r.ownLast?(Xr(n,function(n,t,e){return r=hr.call(e,t),b}),r!==false):(Xr(n,function(n,t){r=t +e+="}"}return(n.b||$r.nonEnumArgs)&&(e+="}"),e+=n.c+";return E",t=t("d,j,k,m,o,p,q,s,v,A,B,y,I,J,L",r+e+"}"),g(n),t(Y,G,ur,hr,x,gt,zr,_t,n.f,or,X,Dr,V,ar,_r)}function ft(n){return dt(n)?kr(n):{}}function ct(n){return Gr[n]}function lt(){var n=(n=_.indexOf)===Rt?t:n;return n}function pt(n){var t,r;return!n||_r.call(n)!=H||(t=n.constructor,mt(t)&&!(t instanceof t))||!$r.argsClass&>(n)||!$r.nodeClass&&l(n)?b:$r.ownLast?(Xr(n,function(n,t,e){return r=hr.call(e,t),b}),r!==false):(Xr(n,function(n,t){r=t }),r===y||hr.call(n,r))}function st(n){return Jr[n]}function gt(n){return n&&typeof n=="object"?_r.call(n)==T:b}function ht(n,t,r){var e=Tr(n),u=e.length;for(t=Y(t,r,3);u--&&(r=e[u],!(t(n[r],r,n)===false)););return n}function vt(n){var t=[];return Xr(n,function(n,r){mt(n)&&t.push(r)}),t.sort()}function yt(n){for(var t=-1,r=Tr(n),e=r.length,u={};++tr?Sr(0,o+r):r)||0,o&&typeof o=="number"?a=-1<(_t(n)?n.indexOf(t,r):u(n,t,r)):Ur(n,function(n){return++eo&&(o=i) }}else t=!t&&_t(n)?u:_.createCallback(t,r,3),Ur(n,function(n,r,u){r=t(n,r,u),r>e&&(e=r,o=n)});return o}function It(n,t,r,e){var u=3>arguments.length;if(t=Y(t,e,4),zr(n)){var o=-1,a=n.length;for(u&&(r=n[++o]);++oarguments.length;return t=Y(t,e,4),Ot(n,function(n,e,o){r=u?(u=b,n):t(r,n,e,o)}),r}function Pt(n,t,r){var e;if(t=_.createCallback(t,r,3),zr(n)){r=-1;for(var u=n.length;++r=E&&u===t;if(c){var l=a(i);l?(u=r,i=l):c=b}for(;++eu(i,l)&&f.push(l);return c&&g(i),f}function Nt(n,t,r){if(n){var e=0,u=n.length;if(typeof t!="number"&&t!=d){var o=-1;for(t=_.createCallback(t,r,3);++oe?Sr(0,u+e):e||0}else if(e)return e=$t(n,r),n[e]===r?e:-1; -return n?t(n,r,e):-1}function Rt(n,t,r){if(typeof t!="number"&&t!=d){var e=0,u=-1,o=n?n.length:0;for(t=_.createCallback(t,r,3);++u>>1,r(n[e])r?0:r);++t=E&&u===t;if(c){var l=a(i);l?(u=r,i=l):c=b}for(;++eu(i,l)&&f.push(l);return c&&g(i),f}function Ft(n,t,r){if(n){var e=0,u=n.length;if(typeof t!="number"&&t!=d){var o=-1;for(t=_.createCallback(t,r,3);++oe?Sr(0,u+e):e||0}else if(e)return e=$t(n,r),n[e]===r?e:-1; +return n?t(n,r,e):-1}function Dt(n,t,r){if(typeof t!="number"&&t!=d){var e=0,u=-1,o=n?n.length:0;for(t=_.createCallback(t,r,3);++u>>1,r(n[e])r?0:r);++tc&&(i=n.apply(f,a));else{var r=+new Vt;!s&&!v&&(l=r);var o=p-(r-l);0/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:N,variable:"",imports:{_:_}},kr||(ft=function(n){if(dt(n)){p.prototype=n;var t=new p;p.prototype=d}return t||{}}),$r.argsClass||(gt=function(n){return n&&typeof n=="object"?hr.call(n,"callee"):b});var zr=xr||function(n){return n&&typeof n=="object"?_r.call(n)==q:b},Lr=it({a:"z",e:"[]",i:"if(!(B[typeof z]))return E",g:"E.push(n)"}),Tr=Or?function(n){return dt(n)?$r.enumPrototypes&&typeof n=="function"||$r.nonEnumArgs&&n.length&>(n)?Lr(n):Or(n):[] +})})}function Mt(){return this.__wrapped__}e=e?rt.defaults(n.Object(),e,rt.pick(n,z)):n;var Ht=e.Array,Ut=e.Boolean,Vt=e.Date,Qt=e.Function,Xt=e.Math,Yt=e.Number,Zt=e.Object,nr=e.RegExp,tr=e.String,rr=e.TypeError,er=[],ur=e.Error.prototype,or=Zt.prototype,ar=tr.prototype,ir=e._,fr=nr("^"+tr(or.valueOf).replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/valueOf|for [^\]]+/g,".+?")+"$"),cr=Xt.ceil,lr=e.clearTimeout,pr=fr.test(pr=Zt.defineProperty)&&pr,sr=Xt.floor,gr=fr.test(gr=Zt.getPrototypeOf)&&gr,hr=or.hasOwnProperty,vr=er.push,yr=or.propertyIsEnumerable,mr=e.setImmediate,dr=e.setTimeout,br=er.splice,_r=or.toString,wr=er.unshift,jr=fr.test(jr=_r.bind)&&jr,kr=fr.test(kr=Zt.create)&&kr,xr=fr.test(xr=Ht.isArray)&&xr,Cr=e.isFinite,Er=e.isNaN,Or=fr.test(Or=Zt.keys)&&Or,Sr=Xt.max,Ar=Xt.min,Ir=e.parseInt,Br=Xt.random,Pr=er.slice,Nr=fr.test(e.attachEvent),Fr=jr&&!/\n|true/.test(jr+Nr),Rr={}; +Rr[q]=Ht,Rr[K]=Ut,Rr[W]=Vt,Rr[J]=Qt,Rr[H]=Zt,Rr[M]=Yt,Rr[U]=nr,Rr[V]=tr;var Dr={};Dr[q]=Dr[W]=Dr[M]={constructor:m,toLocaleString:m,toString:m,valueOf:m},Dr[K]=Dr[V]={constructor:m,toString:m,valueOf:m},Dr[G]=Dr[J]=Dr[U]={constructor:m,toString:m},Dr[H]={constructor:m},function(){for(var n=L.length;n--;){var t,r=L[n];for(t in Dr)hr.call(Dr,t)&&!hr.call(Dr[t],r)&&(Dr[t][r]=b)}}(),w.prototype=_.prototype;var $r=_.support={};!function(){function n(){this.x=1}var t={0:1,length:1},r=[];n.prototype={valueOf:1}; +for(var e in new n)r.push(e);for(e in arguments);$r.argsObject=arguments.constructor==Zt&&!(arguments instanceof Ht),$r.argsClass=_r.call(arguments)==T,$r.enumErrorProps=yr.call(ur,"message")||yr.call(ur,"name"),$r.enumPrototypes=yr.call(n,"prototype"),$r.fastBind=jr&&!Fr,$r.ownLast="x"!=r[0],$r.nonEnumArgs=0!=e,$r.nonEnumShadows=!/valueOf/.test(r),$r.spliceObjects=(er.splice.call(t,0,1),!t[0]),$r.unindexedChars="xx"!="x"[0]+Zt("x")[0];try{$r.nodeClass=!(_r.call(document)==H&&!({toString:0}+""))}catch(u){$r.nodeClass=m +}}(1),_.templateSettings={escape:/<%-([\s\S]+?)%>/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:F,variable:"",imports:{_:_}},kr||(ft=function(n){if(dt(n)){p.prototype=n;var t=new p;p.prototype=d}return t||{}}),$r.argsClass||(gt=function(n){return n&&typeof n=="object"?hr.call(n,"callee"):b});var zr=xr||function(n){return n&&typeof n=="object"?_r.call(n)==q:b},Lr=it({a:"z",e:"[]",i:"if(!(B[typeof z]))return E",g:"E.push(n)"}),Tr=Or?function(n){return dt(n)?$r.enumPrototypes&&typeof n=="function"||$r.nonEnumArgs&&n.length&>(n)?Lr(n):Or(n):[] }:Lr,qr={a:"g,e,K",i:"e=e&&typeof K=='undefined'?e:d(e,K,3)",b:"typeof u=='number'",v:Tr,g:"if(e(t[n],n,g)===false)return E"},Kr={a:"z,H,l",i:"var a=arguments,b=0,c=typeof l=='number'?2:a.length;while(++b":">",'"':""","'":"'"},Jr=yt(Gr),Mr=nr("("+Tr(Jr).join("|")+")","g"),Hr=nr("["+Tr(Gr).join("")+"]","g"),Ur=it(qr),Vr=it(Kr,{i:Kr.i.replace(";",";if(c>3&&typeof a[c-2]=='function'){var e=d(a[--c-1],a[c--],2)}else if(c>2&&typeof a[c-1]=='function'){e=a[--c]}"),g:"E[n]=e?e(E[n],t[n]):t[n]"}),Qr=it(Kr),Xr=it(qr,Wr,{j:b}),Yr=it(qr,Wr); -mt(/x/)&&(mt=function(n){return typeof n=="function"&&_r.call(n)==J});var Zr=gr?function(n){if(!n||_r.call(n)!=H||!$r.argsClass&>(n))return b;var t=n.valueOf,r=typeof t=="function"&&(r=gr(t))&&gr(r);return r?n==r||gr(n)==r:pt(n)}:pt,ne=ot(function(n,t,r){hr.call(n,r)?n[r]++:n[r]=1}),te=ot(function(n,t,r){(hr.call(n,r)?n[r]:n[r]=[]).push(t)}),re=ot(function(n,t,r){n[r]=t}),ee=St;Nr&&nt&&typeof mr=="function"&&(Wt=function(n){if(!mt(n))throw new rr;return mr.apply(e,arguments)});var ue=8==Ir(S+"08")?Ir:function(n,t){return Ir(_t(n)?n.replace(F,""):n,t||0) +mt(/x/)&&(mt=function(n){return typeof n=="function"&&_r.call(n)==J});var Zr=gr?function(n){if(!n||_r.call(n)!=H||!$r.argsClass&>(n))return b;var t=n.valueOf,r=typeof t=="function"&&(r=gr(t))&&gr(r);return r?n==r||gr(n)==r:pt(n)}:pt,ne=ot(function(n,t,r){hr.call(n,r)?n[r]++:n[r]=1}),te=ot(function(n,t,r){(hr.call(n,r)?n[r]:n[r]=[]).push(t)}),re=ot(function(n,t,r){n[r]=t}),ee=St;Fr&&nt&&typeof mr=="function"&&(Wt=function(n){if(!mt(n))throw new rr;return mr.apply(e,arguments)});var ue=8==Ir(S+"08")?Ir:function(n,t){return Ir(_t(n)?n.replace(R,""):n,t||0) };return _.after=function(n,t){if(!mt(t))throw new rr;return function(){return 1>--n?t.apply(this,arguments):void 0}},_.assign=Vr,_.at=function(n){var t=-1,r=Z(arguments,m,b,1),e=r.length,u=Ht(e);for($r.unindexedChars&&_t(n)&&(n=n.split(""));++t=E&&a(o?e[o]:v) }n:for(;++c(m?r(m,y):l(v,y))){for(o=u,(m||v).push(y);--o;)if(m=i[o],0>(m?r(m,y):l(e[o],y)))continue n;h.push(y)}}for(;u--;)(m=i[u])&&g(m);return s(i),s(v),h},_.invert=yt,_.invoke=function(n,t){var r=Pr.call(arguments,2),e=-1,u=typeof t=="function",o=n?n.length:0,a=Ht(typeof o=="number"?o:0);return Et(n,function(n){a[++e]=(u?t:n[t]).apply(n,r)}),a},_.keys=Tr,_.map=St,_.max=At,_.memoize=function(n,t){function r(){var e=r.cache,u=C+(t?t.apply(this,arguments):arguments[0]); return hr.call(e,u)?e[u]:e[u]=n.apply(this,arguments)}if(!mt(n))throw new rr;return r.cache={},r},_.merge=function(n){var t=arguments,r=2;if(!dt(n))return n;if("number"!=typeof t[2]&&(r=t.length),3e(a,r))&&(o[r]=n)}),o},_.once=function(n){var t,r;if(!mt(n))throw new rr;return function(){return t?r:(t=m,r=n.apply(this,arguments),n=d,r)}},_.pairs=function(n){for(var t=-1,r=Tr(n),e=r.length,u=Ht(e);++tr?Sr(0,e+r):Ar(r,e-1))+1);e--;)if(n[e]===t)return e;return-1},_.mixin=Jt,_.noConflict=function(){return e._=ir,this},_.parseInt=ue,_.random=function(n,t){n==d&&t==d&&(t=1),n=+n||0,t==d?(t=n,n=0):t=+t||0;var r=Br();return n%1||t%1?n+Ar(r*(t-n+parseFloat("1e-"+((r+"").length-1))),t):n+sr(r*(t-n+1))},_.reduce=It,_.reduceRight=Bt,_.result=function(n,t){var r=n?n[t]:y; -return mt(r)?n[t]():r},_.runInContext=v,_.size=function(n){var t=n?n.length:0;return typeof t=="number"?t:Tr(n).length},_.some=Pt,_.sortedIndex=$t,_.template=function(n,t,r){var e=_.templateSettings;n||(n=""),r=Qr({},r,e);var u,o=Qr({},r.imports,e.imports),e=Tr(o),o=wt(o),a=0,f=r.interpolate||R,c="__p+='",f=nr((r.escape||R).source+"|"+f.source+"|"+(f===N?P:R).source+"|"+(r.evaluate||R).source+"|$","g");n.replace(f,function(t,r,e,o,f,l){return e||(e=o),c+=n.slice(a,l).replace($,i),r&&(c+="'+__e("+r+")+'"),f&&(u=m,c+="';"+f+";__p+='"),e&&(c+="'+((__t=("+e+"))==null?'':__t)+'"),a=l+t.length,t +return mt(r)?n[t]():r},_.runInContext=v,_.size=function(n){var t=n?n.length:0;return typeof t=="number"?t:Tr(n).length},_.some=Pt,_.sortedIndex=$t,_.template=function(n,t,r){var e=_.templateSettings;n||(n=""),r=Qr({},r,e);var u,o=Qr({},r.imports,e.imports),e=Tr(o),o=wt(o),a=0,f=r.interpolate||D,c="__p+='",f=nr((r.escape||D).source+"|"+f.source+"|"+(f===F?P:D).source+"|"+(r.evaluate||D).source+"|$","g");n.replace(f,function(t,r,e,o,f,l){return e||(e=o),c+=n.slice(a,l).replace($,i),r&&(c+="'+__e("+r+")+'"),f&&(u=m,c+="';"+f+";__p+='"),e&&(c+="'+((__t=("+e+"))==null?'':__t)+'"),a=l+t.length,t }),c+="';\n",f=r=r.variable,f||(r="obj",c="with("+r+"){"+c+"}"),c=(u?c.replace(A,""):c).replace(I,"$1").replace(B,"$1;"),c="function("+r+"){"+(f?"":r+"||("+r+"={});")+"var __t,__p='',__e=_.escape"+(u?",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}":";")+c+"return __p}";try{var l=Qt(e,"return "+c).apply(y,o)}catch(p){throw p.source=c,p}return t?l(t):(l.source=c,l)},_.unescape=function(n){return n==d?"":tr(n).replace(Mr,st)},_.uniqueId=function(n){var t=++j;return tr(n==d?"":n)+t -},_.all=kt,_.any=Pt,_.detect=Ct,_.findWhere=Ct,_.foldl=It,_.foldr=Bt,_.include=jt,_.inject=It,Yr(_,function(n,t){_.prototype[t]||(_.prototype[t]=function(){var t=[this.__wrapped__],r=this.__chain__;return vr.apply(t,arguments),t=n.apply(_,t),r?new w(t,r):t})}),_.first=Nt,_.last=function(n,t,r){if(n){var e=0,u=n.length;if(typeof t!="number"&&t!=d){var o=u;for(t=_.createCallback(t,r,3);o--&&t(n[o],o,n);)e++}else if(e=t,e==d||r)return n[u-1];return h(n,Sr(0,u-e))}},_.take=Nt,_.head=Nt,Yr(_,function(n,t){_.prototype[t]||(_.prototype[t]=function(t,r){var e=this.__chain__,u=n(this.__wrapped__,t,r); +},_.all=kt,_.any=Pt,_.detect=Ct,_.findWhere=Ct,_.foldl=It,_.foldr=Bt,_.include=jt,_.inject=It,Yr(_,function(n,t){_.prototype[t]||(_.prototype[t]=function(){var t=[this.__wrapped__],r=this.__chain__;return vr.apply(t,arguments),t=n.apply(_,t),r?new w(t,r):t})}),_.first=Ft,_.last=function(n,t,r){if(n){var e=0,u=n.length;if(typeof t!="number"&&t!=d){var o=u;for(t=_.createCallback(t,r,3);o--&&t(n[o],o,n);)e++}else if(e=t,e==d||r)return n[u-1];return h(n,Sr(0,u-e))}},_.take=Ft,_.head=Ft,Yr(_,function(n,t){_.prototype[t]||(_.prototype[t]=function(t,r){var e=this.__chain__,u=n(this.__wrapped__,t,r); return!e&&(t==d||r&&typeof t!="function")?u:new w(u,e)})}),_.VERSION="1.3.1",_.prototype.chain=function(){return this.__chain__=m,this},_.prototype.toString=function(){return tr(this.__wrapped__)},_.prototype.value=Mt,_.prototype.valueOf=Mt,Ur(["join","pop","shift"],function(n){var t=er[n];_.prototype[n]=function(){var n=this.__chain__,r=t.apply(this.__wrapped__,arguments);return n?new w(r,n):r}}),Ur(["push","reverse","sort","unshift"],function(n){var t=er[n];_.prototype[n]=function(){return t.apply(this.__wrapped__,arguments),this -}}),Ur(["concat","slice","splice"],function(n){var t=er[n];_.prototype[n]=function(){return new w(t.apply(this.__wrapped__,arguments),this.__chain__)}}),$r.spliceObjects||Ur(["pop","shift","splice"],function(n){var t=er[n],r="splice"==n;_.prototype[n]=function(){var n=this.__chain__,e=this.__wrapped__,u=t.apply(e,arguments);return 0===e.length&&delete e[0],n||r?new w(u,n):u}}),_}var y,m=!0,d=null,b=!1,_=[],w=[],j=0,x={},C=+new Date+"",E=75,O=40,S=" \t\x0B\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000",A=/\b__p\+='';/g,I=/\b(__p\+=)''\+/g,B=/(__e\(.*?\)|\b__t\))\+'';/g,P=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,D=/\w*$/,N=/<%=([\s\S]+?)%>/g,F=RegExp("^["+S+"]*0+(?=.$)"),R=/($^)/,$=/['\n\r\t\u2028\u2029\\]/g,z="Array Boolean Date Error Function Math Number Object RegExp String _ attachEvent clearTimeout isFinite isNaN parseInt setImmediate setTimeout".split(" "),L="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "),T="[object Arguments]",q="[object Array]",K="[object Boolean]",W="[object Date]",G="[object Error]",J="[object Function]",M="[object Number]",H="[object Object]",U="[object RegExp]",V="[object String]",Q={}; +}}),Ur(["concat","slice","splice"],function(n){var t=er[n];_.prototype[n]=function(){return new w(t.apply(this.__wrapped__,arguments),this.__chain__)}}),$r.spliceObjects||Ur(["pop","shift","splice"],function(n){var t=er[n],r="splice"==n;_.prototype[n]=function(){var n=this.__chain__,e=this.__wrapped__,u=t.apply(e,arguments);return 0===e.length&&delete e[0],n||r?new w(u,n):u}}),_}var y,m=!0,d=null,b=!1,_=[],w=[],j=0,x={},C=+new Date+"",E=75,O=40,S=" \t\x0B\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000",A=/\b__p\+='';/g,I=/\b(__p\+=)''\+/g,B=/(__e\(.*?\)|\b__t\))\+'';/g,P=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,N=/\w*$/,F=/<%=([\s\S]+?)%>/g,R=RegExp("^["+S+"]*0+(?=.$)"),D=/($^)/,$=/['\n\r\t\u2028\u2029\\]/g,z="Array Boolean Date Error Function Math Number Object RegExp String _ attachEvent clearTimeout isFinite isNaN parseInt setImmediate setTimeout".split(" "),L="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "),T="[object Arguments]",q="[object Array]",K="[object Boolean]",W="[object Date]",G="[object Error]",J="[object Function]",M="[object Number]",H="[object Object]",U="[object RegExp]",V="[object String]",Q={}; Q[J]=b,Q[T]=Q[q]=Q[K]=Q[W]=Q[M]=Q[H]=Q[U]=Q[V]=m;var X={"boolean":b,"function":m,object:m,number:b,string:b,undefined:b},Y={"\\":"\\","'":"'","\n":"n","\r":"r","\t":"t","\u2028":"u2028","\u2029":"u2029"},Z=X[typeof exports]&&exports,nt=X[typeof module]&&module&&module.exports==Z&&module,tt=X[typeof global]&&global;!tt||tt.global!==tt&&tt.window!==tt||(n=tt);var rt=v();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(n._=rt, define(function(){return rt})):Z&&!Z.nodeType?nt?(nt.exports=rt)._=rt:Z._=rt:n._=rt }(this); \ No newline at end of file diff --git a/dist/lodash.js b/dist/lodash.js index 855593b6d..bc68e928b 100644 --- a/dist/lodash.js +++ b/dist/lodash.js @@ -1199,9 +1199,7 @@ push.apply(args, partialRightArgs); } if (isCurry && args.length < arity) { - bindData[2] = args; - bindData[3] = null; - return createBound(bound, bitmask & ~8 & ~16); + return createBound(func, 12, args, null, null, arity); } if (isBindKey) { func = thisBinding[key]; diff --git a/dist/lodash.min.js b/dist/lodash.min.js index 543bb6c49..3178b6b74 100644 --- a/dist/lodash.min.js +++ b/dist/lodash.min.js @@ -14,7 +14,7 @@ i&&typeof i=="object"&&(zr(i)||vt(i))?yr.apply(o,t?i:et(i,t,r)):r||o.push(i)}ret if(a!=L)return _;var a=n.constructor,l=t.constructor;if(a!=l&&(!mt(a)||!(a instanceof a&&mt(l)&&l instanceof l)))return _}for(l=!u,u||(u=f()),o||(o=f()),a=u.length;a--;)if(u[a]==n)return o[a]==t;var s=0,i=y;if(u.push(n),o.push(t),c){if(a=n.length,s=t.length,i=s==n.length,!i&&!e)return i;for(;s--;)if(c=a,l=t[s],e)for(;c--&&!(i=ut(n[c],l,r,e,u,o)););else if(!(i=ut(n[s],l,r,e,u,o)))break;return i}return x(t,function(t,a,f){return hr.call(f,a)?(s++,i=hr.call(n,a)&&ut(n[a],t,r,e,u,o)):void 0}),i&&!e&&x(n,function(n,t,r){return hr.call(r,t)?i=-1<--s:void 0 }),l&&(p(u),p(o)),i}function ot(n,t,r,e,u){(zr(t)?Ot:d)(t,function(t,o){var i,a,f=t,c=n[o];if(t&&((a=zr(t))||b(t))){for(f=e.length;f--;)if(i=e[f]==t){c=u[f];break}if(!i){var l;r&&(f=r(c,t),l=typeof f!="undefined")&&(c=f),l||(c=a?zr(c)?c:[]:b(c)?c:{}),e.push(t),u.push(c),l||ot(c,t,r,e,u)}}else r&&(f=r(c,t),typeof f=="undefined"&&(f=t)),typeof f!="undefined"&&(c=f);n[o]=c})}function it(n,e,u){var o=-1,a=lt(),c=n?n.length:0,l=[],v=!e&&c>=k&&a===t,h=u||v?f():l;if(v){var g=i(h);g?(a=r,h=g):(v=_,h=u?h:(p(h),l)) }for(;++oa(h,y))&&((u||v)&&h.push(y),l.push(g))}return v?(p(h.b),s(h)):u&&p(h),l}function at(n){return function(t,r,e){var u={};return r=Z.createCallback(r,e,3),Ot(t,function(t,e,o){e=rr(r(t,e,o)),n(u,t,e,o)}),u}}function ft(n,t,r,e,u,o){var i=1&t,a=2&t,f=4&t,c=8&t,l=16&t;if(!a&&!mt(n))throw new er;var p=n&&n.__bindData__;if(p)return i&&!(1&p[1])&&(p[4]=u),f&&!(4&p[1])&&(p[5]=o),c&&yr.apply(p[2]||(p[2]=[]),r),l&&yr.apply(p[3]||(p[3]=[]),e),p[1]|=t,ft.apply(m,p); -if(!i||a||f||l||!(Fr.fastBind||jr&&r.length))s=function(){var c=arguments,l=i?u:this;return r&&wr.apply(c,r),e&&yr.apply(c,e),f&&c.lengthr?Ir(0,o+r):r)||0,o&&typeof o=="number"?i=-1<(dt(n)?n.indexOf(t,r):u(n,t,r)):d(n,function(n){return++er||typeof n=="undefined")return 1;if(ne?1:0}function e(n){return"\\"+vr[n]}function u(){}function i(n){return n instanceof i?n:new o(n)}function o(n,r){this.__chain__=!!r,this.__wrapped__=n}function a(n,r,t){if(typeof n!="function")return Q;if(typeof r=="undefined")return n;switch(t){case 1:return function(t){return n.call(r,t) };case 2:return function(t,e){return n.call(r,t,e)};case 3:return function(t,e,u){return n.call(r,t,e,u)};case 4:return function(t,e,u,i){return n.call(r,t,e,u,i)}}return J(n,r)}function f(n,r,t,e){e=(e||0)-1;for(var u=n?n.length:0,i=[];++eu(a,l))&&(t&&a.push(l),o.push(f))}return o}function p(n){return function(r,t,e){var u={};return t=K(t,e,3),R(r,function(r,e,i){e=t(r,e,i)+"",n(u,r,e,i)}),u}}function s(n,r,t,e,u,i){var o=1&r,a=2&r,f=4&r,l=16&r; -if(!a&&!x(n))throw new TypeError;if(!o||a||f||l||!(Wr.fastBind||Or&&t.length))c=function(){var l=arguments,h=o?u:this;return t&&Tr.apply(l,t),e&&Er.apply(l,e),f&&l.lengthu(a,l))&&(t&&a.push(l),o.push(f))}return o}function p(n){return function(r,t,e){var u={};return t=K(t,e,3),B(r,function(r,e,i){e=t(r,e,i)+"",n(u,r,e,i)}),u}}function s(n,r,t,e,u,i){var o=1&r,a=2&r,f=4&r; +if(r&=16,!a&&!x(n))throw new TypeError;if(!o||a||f||r||!(Wr.fastBind||Or&&t.length))l=function(){var r=arguments,p=o?u:this;return t&&Tr.apply(r,t),e&&Er.apply(r,e),f&&r.lengthe&&(e=t,u=n)});else for(;++iu&&(u=t);return u}function M(n,r){var t=-1,e=n?n.length:0;if(typeof e=="number")for(var u=Array(e);++targuments.length;r=a(r,e,4);var i=-1,o=n.length;if(typeof o=="number")for(u&&(t=n[++i]);++iarguments.length;return r=a(r,e,4),B(n,function(n,e,i){t=u?(u=!1,n):r(t,n,e,i)}),t}function W(n,r,t){var e;r=K(r,t,3),t=-1;var u=n?n.length:0;if(typeof u=="number")for(;++tt(u,o)&&i.push(o)}return i}function P(n,r,t){if(n){var e=0,u=n.length; -if(typeof r!="number"&&null!=r){var i=-1;for(r=K(r,t,3);++ie?Br(0,u+e):e||0}else if(e)return e=G(n,t),n[e]===t?e:-1;return n?r(n,t,e):-1}function V(n,r,t){if(typeof r!="number"&&null!=r){var e=0,u=-1,i=n?n.length:0;for(r=K(r,t,3);++u>>1,t(n[e])o&&(u=n.apply(i,e));else{var t=+new Date;!l&&!s&&(a=t);var p=f-(t-a);0/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,variable:""},Sr||(v=function(n){if(E(n)){u.prototype=n;var r=new u;u.prototype=null}return r||{}}),m(arguments)||(m=function(n){return n&&typeof n=="object"?xr.call(n,"callee"):!1});var zr=Dr||function(n){return n&&typeof n=="object"?Ar.call(n)==ir:!1},Cr=function(n){var r,t=[]; -if(!n||!sr[typeof n])return t;for(r in n)xr.call(n,r)&&t.push(r);return t},Pr=Rr?function(n){return E(n)?Rr(n):[]}:Cr,Ur={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"},Vr=w(Ur),Gr=RegExp("("+Pr(Vr).join("|")+")","g"),Hr=RegExp("["+Pr(Ur).join("")+"]","g"),Jr=function(n,r){var t;if(!n||!sr[typeof n])return n;for(t in n)if(r(n[t],t,n)===nr)break;return n},Kr=function(n,r){var t;if(!n||!sr[typeof n])return n;for(t in n)if(xr.call(n,t)&&r(n[t],t,n)===nr)break;return n};x(/x/)&&(x=function(n){return typeof n=="function"&&"[object Function]"==Ar.call(n) +}),u}function F(n,r,t){var e=!0;r=K(r,t,3),t=-1;var u=n?n.length:0;if(typeof u=="number")for(;++te&&(e=t,u=n)});else for(;++iu&&(u=t);return u}function M(n,r){var t=-1,e=n?n.length:0;if(typeof e=="number")for(var u=Array(e);++targuments.length;r=a(r,e,4);var i=-1,o=n.length;if(typeof o=="number")for(u&&(t=n[++i]);++iarguments.length;return r=a(r,e,4),k(n,function(n,e,i){t=u?(u=!1,n):r(t,n,e,i)}),t}function W(n,r,t){var e;r=K(r,t,3),t=-1;var u=n?n.length:0;if(typeof u=="number")for(;++tt(u,o)&&i.push(o)}return i}function P(n,r,t){if(n){var e=0,u=n.length; +if(typeof r!="number"&&null!=r){var i=-1;for(r=K(r,t,3);++ie?kr(0,u+e):e||0}else if(e)return e=G(n,t),n[e]===t?e:-1;return n?r(n,t,e):-1}function V(n,r,t){if(typeof r!="number"&&null!=r){var e=0,u=-1,i=n?n.length:0;for(r=K(r,t,3);++u>>1,t(n[e])o&&(u=n.apply(i,e));else{var t=+new Date;!l&&!s&&(a=t);var p=f-(t-a);0/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,variable:""},Sr||(v=function(n){if(E(n)){u.prototype=n;var r=new u;u.prototype=null}return r||{}}),m(arguments)||(m=function(n){return n&&typeof n=="object"?xr.call(n,"callee"):!1});var zr=Fr||function(n){return n&&typeof n=="object"?Ar.call(n)==ir:!1},Cr=function(n){var r,t=[]; +if(!n||!sr[typeof n])return t;for(r in n)xr.call(n,r)&&t.push(r);return t},Pr=Br?function(n){return E(n)?Br(n):[]}:Cr,Ur={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"},Vr=w(Ur),Gr=RegExp("("+Pr(Vr).join("|")+")","g"),Hr=RegExp("["+Pr(Ur).join("")+"]","g"),Jr=function(n,r){var t;if(!n||!sr[typeof n])return n;for(t in n)if(r(n[t],t,n)===nr)break;return n},Kr=function(n,r){var t;if(!n||!sr[typeof n])return n;for(t in n)if(xr.call(n,t)&&r(n[t],t,n)===nr)break;return n};x(/x/)&&(x=function(n){return typeof n=="function"&&"[object Function]"==Ar.call(n) });var Lr=p(function(n,r,t){xr.call(n,t)?n[t]++:n[t]=1}),Qr=p(function(n,r,t){(xr.call(n,t)?n[t]:n[t]=[]).push(r)});i.after=function(n,r){if(!x(r))throw new TypeError;return function(){return 1>--n?r.apply(this,arguments):void 0}},i.bind=J,i.bindAll=function(n){for(var r=1u(o,a)){for(var f=t;--f;)if(0>u(r[f],a))continue n;o.push(a)}}return o},i.invert=w,i.invoke=function(n,r){var t=Mr.call(arguments,2),e=-1,u=typeof r=="function",i=n?n.length:0,o=Array(typeof i=="number"?i:0); -return R(n,function(n){o[++e]=(u?r:n[r]).apply(n,t)}),o},i.keys=Pr,i.map=k,i.max=q,i.memoize=function(n,r){var t={};return function(){var e=rr+(r?r.apply(this,arguments):arguments[0]);return xr.call(t,e)?t[e]:t[e]=n.apply(this,arguments)}},i.min=function(n,r,t){var e=1/0,u=e,i=-1,o=n?n.length:0;if(r||typeof o!="number")r=K(r,t,3),R(n,function(n,t,i){t=r(n,t,i),tr(t,u)&&(e[u]=n) -}),e},i.once=function(n){var r,t;if(!x(n))throw new TypeError;return function(){return r?t:(r=!0,t=n.apply(this,arguments),n=null,t)}},i.pairs=function(n){for(var r=-1,t=Pr(n),e=t.length,u=Array(e);++rr?0:r);++nt?Br(0,e+t):kr(t,e-1))+1);e--;)if(n[e]===r)return e;return-1},i.mixin=X,i.noConflict=function(){return n._=dr,this},i.random=function(n,r){null==n&&null==r&&(r=1),n=+n||0,null==r?(r=n,n=0):r=+r||0;var t=qr();return n%1||r%1?n+kr(t*(r-n+parseFloat("1e-"+((t+"").length-1))),r):n+jr(t*(r-n+1)) +u&&e.push(u)}return e},i.compose=function(){for(var n=arguments,r=n.length||1;r--;)if(!x(n[r]))throw new TypeError;return function(){for(var r=arguments,t=n.length;t--;)r=[n[t].apply(this,r)];return r[0]}},i.countBy=Lr,i.debounce=L,i.defaults=d,i.defer=function(n){if(!x(n))throw new TypeError;var r=Mr.call(arguments,1);return setTimeout(function(){n.apply(Y,r)},1)},i.delay=function(n,r){if(!x(n))throw new TypeError;var t=Mr.call(arguments,2);return setTimeout(function(){n.apply(Y,t)},r)},i.difference=C,i.filter=N,i.flatten=function(n,r){return f(n,r) +},i.forEach=B,i.functions=b,i.groupBy=Qr,i.initial=function(n,r,t){if(!n)return[];var e=0,u=n.length;if(typeof r!="number"&&null!=r){var i=u;for(r=K(r,t,3);i--&&r(n[i],i,n);)e++}else e=null==r||t?1:r||e;return Mr.call(n,0,Dr(kr(0,u-e),u))},i.intersection=function(n){var r=arguments,t=r.length,e=-1,u=g(),i=n?n.length:0,o=[];n:for(;++eu(o,a)){for(var f=t;--f;)if(0>u(r[f],a))continue n;o.push(a)}}return o},i.invert=w,i.invoke=function(n,r){var t=Mr.call(arguments,2),e=-1,u=typeof r=="function",i=n?n.length:0,o=Array(typeof i=="number"?i:0); +return B(n,function(n){o[++e]=(u?r:n[r]).apply(n,t)}),o},i.keys=Pr,i.map=D,i.max=q,i.memoize=function(n,r){var t={};return function(){var e=rr+(r?r.apply(this,arguments):arguments[0]);return xr.call(t,e)?t[e]:t[e]=n.apply(this,arguments)}},i.min=function(n,r,t){var e=1/0,u=e,i=-1,o=n?n.length:0;if(r||typeof o!="number")r=K(r,t,3),B(n,function(n,t,i){t=r(n,t,i),tr(t,u)&&(e[u]=n) +}),e},i.once=function(n){var r,t;if(!x(n))throw new TypeError;return function(){return r?t:(r=!0,t=n.apply(this,arguments),n=null,t)}},i.pairs=function(n){for(var r=-1,t=Pr(n),e=t.length,u=Array(e);++rr?0:r);++nt?kr(0,e+t):Dr(t,e-1))+1);e--;)if(n[e]===r)return e;return-1},i.mixin=X,i.noConflict=function(){return n._=dr,this},i.random=function(n,r){null==n&&null==r&&(r=1),n=+n||0,null==r?(r=n,n=0):r=+r||0;var t=qr();return n%1||r%1?n+Dr(t*(r-n+parseFloat("1e-"+((t+"").length-1))),r):n+jr(t*(r-n+1)) },i.reduce=$,i.reduceRight=I,i.result=function(n,r){var t=n?n[r]:Y;return x(t)?n[r]():t},i.size=function(n){var r=n?n.length:0;return typeof r=="number"?r:Pr(n).length},i.some=W,i.sortedIndex=G,i.template=function(n,r,t){var u=i,o=u.templateSettings;n||(n=""),t=d({},t,o);var a=0,f="__p+='",o=t.variable;n.replace(RegExp((t.escape||tr).source+"|"+(t.interpolate||tr).source+"|"+(t.evaluate||tr).source+"|$","g"),function(r,t,u,i,o){return f+=n.slice(a,o).replace(er,e),t&&(f+="'+_.escape("+t+")+'"),i&&(f+="';"+i+";__p+='"),u&&(f+="'+((__t=("+u+"))==null?'':__t)+'"),a=o+r.length,r -}),f+="';\n",o||(o="obj",f="with("+o+"||{}){"+f+"}"),f="function("+o+"){var __t,__p='',__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}"+f+"return __p}";try{var l=Function("_","return "+f)(u)}catch(c){throw c.source=f,c}return r?l(r):(l.source=f,l)},i.unescape=function(n){return null==n?"":(n+"").replace(Gr,y)},i.uniqueId=function(n){var r=++Z+"";return n?n+r:r},i.all=D,i.any=W,i.detect=N,i.findWhere=function(n,r){return z(n,r,!0)},i.foldl=$,i.foldr=I,i.include=S,i.inject=$,i.first=P,i.last=function(n,r,t){if(n){var e=0,u=n.length; -if(typeof r!="number"&&null!=r){var i=u;for(r=K(r,t,3);i--&&r(n[i],i,n);)e++}else if(e=r,null==e||t)return n[u-1];return Mr.call(n,Br(0,u-e))}},i.take=P,i.head=P,X(i),i.VERSION="1.3.1",i.prototype.chain=function(){return this.__chain__=!0,this},i.prototype.value=function(){return this.__wrapped__},R("pop push reverse shift sort splice unshift".split(" "),function(n){var r=mr[n];i.prototype[n]=function(){var n=this.__wrapped__;return r.apply(n,arguments),!Wr.spliceObjects&&0===n.length&&delete n[0],this -}}),R(["concat","join","slice"],function(n){var r=mr[n];i.prototype[n]=function(){var n=r.apply(this.__wrapped__,arguments);return this.__chain__&&(n=new o(n),n.__chain__=!0),n}}),typeof define=="function"&&typeof define.amd=="object"&&define.amd?(n._=i, define(function(){return i})):hr&&!hr.nodeType?gr?(gr.exports=i)._=i:hr._=i:n._=i}(this); \ No newline at end of file +}),f+="';\n",o||(o="obj",f="with("+o+"||{}){"+f+"}"),f="function("+o+"){var __t,__p='',__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}"+f+"return __p}";try{var l=Function("_","return "+f)(u)}catch(c){throw c.source=f,c}return r?l(r):(l.source=f,l)},i.unescape=function(n){return null==n?"":(n+"").replace(Gr,y)},i.uniqueId=function(n){var r=++Z+"";return n?n+r:r},i.all=F,i.any=W,i.detect=R,i.findWhere=function(n,r){return z(n,r,!0)},i.foldl=$,i.foldr=I,i.include=S,i.inject=$,i.first=P,i.last=function(n,r,t){if(n){var e=0,u=n.length; +if(typeof r!="number"&&null!=r){var i=u;for(r=K(r,t,3);i--&&r(n[i],i,n);)e++}else if(e=r,null==e||t)return n[u-1];return Mr.call(n,kr(0,u-e))}},i.take=P,i.head=P,X(i),i.VERSION="1.3.1",i.prototype.chain=function(){return this.__chain__=!0,this},i.prototype.value=function(){return this.__wrapped__},B("pop push reverse shift sort splice unshift".split(" "),function(n){var r=mr[n];i.prototype[n]=function(){var n=this.__wrapped__;return r.apply(n,arguments),!Wr.spliceObjects&&0===n.length&&delete n[0],this +}}),B(["concat","join","slice"],function(n){var r=mr[n];i.prototype[n]=function(){var n=r.apply(this.__wrapped__,arguments);return this.__chain__&&(n=new o(n),n.__chain__=!0),n}}),typeof define=="function"&&typeof define.amd=="object"&&define.amd?(n._=i, define(function(){return i})):hr&&!hr.nodeType?gr?(gr.exports=i)._=i:hr._=i:n._=i}(this); \ No newline at end of file diff --git a/lodash.js b/lodash.js index 197a046c6..cb06d11f0 100644 --- a/lodash.js +++ b/lodash.js @@ -1490,9 +1490,7 @@ push.apply(args, partialRightArgs); } if (isCurry && args.length < arity) { - bindData[2] = args; - bindData[3] = null; - return createBound(bound, bitmask & ~8 & ~16); + return createBound(func, 12, args, null, null, arity); } if (isBindKey) { func = thisBinding[key]; diff --git a/test/test.js b/test/test.js index 5ba98959b..072fbfe30 100644 --- a/test/test.js +++ b/test/test.js @@ -700,10 +700,18 @@ var object = { 'a': 1, 'b': 2, 'c': 3 }; - equal(_.curry(_.bind(func, object), 3)('a')('b')('c'), 6); - equal(_.bind(_.curry(func), object)('a')('b')('c'), 6); + ok(_.isEqual(_.curry(_.bind(func, object), 3)('a')('b')('c'), NaN)); + ok(_.isEqual(_.curry(_.bind(func, object), 3)('a', 'b')('c'), NaN)); + equal(_.curry(_.bind(func, object), 3)('a', 'b', 'c'), 6); + + ok(_.isEqual(_.bind(_.curry(func), object)('a')('b')('c'), NaN)); + ok(_.isEqual(_.bind(_.curry(func), object)('a', 'b')('c'), NaN)); + equal(_.bind(_.curry(func), object)('a', 'b', 'c'), 6); object.func = _.curry(func); + + ok(_.isEqual(object.func('a')('b')('c'), NaN)); + ok(_.isEqual(object.func('a', 'b')('c'), NaN)); equal(object.func('a', 'b', 'c'), 6); }); }());