From b5f2295f37a7d534dd3d30bb56b2ae5c705113fd Mon Sep 17 00:00:00 2001 From: John-David Dalton Date: Sun, 14 Oct 2012 14:51:57 -0700 Subject: [PATCH] Simplify `_.bindAll` iterator options. Former-commit-id: e9abbcc940f333e053d1ab5c35c7f4ae2d96d381 --- lodash.js | 16 +++++------ lodash.min.js | 34 ++++++++++++------------ lodash.underscore.min.js | 57 ++++++++++++++++++++-------------------- 3 files changed, 52 insertions(+), 55 deletions(-) diff --git a/lodash.js b/lodash.js index 28f571c15..ac926a621 100644 --- a/lodash.js +++ b/lodash.js @@ -434,7 +434,7 @@ 'inLoop': 'if (!callback(value, index, collection)) return !result' }; - /** Reusable iterator options for `defaults` and `extend` */ + /** Reusable iterator options for `bindAll`, `defaults`, and `extend` */ var extendIteratorOptions = { 'useHas': false, 'useStrict': false, @@ -3186,22 +3186,20 @@ * jQuery('#lodash_button').on('click', buttonView.onClick); * // => When the button is clicked, `this.label` will have the correct value */ - var bindAll = createIterator({ - 'useHas': false, - 'useStrict': false, - 'args': 'object', + var bindAll = createIterator(extendIteratorOptions, { 'top': 'var funcs = arguments,\n' + - ' index = 0,\n' + ' length = funcs.length;\n' + 'if (length > 1) {\n' + - ' while (++index < length) {\n' + - ' result[funcs[index]] = bind(result[funcs[index]], result)\n' + + ' while (--length) {\n' + + ' index = funcs[length];\n' + + ' result[index] = bind(result[index], result)\n' + ' }\n' + ' return result\n' + '}', 'inLoop': - 'if (isFunction(value)) result[index] = bind(value, result)' + 'if (isFunction(value)) result[index] = bind(value, result)', + 'bottom': false }); /** diff --git a/lodash.min.js b/lodash.min.js index b0f490cd3..eec487e90 100644 --- a/lodash.min.js +++ b/lodash.min.js @@ -21,20 +21,20 @@ bt=Math.random,wt="[object Arguments]",Et="[object Array]",St="[object Boolean]" ("x")[0];try{var jt=("[object Object]",ht.call(e.document||0)==Nt)}catch(Ft){}var It=pt&&/\n|Opera/.test(pt+ht.call(e.opera)),qt=mt&&/^.+$|true/.test(mt+!!e.attachEvent),Rt=!It,Ut={};Ut[wt]=Ut["[object Function]"]=i,Ut[Et]=Ut[St]=Ut[xt]=Ut[Tt]=Ut[Nt]=Ut[Ct]=Ut[kt]=n;var zt={"boolean":i,"function":n,object:n,number:i,string:i,"undefined":i,unknown:n},Wt={"\\":"\\","'":"'","\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 Xt={a:"d,c,s",p:"c=e(c,s)",h:"if(c(u,h,d)===false)return p"},Vt={i:"true",h:"if(!c(u,h,d))return!p"},$t={q:i,r:i,a:"l",p:"for(var a=1,b=arguments.length;a":">",'"':""","'":"'"},en=E(Zt),tn=l($t,{h:"if(p[h]==null)"+$t.h}),nn=l($t),rn=mt?function(e){var t=typeof e;return"function"==t&<.call(e,"prototype")?y(e):e&&zt[t]?mt(e):[]}:y,sn=l(Xt,Vt),on=l(Xt,{i:"[]",h:"c(u,h,d)&&p.push(u)"}),un=l(Xt),an=l(Xt,{i:"d||[]",d:{b:"p=Array(j)",k:"p="+(qt?"Array(j)":"[]")},h:{b:"p[h]=c(u,h,d)",k:"p"+(qt?"[m]=":".push" -)+"(c(u,h,d))"}}),fn=l(Xt,Vt,{i:"false",h:Vt.h.replace("!","")}),ln=l({q:i,r:i,a:"l",p:"var w=arguments,h=0,j=w.length;if(j>1){while(++he?t():function(){if(1>--e)return t.apply(this,arguments)}},s.bind=j,s.bindAll=ln,s.chain=function(e){return e=new s(e),e.__chain__=n,e},s.clone=b,s.compact=function(e){for(var t=-1,n=e?e.length:0,r=[];++tD(s,u)){for(var a=1;an?gt(0,r+n):yt -(n,r-1))+1);r--;)if(e[r]===t)return r;return-1},s.lateBind=function(e,t){return a(t,e,ct.call(arguments,2))},s.map=an,s.max=k,s.memoize=function(e,t){var n={};return function(){var r=t?t.apply(this,arguments):arguments[0];return at.call(n,r)?n[r]:n[r]=e.apply(this,arguments)}},s.merge=x,s.min=function(e,t,n){var r=Infinity,i=-1,s=e?e.length:0,o=r;if(t||s!==+s)t=f(t,n),un(e,function(e,n,i){n=t(e,n,i),nD(s,n,1))i[n]=e}),i},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=function(e){var t=[];return Qt(e,function(e,n){t.push([n,e])}),t},s.partial=function(e){return a(e,ct.call -(arguments,1))},s.pick=function(e,t,n){var r={};if("function"!=typeof t)for(var i=0,s=st.apply(R,arguments),o=s.length;++i=f?(Lt(u),a=r,s=e.apply(o,i)):u||(u=At(n,f)),s}},s.times=function(e,t,n){for(var e=+e||0,r=-1,i=Array(e);++rD(r,i)&&r.push(i)}return r},s.uniq=B,s.uniqueId=function(e){var t=z++;return e?e+t:t},s.values=T,s.where=function(e,t){var r=[];Kt(t,function(e,t){r.push(t)});var i=r.length,s=[];return un(e,function(e){for(var o=n,u=0;u1){while(--j){h=w[j];p[h]=v(p[h],p)}return p}",h:"if(y(u))p[h]=v(u,p)",e:i});s.VERSION="0.8.2",s.after=function(e,t){return 1>e?t():function(){if(1>--e)return t.apply(this,arguments)}},s.bind=j,s.bindAll=ln,s.chain=function(e){return e=new s(e),e.__chain__=n,e},s.clone=b,s.compact=function(e){for(var t=-1,n=e?e.length:0,r=[];++tD(s,u)){for(var a=1;an?gt(0,r+n):yt(n,r-1))+1); +r--;)if(e[r]===t)return r;return-1},s.lateBind=function(e,t){return a(t,e,ct.call(arguments,2))},s.map=an,s.max=k,s.memoize=function(e,t){var n={};return function(){var r=t?t.apply(this,arguments):arguments[0];return at.call(n,r)?n[r]:n[r]=e.apply(this,arguments)}},s.merge=x,s.min=function(e,t,n){var r=Infinity,i=-1,s=e?e.length:0,o=r;if(t||s!==+s)t=f(t,n),un(e,function(e,n,i){n=t(e,n,i),nD(s,n,1))i[n]=e}),i},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=function(e){var t=[];return Qt(e,function(e,n){t.push([n,e])}),t},s.partial=function(e){return a(e,ct.call(arguments +,1))},s.pick=function(e,t,n){var r={};if("function"!=typeof t)for(var i=0,s=st.apply(R,arguments),o=s.length;++i=f?(Lt(u),a=r,s=e.apply(o,i)):u||(u=At(n,f)),s}},s.times=function(e,t,n){for(var e=+e||0,r=-1,i=Array(e);++rD(r,i)&&r.push(i)}return r},s.uniq=B,s.uniqueId=function(e){var t=z++;return e?e+t:t},s.values=T,s.where=function(e,t){var r=[];Kt(t,function(e,t){r.push(t)});var i=r.length,s=[];return un(e,function(e){for(var o=n,u=0;un||e===t)return 1;if(er&&(r=n,o=e)});else for(;++io&&(o=e[i]);return o}function M(e,t){var n=[];return u(e,function(e){n.push(e[t])}),n}function _(e,t,n,r){var s=3>arguments.length,t=m(t,r);return u(e,function(e,r,o){n=s? -(s=i,e):t(n,e,r,o)}),n}function D(e,t,n,r){var s=e?e.length:0,o=3>arguments.length;if(s!==+s)var a=Mt(e),s=a.length;return u(e,function(u,f,l){f=a?a[--s]:--s,n=o?(o=i,e[f]):t.call(r,n,e[f],f,l)}),n}function P(e,t,n){if(e)return t==r||n?e[0]:ot.call(e,0,t)}function H(e,t){for(var n=-1,r=e?e.length:0,i=[];++nn?ht(0,i+n):n||0)-1;else if(n)return r=F(e,t),e[r]===t?r:-1;for( -;++r>>1,n(e[r])>>1,e[r]B(a,r))a.push(r),u.push(e[s]);return u}function q(e,t){return Nt||at&&2|{(\/]|\[\D|\b(?:delete|in|instanceof|new|typeof|void)\b/ -,K=/&(?:amp|lt|gt|quot|#x27);/g,Q=/(?:__e|__t=)\(\s*(?![\d\s"']|this\.)/g,G=RegExp("^"+(X.valueOf+"").replace(/[.*+?^=!:${}()|[\]\/\\]/g,"\\$&").replace(/valueOf|for [^\]]+/g,".+?")+"$"),Y=/($^)/,Z=/[&<>"']/g,et=/['\n\r\t\u2028\u2029\\]/g,tt=Math.ceil,nt=W.concat,rt=Math.floor,it=X.hasOwnProperty,st=W.push,ot=W.slice,ut=X.toString,at=G.test(at=ot.bind)&&at,ft=G.test(ft=Array.isArray)&&ft,lt=e.isFinite,ct=G.test(ct=Object.keys)&&ct,ht=Math.max,pt=Math.min,dt=Math.random,vt="[object Array]",mt="[object Boolean]" -,gt="[object Date]",yt="[object Number]",bt="[object Object]",wt="[object RegExp]",Et="[object String]",St=e.clearTimeout,xt=e.setTimeout,Tt;(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);Tt=(n.splice.call(t,0,1),t[0])})(1);var Nt=at&&/\n|Opera/.test(at+ut.call(e.opera)),Ct={"boolean":i,"function":n,object:n,number:i,string:i,"undefined":i,unknown:n},kt={"\\":"\\","'":"'","\n":"n","\r":"r"," ":"t","\u2028":"u2028","\u2029":"u2029"} -;p.templateSettings={escape:/<%-([\s\S]+?)%>/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,variable:""},p.isArguments=function(e){return"[object Arguments]"==ut.call(e)},p.isArguments(arguments)||(p.isArguments=function(e){return e?it.call(e,"callee"):i});var Lt=ft||function(e){return ut.call(e)==vt};E(/x/)&&(E=function(e){return"[object Function]"==ut.call(e)});var At={"&":"&","<":"<",">":">",'"':""","'":"'"},Ot=T(At),Mt=ct?function(e){return e&&Ct[typeof e]?ct( -e):[]}:S;p.VERSION="0.8.2",p.after=function(e,t){return 1>e?t():function(){if(1>--e)return t.apply(this,arguments)}},p.bind=q,p.bindAll=function(e){var t,n,r=e,i=e;if(!e)return i;n=arguments,t=0;var s=n.length;if(1B(r,s,n)&&i.push(s)}return i},p.escape=function(e){return e==r?"":(e+"").replace(Z,y)},p.every=f,p.extend=l,p. -filter=a,p.find=A,p.first=P,p.flatten=H,p.forEach=u,p.functions=x,p.groupBy=function(e,t,n){var r={},t=m(t,n);return u(e,function(e,n,i){n=t(e,n,i),(it.call(r,n)?r[n]:r[n]=[]).push(e)}),r},p.has=function(e,t){return e?it.call(e,t):i},p.identity=R,p.indexOf=B,p.initial=function(e,t,n){return e?ot.call(e,0,-(t==r||n?1:t)):[]},p.intersection=function(e){var t=arguments.length,n=-1,r=e.length,i=[];e:for(;++nB(i,s)){for(var o=1;oB(arguments[o],s))continue e;i.push(s)}} -return i},p.invert=T,p.invoke=function(e,t){var n=ot.call(arguments,2),r="function"==typeof t,i=[];return u(e,function(e){i.push((r?t:e[t]).apply(e,n))}),i},p.isArray=Lt,p.isBoolean=function(e){return e===n||e===i||ut.call(e)==mt},p.isDate=function(e){return ut.call(e)==gt},p.isElement=function(e){return e?1===e.nodeType:i},p.isEmpty=function(e){if(!e)return n;if(Lt(e)||C(e))return!e.length;for(var t in e)if(it.call(e,t))return i;return n},p.isEqual=N,p.isFinite=function(e){return lt(e)&&ut.call( -e)==yt},p.isFunction=E,p.isNaN=function(e){return ut.call(e)==yt&&e!=+e},p.isNull=function(e){return e===r},p.isNumber=function(e){return ut.call(e)==yt},p.isObject=function(e){return e?Ct[typeof e]:i},p.isRegExp=function(e){return ut.call(e)==wt},p.isString=C,p.isUndefined=function(e){return e===t},p.keys=Mt,p.last=function(e,t,n){if(e){var i=e.length;return t==r||n?e[i-1]:ot.call(e,-t||i)}},p.lastIndexOf=function(e,t,n){var r=e?e.length:0;for("number"==typeof n&&(r=(0>n?ht(0,r+n):pt(n,r-1))+1); -r--;)if(e[r]===t)return r;return-1},p.map=o,p.max=O,p.memoize=function(e,t){var n={};return function(){var r=t?t.apply(this,arguments):arguments[0];return it.call(n,r)?n[r]:n[r]=e.apply(this,arguments)}},p.min=function(e,t,n){var r=Infinity,i=-1,s=e?e.length:0,o=r;if(t||s!==+s)t=m(t,n),u(e,function(e,n,i){n=t(e,n,i),nB(t,r,1)&&(n[r]=e)}),n},p.once=function(e){var t,s=i;return function(){return s?t:(s=n,t=e.apply(this,arguments),e=r,t)}},p.pairs=function(e){var t=[];return c(e,function(e,n){t.push([n,e])}),t},p.pick=function(e){for(var t=0,n=nt.apply(W,arguments),r=n.length,i={};++t=f?(St(u),a=r,s=e.apply(o,i)):u||(u=xt(n,f)),s}},p.times=function(e,t,n){for(var e=+e||0,r=-1,i=Array(e);++rB(r,i)&&r.push(i)}return r},p.uniq=I,p.uniqueId=function(e){var t=V++;return e?e+t:t},p.values=k,p.where=function(e,t){var r=[];h(t,function(e,t){r.push(t)});var i=r.length,s=[];return u(e,function(e){for(var o=n,u=0;uB(arguments -,i,1)&&r.push(i)}return r},p.wrap=function(e,t){return function(){var n=[e];return arguments.length&&st.apply(n,arguments),t.apply(this,n)}},p.zip=function(e){for(var t=-1,n=e?O(M(arguments,"length")):0,r=Array(n);++tn||e===t)return 1;if(er&&(r=n,o=e)});else for(;++io&&(o=e[i]);return o}function M(e,t){var n=[];return u(e,function(e){n.push(e[t])}),n}function _(e,t,n,r){var s=3>arguments.length,t=m(t,r);return u(e,function(e,r,o){n=s?(s=i,e):t(n,e,r,o)}),n}function D(e,t,n,r){var s= +e?e.length:0,o=3>arguments.length;if(s!==+s)var a=Mt(e),s=a.length;return u(e,function(u,f,l){f=a?a[--s]:--s,n=o?(o=i,e[f]):t.call(r,n,e[f],f,l)}),n}function P(e,t,n){if(e)return t==r||n?e[0]:ot.call(e,0,t)}function H(e,t){for(var n=-1,r=e?e.length:0,i=[];++nn?ht(0,i+n):n||0)-1;else if(n)return r=F(e,t),e[r]===t?r:-1;for(;++r>>1,n(e[r])>>1,e[r]B(a,r))a.push(r),u.push(e[s]);return u}function q(e,t){return Nt||at&&2|{(\/]|\[\D|\b(?:delete|in|instanceof|new|typeof|void)\b/,K=/&(?:amp|lt|gt|quot|#x27);/g +,Q=/(?:__e|__t=)\(\s*(?![\d\s"']|this\.)/g,G=RegExp("^"+(X.valueOf+"").replace(/[.*+?^=!:${}()|[\]\/\\]/g,"\\$&").replace(/valueOf|for [^\]]+/g,".+?")+"$"),Y=/($^)/,Z=/[&<>"']/g,et=/['\n\r\t\u2028\u2029\\]/g,tt=Math.ceil,nt=W.concat,rt=Math.floor,it=X.hasOwnProperty,st=W.push,ot=W.slice,ut=X.toString,at=G.test(at=ot.bind)&&at,ft=G.test(ft=Array.isArray)&&ft,lt=e.isFinite,ct=G.test(ct=Object.keys)&&ct,ht=Math.max,pt=Math.min,dt=Math.random,vt="[object Array]",mt="[object Boolean]",gt="[object Date]" +,yt="[object Number]",bt="[object Object]",wt="[object RegExp]",Et="[object String]",St=e.clearTimeout,xt=e.setTimeout,Tt;(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);Tt=(n.splice.call(t,0,1),t[0])})(1);var Nt=at&&/\n|Opera/.test(at+ut.call(e.opera)),Ct={"boolean":i,"function":n,object:n,number:i,string:i,"undefined":i,unknown:n},kt={"\\":"\\","'":"'","\n":"n","\r":"r"," ":"t","\u2028":"u2028","\u2029":"u2029"};p.templateSettings= +{escape:/<%-([\s\S]+?)%>/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,variable:""},p.isArguments=function(e){return"[object Arguments]"==ut.call(e)},p.isArguments(arguments)||(p.isArguments=function(e){return e?it.call(e,"callee"):i});var Lt=ft||function(e){return ut.call(e)==vt};E(/x/)&&(E=function(e){return"[object Function]"==ut.call(e)});var At={"&":"&","<":"<",">":">",'"':""","'":"'"},Ot=T(At),Mt=ct?function(e){return e&&Ct[typeof e]?ct(e):[]}:S;p.VERSION="0.8.2" +,p.after=function(e,t){return 1>e?t():function(){if(1>--e)return t.apply(this,arguments)}},p.bind=q,p.bindAll=function(e){var t,n,r=e,s=e;if(!e)return s;n=arguments;var o=n.length;if(1B(r,s,n)&&i.push(s)}return i},p.escape=function(e){return e==r?"":(e+"").replace(Z,y)},p.every=f,p.extend=l,p.filter=a,p.find=A,p.first= +P,p.flatten=H,p.forEach=u,p.functions=x,p.groupBy=function(e,t,n){var r={},t=m(t,n);return u(e,function(e,n,i){n=t(e,n,i),(it.call(r,n)?r[n]:r[n]=[]).push(e)}),r},p.has=function(e,t){return e?it.call(e,t):i},p.identity=R,p.indexOf=B,p.initial=function(e,t,n){return e?ot.call(e,0,-(t==r||n?1:t)):[]},p.intersection=function(e){var t=arguments.length,n=-1,r=e.length,i=[];e:for(;++nB(i,s)){for(var o=1;oB(arguments[o],s))continue e;i.push(s)}}return i},p.invert=T,p.invoke= +function(e,t){var n=ot.call(arguments,2),r="function"==typeof t,i=[];return u(e,function(e){i.push((r?t:e[t]).apply(e,n))}),i},p.isArray=Lt,p.isBoolean=function(e){return e===n||e===i||ut.call(e)==mt},p.isDate=function(e){return ut.call(e)==gt},p.isElement=function(e){return e?1===e.nodeType:i},p.isEmpty=function(e){if(!e)return n;if(Lt(e)||C(e))return!e.length;for(var t in e)if(it.call(e,t))return i;return n},p.isEqual=N,p.isFinite=function(e){return lt(e)&&ut.call(e)==yt},p.isFunction=E,p.isNaN= +function(e){return ut.call(e)==yt&&e!=+e},p.isNull=function(e){return e===r},p.isNumber=function(e){return ut.call(e)==yt},p.isObject=function(e){return e?Ct[typeof e]:i},p.isRegExp=function(e){return ut.call(e)==wt},p.isString=C,p.isUndefined=function(e){return e===t},p.keys=Mt,p.last=function(e,t,n){if(e){var i=e.length;return t==r||n?e[i-1]:ot.call(e,-t||i)}},p.lastIndexOf=function(e,t,n){var r=e?e.length:0;for("number"==typeof n&&(r=(0>n?ht(0,r+n):pt(n,r-1))+1);r--;)if(e[r]===t)return r;return-1 +},p.map=o,p.max=O,p.memoize=function(e,t){var n={};return function(){var r=t?t.apply(this,arguments):arguments[0];return it.call(n,r)?n[r]:n[r]=e.apply(this,arguments)}},p.min=function(e,t,n){var r=Infinity,i=-1,s=e?e.length:0,o=r;if(t||s!==+s)t=m(t,n),u(e,function(e,n,i){n=t(e,n,i),nB(t,r,1)&&(n[r]=e)}),n},p.once=function(e){var t,s=i;return function(){return s?t:(s=n,t=e.apply(this,arguments),e=r,t)}},p.pairs=function(e){var t=[];return c(e,function(e,n){t.push([n,e])}),t},p.pick=function(e){for(var t=0,n=nt.apply(W,arguments),r=n.length,i={};++t=f?(St(u),a=r,s=e.apply(o,i)):u||(u=xt(n,f)),s}},p.times=function(e,t,n){for(var e=+e||0,r=-1,i=Array(e);++rB(r,i)&&r.push(i)}return r},p.uniq=I,p.uniqueId=function(e){var t=V++;return e?e+t:t},p.values=k,p.where=function(e,t){var r=[];h(t,function(e,t){r.push(t)});var i=r.length,s=[];return u(e,function(e){for(var o=n,u=0;uB(arguments,i,1)&&r.push(i)}return r},p.wrap=function( +e,t){return function(){var n=[e];return arguments.length&&st.apply(n,arguments),t.apply(this,n)}},p.zip=function(e){for(var t=-1,n=e?O(M(arguments,"length")):0,r=Array(n);++t