From f4de7422b384f3a8d374ef657d95c5af3d8a3b65 Mon Sep 17 00:00:00 2001 From: John-David Dalton Date: Mon, 20 Jan 2014 00:12:16 -0800 Subject: [PATCH] Fix large array optimization in `baseDifference`. --- dist/lodash.compat.js | 4 ++-- dist/lodash.compat.min.js | 21 +++++++++++---------- dist/lodash.js | 4 ++-- dist/lodash.min.js | 2 +- lodash.js | 4 ++-- 5 files changed, 18 insertions(+), 17 deletions(-) diff --git a/dist/lodash.compat.js b/dist/lodash.compat.js index cf7d1eff6..c2b9446e2 100644 --- a/dist/lodash.compat.js +++ b/dist/lodash.compat.js @@ -1319,7 +1319,7 @@ length = array ? array.length : 0, result = []; - if (createCache && indexOf === baseIndexOf && length >= LARGE_ARRAY_SIZE) { + if (createCache && values && indexOf === baseIndexOf && values.length >= LARGE_ARRAY_SIZE) { indexOf = cacheIndexOf; values = createCache(values); } @@ -7514,7 +7514,7 @@ /*--------------------------------------------------------------------------*/ - // expose Lo-Dash + // export Lo-Dash var _ = runInContext(); // some AMD build optimizers like r.js check for condition patterns like the following: diff --git a/dist/lodash.compat.min.js b/dist/lodash.compat.min.js index c621ea751..1f835803c 100644 --- a/dist/lodash.compat.min.js +++ b/dist/lodash.compat.min.js @@ -9,16 +9,17 @@ if(i)return i}return t.g-r.g}function l(n){return ct[n]}function f(n){return"\\" }function o(n,t){this.__chain__=!!t,this.__wrapped__=n}function m(n){function t(){if(e){var n=Nt(e);qr.apply(n,arguments)}if(this instanceof t){var o=j(r.prototype),n=r.apply(o,n||arguments);return er(n)?n:o}return r.apply(u,n||arguments)}var r=n[0],e=n[2],u=n[4];return ie(t,n),t}function d(n,t,r,e,u){if(r){var o=r(n);if(typeof o!="undefined")return o}if(!er(n))return n;var a=Sr.call(n);if(!it[a]||!oe.nodeClass&&p(n))return n;var i=ee[a];switch(a){case Z:case nt:return new i(+n);case et:case at:return new i(n); case ot:return o=i(n.source,K.exec(n)),o.lastIndex=n.lastIndex,o}if(a=he(n),t){var l=!e;e||(e=c()),u||(u=c());for(var f=e.length;f--;)if(e[f]==n)return u[f];o=a?i(n.length):{}}else o=a?Nt(n):Qt({},n);return a&&(Dr.call(n,"index")&&(o.index=n.index),Dr.call(n,"input")&&(o.input=n.input)),t?(e.push(n),u.push(o),(a?st:vt)(n,function(n,a){o[a]=d(n,t,r,e,u)}),l&&(s(e),s(u)),o):o}function j(n){return er(n)?Mr(n):{}}function R(n,t,r){if(typeof n!="function")return ir;if(typeof t=="undefined"||!("prototype"in n))return n; var e=n.__bindData__;if(typeof e=="undefined"&&(oe.funcNames&&(e=!n.name),e=e||!oe.funcDecomp,!e)){var u=Tr.call(n);oe.funcNames||(e=!M.test(u)),e||(e=X.test(u),ie(n,e))}if(false===e||true!==e&&e[1]&k)return n;switch(r){case 1:return function(r){return n.call(t,r)};case 2:return function(r,e){return n.call(t,r,e)};case 3:return function(r,e,u){return n.call(t,r,e,u)};case 4:return function(r,e,u,o){return n.call(t,r,e,u,o)}}return Ht(n,t)}function ct(n){function t(){var n=l?a:this;if(u){var g=Nt(u);qr.apply(g,arguments) -}return(o||c)&&(g||(g=Nt(arguments)),o&&qr.apply(g,o),c&&g.length=N&&(o=r,e=ae(e));++uo(e,l)&&i.push(l)}return i}function st(n,t){var r=-1,e=n,u=n?n.length:0;if(typeof u=="number")for(oe.unindexedChars&&or(e)&&(e=e.split(""));++r=N,f=[];if(l)var p=ae(),a=r;else p=u?c():f;for(;++oa(p,h))&&((u||l)&&p.push(h),f.push(g)) -}return!l&&u&&s(p),f}function wt(n){return function(t,r,e){var o={};if(r=u.createCallback(r,e,3),he(t)){e=-1;for(var a=t.length;++eu;u++)e+="l='"+n.d[u]+"';if((!(k&&n[l])&&g.call(p,l))",n.e||(e+="||(!n[l]&&p[l]!==q[l])"),e+="){"+n.c+"}"; -e+="}"}return t("e,f,g,i,j,q,o,u,v,w",r+(e+"return r;")+"}")(tt,xr,Dr,Et,er,Cr,ue,at,kr,Sr)}function Ct(){var n=(n=u.indexOf)===At?t:n;return n}function kt(n){return typeof n=="function"&&Ar.test(Tr.call(n))}function Ot(n){var t,r;return!n||Sr.call(n)!=ut||!Dr.call(n,"constructor")&&(t=n.constructor,rr(t)&&!(t instanceof t))||!oe.argsClass&&Et(n)||!oe.nodeClass&&p(n)?false:oe.ownLast?(le(n,function(n,t,e){return r=Dr.call(e,t),false}),false!==r):(le(n,function(n,t){r=t}),typeof r=="undefined"||Dr.call(n,r)) -}function Et(n){return n&&typeof n=="object"&&typeof n.length=="number"&&Sr.call(n)==Q||false}function St(n,t,r){var e=0,o=n?n.length:0;if(typeof t!="number"&&null!=t){var a=-1;for(t=u.createCallback(t,r,3);++ae?Hr(0,u+e):e||0;else if(e)return e=Rt(n,r),u&&n[e]===r?e:-1;return t(n,r,e)}function It(n,t,r){if(typeof t!="number"&&null!=t){var e=0,o=-1,a=n?n.length:0; -for(t=u.createCallback(t,r,3);++ot?t=Hr(u+t,0):t>u&&(t=u),typeof r=="undefined"?r=u:0>r?r=Hr(u+r,0):r>u&&(r=u),u=r-t||0,r=sr(u);++e>>1,r(n[e])=N&&(o=r,e=ae(e));++uo(e,l)&&i.push(l)}return i}function st(n,t){var r=-1,e=n,u=n?n.length:0; +if(typeof u=="number")for(oe.unindexedChars&&or(e)&&(e=e.split(""));++r=N,f=[];if(l)var p=ae(),a=r;else p=u?c():f;for(;++oa(p,h))&&((u||l)&&p.push(h),f.push(g))}return!l&&u&&s(p),f}function wt(n){return function(t,r,e){var o={};if(r=u.createCallback(r,e,3),he(t)){e=-1;for(var a=t.length;++eu;u++)e+="l='"+n.d[u]+"';if((!(k&&n[l])&&g.call(p,l))",n.e||(e+="||(!n[l]&&p[l]!==q[l])"),e+="){"+n.c+"}";e+="}"}return t("e,f,g,i,j,q,o,u,v,w",r+(e+"return r;")+"}")(tt,xr,Dr,Et,er,Cr,ue,at,kr,Sr) +}function Ct(){var n=(n=u.indexOf)===At?t:n;return n}function kt(n){return typeof n=="function"&&Ar.test(Tr.call(n))}function Ot(n){var t,r;return!n||Sr.call(n)!=ut||!Dr.call(n,"constructor")&&(t=n.constructor,rr(t)&&!(t instanceof t))||!oe.argsClass&&Et(n)||!oe.nodeClass&&p(n)?false:oe.ownLast?(le(n,function(n,t,e){return r=Dr.call(e,t),false}),false!==r):(le(n,function(n,t){r=t}),typeof r=="undefined"||Dr.call(n,r))}function Et(n){return n&&typeof n=="object"&&typeof n.length=="number"&&Sr.call(n)==Q||false +}function St(n,t,r){var e=0,o=n?n.length:0;if(typeof t!="number"&&null!=t){var a=-1;for(t=u.createCallback(t,r,3);++ae?Hr(0,u+e):e||0;else if(e)return e=Rt(n,r),u&&n[e]===r?e:-1;return t(n,r,e)}function It(n,t,r){if(typeof t!="number"&&null!=t){var e=0,o=-1,a=n?n.length:0;for(t=u.createCallback(t,r,3);++ot?t=Hr(u+t,0):t>u&&(t=u),typeof r=="undefined"?r=u:0>r?r=Hr(u+r,0):r>u&&(r=u),u=r-t||0,r=sr(u);++e>>1,r(n[e])r?0:r);++t=e)return false;if(typeof n=="string"||!he(n)&&or(n))return Kr?Kr.call(n,t,r):-1r?Hr(0,e+r):r)||0,-1= LARGE_ARRAY_SIZE) { + if (createCache && values && indexOf === baseIndexOf && values.length >= LARGE_ARRAY_SIZE) { indexOf = cacheIndexOf; values = createCache(values); } @@ -7208,7 +7208,7 @@ /*--------------------------------------------------------------------------*/ - // expose Lo-Dash + // export Lo-Dash var _ = runInContext(); // some AMD build optimizers like r.js check for condition patterns like the following: diff --git a/dist/lodash.min.js b/dist/lodash.min.js index a72eff673..857960e65 100644 --- a/dist/lodash.min.js +++ b/dist/lodash.min.js @@ -10,7 +10,7 @@ for(var r in n)Ir.call(n,r)&&t.push(r);return t}function o(n,t){if(!tr(n))return }function R(n,t,r,e,u){if(r){var o=r(n);if(typeof o!="undefined")return o}if(!tr(n))return n;var i=Cr.call(n);if(!ut[i])return n;var a=Zr[i];switch(i){case Q:case Y:return new a(+n);case nt:case et:return new a(n);case rt:return o=a(n.source,P.exec(n)),o.lastIndex=n.lastIndex,o}if(i=fe(n),t){var f=!e;e||(e=c()),u||(u=c());for(var l=e.length;l--;)if(e[l]==n)return u[l];o=i?a(n.length):{}}else o=i?Et(n):Ht({},n);return i&&(Ir.call(n,"index")&&(o.index=n.index),Ir.call(n,"input")&&(o.input=n.input)),t?(e.push(n),u.push(o),(i?st:vt)(n,function(n,i){o[i]=R(n,t,r,e,u) }),f&&(p(e),p(u)),o):o}function at(n){return tr(n)?zr(n):{}}function ft(n,t,r){if(typeof n!="function")return or;if(typeof t=="undefined"||!("prototype"in n))return n;var e=n.__bindData__;if(typeof e=="undefined"&&(ne.funcNames&&(e=!n.name),e=e||!ne.funcDecomp,!e)){var u=Nr.call(n);ne.funcNames||(e=!K.test(u)),e||(e=V.test(u),ee(n,e))}if(false===e||true!==e&&e[1]&x)return n;switch(r){case 1:return function(r){return n.call(t,r)};case 2:return function(r,e){return n.call(t,r,e)};case 3:return function(r,e,u){return n.call(t,r,e,u) };case 4:return function(r,e,u,o){return n.call(t,r,e,u,o)}}return Xt(n,t)}function lt(n){function t(){var n=f?i:this;if(u){var g=Et(u);Tr.apply(g,arguments)}return(o||c)&&(g||(g=Et(arguments)),o&&Tr.apply(g,o),c&&g.length=N&&(o=r,e=re(e));++uo(e,f)&&a.push(f)}return a}function st(n,t){var r=-1,e=n?n.length:0;if(typeof e=="number")for(;++r=N&&(o=r,e=re(e));++uo(e,f)&&a.push(f)}return a}function st(n,t){var r=-1,e=n?n.length:0;if(typeof e=="number")for(;++r= LARGE_ARRAY_SIZE) { + if (createCache && values && indexOf === baseIndexOf && values.length >= LARGE_ARRAY_SIZE) { indexOf = cacheIndexOf; values = createCache(values); } @@ -7536,7 +7536,7 @@ /*--------------------------------------------------------------------------*/ - // expose Lo-Dash + // export Lo-Dash var _ = runInContext(); // some AMD build optimizers like r.js check for condition patterns like the following: