From bfce2645370136cacbfeca0a2c345d583eb8f57e Mon Sep 17 00:00:00 2001 From: John-David Dalton Date: Tue, 1 Apr 2014 02:04:58 -0700 Subject: [PATCH] Cover `nonEnumArgs` in modern builds too. --- dist/lodash.js | 84 ++++++++++++++++++++++++++++------------------ dist/lodash.min.js | 72 +++++++++++++++++++-------------------- lodash.js | 23 ++++++------- 3 files changed, 98 insertions(+), 81 deletions(-) diff --git a/dist/lodash.js b/dist/lodash.js index f6a2ef7d1..fcbf7b78a 100644 --- a/dist/lodash.js +++ b/dist/lodash.js @@ -766,34 +766,48 @@ */ var support = lodash.support = {}; - /** - * Detect if functions can be decompiled by `Function#toString` - * (all but PS3 and older Opera mobile browsers & avoided in Windows 8 apps). - * - * @memberOf _.support - * @type boolean - */ - support.funcDecomp = !isNative(context.WinRTError) && reThis.test(runInContext); + (function(x) { - /** - * Detect if `Function#name` is supported (all but IE). - * - * @memberOf _.support - * @type boolean - */ - support.funcNames = typeof Function.name == 'string'; + for (var argsKey in arguments) { } - /** - * Detect if the DOM is supported. - * - * @memberOf _.support - * @type boolean - */ - try { - support.dom = document.createDocumentFragment().nodeType === 11; - } catch(e) { - support.dom = false; - } + /** + * Detect if functions can be decompiled by `Function#toString` + * (all but PS3 and older Opera mobile browsers & avoided in Windows 8 apps). + * + * @memberOf _.support + * @type boolean + */ + support.funcDecomp = !isNative(context.WinRTError) && reThis.test(runInContext); + + /** + * Detect if `Function#name` is supported (all but IE). + * + * @memberOf _.support + * @type boolean + */ + support.funcNames = typeof Function.name == 'string'; + + /** + * Detect if `arguments` object indexes are non-enumerable + * (Firefox < 4, IE < 9, PhantomJS, Safari < 5.1). + * + * @memberOf _.support + * @type boolean + */ + support.nonEnumArgs = !(argsKey == '1' && hasOwnProperty.call(arguments, '1')); + + /** + * Detect if the DOM is supported. + * + * @memberOf _.support + * @type boolean + */ + try { + support.dom = document.createDocumentFragment().nodeType === 11; + } catch(e) { + support.dom = false; + } + }(0, 0)); /** * By default, the template delimiters used by Lo-Dash are similar to those in @@ -2042,13 +2056,12 @@ props = keysIn(object), length = props.length, objLength = length && object.length, + maxIndex = objLength - 1, result = []; - if (typeof objLength == 'number' && objLength > 0) { - var keyIndex, - allowIndexes = isArray(object), - maxIndex = objLength - 1; - } + var allowIndexes = typeof objLength == 'number' && objLength > 0 && + (isArray(object) || (support.nonEnumArgs && isArguments(object))); + while (++index < length) { var key = props[index]; if ((allowIndexes && (keyIndex = +key, keyIndex > -1 && keyIndex <= maxIndex && keyIndex % 1 == 0)) || @@ -6320,8 +6333,13 @@ if (!isObject(object)) { return []; } + var keyIndex, + length = object.length; + + length = (typeof length == 'number' && length > 0 && + (isArray(object) || (support.nonEnumArgs && isArguments(object))) && length) >>> 0; + var index = -1, - length = isArray(object) ? object.length : 0, maxIndex = length - 1, result = Array(length), skipIndexes = length > 0; @@ -6330,7 +6348,7 @@ result[index] = String(index); } for (var key in object) { - if (!(skipIndexes && key > -1 && key <= maxIndex && key % 1 == 0)) { + if (!(skipIndexes && (keyIndex = +key, keyIndex > -1 && keyIndex <= maxIndex && keyIndex % 1 == 0))) { result.push(key); } } diff --git a/dist/lodash.min.js b/dist/lodash.min.js index 1492c0751..1800516af 100644 --- a/dist/lodash.min.js +++ b/dist/lodash.min.js @@ -6,58 +6,58 @@ ;(function(){function n(n,t){return typeof n=="undefined"?t:n}function t(n,t){if(n!==t){if(n>t||typeof n=="undefined")return 1;if(nr||13r||8202e||13e||8202i(t,l)&&f.push(l);return f}function ct(n,t){var e=-1,r=n?n.length:0;if(typeof r=="number"&&-1i(t,l)&&f.push(l);return f}function ct(n,t){var e=-1,r=n?n.length:0;if(typeof r=="number"&&-1a(p,h)&&((u||f)&&p.push(h),c.push(s))}return c}function Ct(n,t){for(var e=-1,r=t(n),u=r.length,o=Ie(u);++ea(p,h)&&((u||f)&&p.push(h),c.push(s))}return c}function Ct(n,t){for(var e=-1,r=t(n),u=r.length,o=Ie(u);++ei?0:i)}function $t(n,t,r){var u=n?n.length:0;if(typeof r=="number")r=0>r?cr(u+r,0):r||0;else if(r)return r=qt(n,t),u&&n[r]===t?r:-1;return e(n,t,r)}function Lt(n,t,e){var r=n?n.length:0;if(typeof t!="number"&&null!=t){var u=r,i=0;for(t=o.createCallback(t,e,3);u--&&t(n[u],u,n);)i++}else i=null==t||e?1:t;return i=r-i,Bt(n,0,0>i?0:i)}function zt(n,t,e){var r=n?n.length:0;if(typeof t!="number"&&null!=t){var u=r,i=0; -for(t=o.createCallback(t,e,3);u--&&t(n[u],u,n);)i++}else if(i=t,null==i||e)return n?n[r-1]:_;return i=r-i,Bt(n,0>i?0:i)}function Dt(n,t,e){if(typeof t!="number"&&null!=t){var r=-1,u=n?n.length:0,i=0;for(t=o.createCallback(t,e,3);++rt?0:t;return Bt(n,i)}function Bt(n,t,e){var r=-1,u=n?n.length:0;for(t=typeof t=="undefined"?0:+t||0,0>t?t=cr(u+t,0):t>u&&(t=u),e=typeof e=="undefined"?u:+e||0,0>e?e=cr(u+e,0):e>u&&(e=u),u=t>e?0:e-t,e=Ie(u);++r>>1,e(n[r])e?0:e);++te?cr(r+e,0):e,-1i?0:i)}function $t(n,t,r){var u=n?n.length:0;if(typeof r=="number")r=0>r?cr(u+r,0):r||0;else if(r)return r=qt(n,t),u&&n[r]===t?r:-1;return e(n,t,r)}function Lt(n,t,e){var r=n?n.length:0;if(typeof t!="number"&&null!=t){var u=r,i=0;for(t=o.createCallback(t,e,3);u--&&t(n[u],u,n);)i++}else i=null==t||e?1:t; +return i=r-i,Bt(n,0,0>i?0:i)}function zt(n,t,e){var r=n?n.length:0;if(typeof t!="number"&&null!=t){var u=r,i=0;for(t=o.createCallback(t,e,3);u--&&t(n[u],u,n);)i++}else if(i=t,null==i||e)return n?n[r-1]:_;return i=r-i,Bt(n,0>i?0:i)}function Dt(n,t,e){if(typeof t!="number"&&null!=t){var r=-1,u=n?n.length:0,i=0;for(t=o.createCallback(t,e,3);++rt?0:t;return Bt(n,i)}function Bt(n,t,e){var r=-1,u=n?n.length:0;for(t=typeof t=="undefined"?0:+t||0,0>t?t=cr(u+t,0):t>u&&(t=u),e=typeof e=="undefined"?u:+e||0,0>e?e=cr(u+e,0):e>u&&(e=u),u=t>e?0:e-t,e=Ie(u);++r>>1,e(n[r])e?0:e);++te?cr(r+e,0):e,-1i&&(i=l)}else t=null==t&&ye(n)?u:o.createCallback(t,e,3),ct(n,function(n,e,u){e=t(n,e,u),e>r&&(r=e,i=n)});return i}function ne(n,t,e,r){var u=3>arguments.length;t=o.createCallback(t,r,4);var i=-1,a=n?n.length:0;if(typeof a=="number"&&-1arguments.length; +if("number"!=a&&"string"!=a||!e||e[t]!==n||(t=null),null==t&&Ar(n))for(e=-1,a=n.length;++ei&&(i=l)}else t=null==t&&ye(n)?u:o.createCallback(t,e,3),ct(n,function(n,e,u){e=t(n,e,u),e>r&&(r=e,i=n)});return i}function ne(n,t,e,r){var u=3>arguments.length;t=o.createCallback(t,r,4);var i=-1,a=n?n.length:0;if(typeof a=="number"&&-1arguments.length; return t=o.createCallback(t,r,4),pt(n,function(n,r,o){e=u?(u=false,n):t(e,n,r,o)}),e}function ee(n){var t=-1,e=n&&n.length,r=Ie(0>e?0:e>>>0);return ct(n,function(n){var e=kt(0,++t);r[t]=r[e],r[e]=n}),r}function re(n,t,e){var r;t=o.createCallback(t,e,3),e=-1;var u=n?n.length:0;if(typeof u=="number"&&-1arguments.length)return Et(n,w,null,t);if(n)var e=n[I]?n[I][2]:n.length,r=Bt(arguments,2),e=e-r.length; -return Et(n,w|C,e,t,r)}function oe(n,t,e){var r,u,o,i,a,l,f,c=0,p=false,s=true;if(!se(n))throw new Le;if(t=0>t?0:t,true===e)var h=true,s=false;else he(e)&&(h=e.leading,p="maxWait"in e&&cr(t,+e.maxWait||0),s="trailing"in e?e.trailing:s);var g=function(){var e=t-(Lr()-i);0>=e||e>t?(u&&Ve(u),e=f,u=l=f=_,e&&(c=Lr(),o=n.apply(a,r),l||u||(r=a=null))):l=nr(g,e)},v=function(){l&&Ve(l),u=l=f=_,(s||p!==t)&&(c=Lr(),o=n.apply(a,r),l||u||(r=a=null))};return function(){if(r=arguments,i=Lr(),a=this,f=s&&(l||!h),false===p)var e=h&&!l; +return Et(n,w|C,e,t,r)}function oe(n,t,e){var r,u,o,i,a,l,f,c=0,p=false,s=true;if(!se(n))throw new Le;if(t=0>t?0:t,true===e)var h=true,s=false;else he(e)&&(h=e.leading,p="maxWait"in e&&cr(t,+e.maxWait||0),s="trailing"in e?e.trailing:s);var g=function(){var e=t-($r()-i);0>=e||e>t?(u&&Ve(u),e=f,u=l=f=_,e&&(c=$r(),o=n.apply(a,r),l||u||(r=a=null))):l=nr(g,e)},v=function(){l&&Ve(l),u=l=f=_,(s||p!==t)&&(c=$r(),o=n.apply(a,r),l||u||(r=a=null))};return function(){if(r=arguments,i=$r(),a=this,f=s&&(l||!h),false===p)var e=h&&!l; else{u||h||(c=i);var y=p-(i-c),m=0>=y||y>p;m?(u&&(u=Ve(u)),c=i,o=n.apply(a,r)):u||(u=nr(v,y))}return m&&l?l=Ve(l):l||t===p||(l=nr(g,t)),e&&(m=true,o=n.apply(a,r)),!m||l||u||(r=a=null),o}}function ie(n){if(!se(n))throw new Le;return function(){return!n.apply(this,arguments)}}function ae(n,t,e){var r=arguments;if(!n||2>r.length)return n;var u=0,o=r.length,i=typeof e;if("number"!=i&&"string"!=i||!r[3]||r[3][e]!==t||(o=2),3arguments.length)return t;var e=Bt(arguments);return e.push(n),ae.apply(null,e)}function fe(n){var t=[];return dt(n,function(n,e){se(n)&&t.push(e)}),t.sort()}function ce(n){return n&&typeof n=="object"&&typeof n.length=="number"&&Pe.call(n)==H||false}function pe(n){return n&&typeof n=="object"&&1===n.nodeType&&-1t||null==n||!ar(t))return e;n=$e(n);do t%2&&(e+=n),t=Xe(t/2),n+=n;while(t);return e}function xe(n,t,e){var r=typeof n;return"function"==r||null==n?(typeof t=="undefined"||!("prototype"in n))&&n||Z(n,t,e):"object"!=r?Ae(n):je(n)}function ke(n){return n}function je(n){n||(n={}); -var t=Rr(n),e=t.length,r=t[0],u=n[r];return 1!=e||u!==u||he(u)?function(r){for(var u=e,o=false;u--&&(o=t[u],o=He.call(r,o)&&wt(r[o],n[o],null,true)););return o}:function(n){return He.call(n,r)?(n=n[r],u===n&&(0!==u||1/u==1/n)):false}}function Ce(n,t,e){var r=true,u=t&&fe(t);t&&(e||u.length)||(null==e&&(e=t),t=n,n=o,u=fe(t)),false===e?r=false:he(e)&&"chain"in e&&(r=e.chain),e=-1;for(var i=se(n),a=u?u.length:0;++earguments.length)return t;var e=Bt(arguments);return e.push(n),ae.apply(null,e)}function fe(n){var t=[];return dt(n,function(n,e){se(n)&&t.push(e)}),t.sort()}function ce(n){return n&&typeof n=="object"&&typeof n.length=="number"&&Pe.call(n)==H||false}function pe(n){return n&&typeof n=="object"&&1===n.nodeType&&-1>>0,r=-1,u=e-1,o=Ie(e),i=0t||null==n||!ar(t))return e;n=$e(n);do t%2&&(e+=n),t=Xe(t/2),n+=n;while(t);return e}function xe(n,t,e){var r=typeof n;return"function"==r||null==n?(typeof t=="undefined"||!("prototype"in n))&&n||Z(n,t,e):"object"!=r?Ae(n):je(n) +}function ke(n){return n}function je(n){n||(n={});var t=Er(n),e=t.length,r=t[0],u=n[r];return 1!=e||u!==u||he(u)?function(r){for(var u=e,o=false;u--&&(o=t[u],o=He.call(r,o)&&wt(r[o],n[o],null,true)););return o}:function(n){return He.call(n,r)?(n=n[r],u===n&&(0!==u||1/u==1/n)):false}}function Ce(n,t,e){var r=true,u=t&&fe(t);t&&(e||u.length)||(null==e&&(e=t),t=n,n=o,u=fe(t)),false===e?r=false:he(e)&&"chain"in e&&(r=e.chain),e=-1;for(var i=se(n),a=u?u.length:0;++e--n?t.apply(this,arguments):void 0 +}catch(r){}return e}(),ur=Nt(ur=Be.contains)&&ur,or=Nt(or=We.create)&&or,ir=Nt(ir=Ie.isArray)&&ir,ar=t.isFinite,lr=t.isNaN,fr=Nt(fr=We.keys)&&fr,cr=Se.max,pr=Se.min,sr=Nt(sr=Re.now)&&sr,hr=t.parseInt,gr=Se.random,vr=Nt(vr=Be.trim)&&!vr.call(Y)&&vr,yr=Nt(yr=Be.trimLeft)&&!yr.call(Y)&&yr,mr=Nt(mr=Be.trimRight)&&!mr.call(Y)&&mr,dr={};dr[J]=Ie,dr[Q]=Ee,dr[nt]=Re,dr[tt]=Ne,dr[rt]=We,dr[et]=Te,dr[ut]=Fe,dr[ot]=$e,i.prototype=o.prototype;var br=o.support={};!function(x){for(var n in arguments);br.funcDecomp=!Nt(t.WinRTError)&&M.test(b),br.funcNames=typeof Ne.name=="string",br.nonEnumArgs=!("1"==n&&He.call(arguments,"1")); +try{br.dom=11===qe.createDocumentFragment().nodeType}catch(e){br.dom=false}}(0,0),o.templateSettings={escape:$,evaluate:L,interpolate:z,variable:"",imports:{_:o}},or||(m=function(){function n(){}return function(e){if(he(e)){n.prototype=e;var r=new n;n.prototype=null}return r||t.Object()}}());var _r=Qe&&function(n){var t=new Qe,e=n?n.length:0;for(t.push=t.add;e--;)t.push(n[e]);return t},wr=rr?function(n,t){lt.value=t,rr(n,I,lt)}:Oe,xr=At(function(n,t,e){He.call(n,e)?n[e]++:n[e]=1}),kr=At(function(n,t,e){He.call(n,e)?n[e].push(t):n[e]=[t] +}),jr=At(function(n,t,e){n[e]=t}),Cr=At(function(n,t,e){n[e?0:1].push(t)},true),Or=Jt,Ar=ir||function(n){return n&&typeof n=="object"&&typeof n.length=="number"&&Pe.call(n)==J||false};br.dom||(pe=function(n){return n&&typeof n=="object"&&1===n.nodeType&&!Ir(n)||false});var Ir=Ge?function(n){if(!n||Pe.call(n)!=rt)return false;var t=n.valueOf,e=Nt(t)&&(e=Ge(t))&&Ge(e);return e?n==e||Ge(n)==e:St(n)}:St,Er=fr?function(n){var t=n?n.length:0;return typeof t=="number"&&0--n?t.apply(this,arguments):void 0 }},o.assign=ae,o.at=function(n,t){var e=arguments,r=-1,u=ht(e,true,false,1),o=u.length,i=typeof t;for("number"!=i&&"string"!=i||!e[2]||e[2][t]!==n||(o=1),e=Ie(o);++rarguments.length?Et(t,w|x,null,n):Et(t,w|x|C,null,n,Bt(arguments,2))},o.chain=function(n){return new i(n,true)},o.compact=function(n){for(var t=-1,e=n?n.length:0,r=0,u=[];++t(s?r(s,l):i(p,l))){for(t=u;--t;){var h=o[t]; -if(0>(h?r(h,l):i(n[t],l)))continue n}s&&s.push(l),p.push(l)}return p},o.invert=function(n,t){for(var e=-1,r=Rr(n),u=r.length,o={};++eo?0:o>>>0);return ct(n,function(n){var o=u?t:null!=n&&n[t];i[++r]=o?o.apply(n,e):_}),i},o.keys=Rr,o.keysIn=me,o.map=Jt,o.mapValues=function(n,t,e){var r={};return t=o.createCallback(t,e,3),bt(n,function(n,e,u){r[e]=t(n,e,u) +},o.forInRight=function(n,t,e){return t=Z(t,e,3),yt(n,t,me)},o.forOwn=function(n,t,e){return t=t&&typeof e=="undefined"?t:Z(t,e,3),bt(n,t)},o.forOwnRight=function(n,t,e){return t=Z(t,e,3),yt(n,t,Er)},o.functions=fe,o.groupBy=kr,o.indexBy=jr,o.initial=Lt,o.intersection=function(){for(var n=[],t=-1,u=arguments.length,o=[],i=Rt(),a=_r&&i===e;++t(s?r(s,l):i(p,l))){for(t=u;--t;){var h=o[t]; +if(0>(h?r(h,l):i(n[t],l)))continue n}s&&s.push(l),p.push(l)}return p},o.invert=function(n,t){for(var e=-1,r=Er(n),u=r.length,o={};++eo?0:o>>>0);return ct(n,function(n){var o=u?t:null!=n&&n[t];i[++r]=o?o.apply(n,e):_}),i},o.keys=Er,o.keysIn=me,o.map=Jt,o.mapValues=function(n,t,e){var r={};return t=o.createCallback(t,e,3),bt(n,function(n,e,u){r[e]=t(n,e,u) }),r},o.matches=je,o.max=Qt,o.memoize=function(n,t){if(!se(n))throw new Le;var e=function(){var r=e.cache,u=t?t.apply(this,arguments):"_"+arguments[0];return He.call(r,u)?r[u]:r[u]=n.apply(this,arguments)};return e.cache={},e},o.merge=function(n,t,e){if(!n)return n;var r=arguments,u=r.length,o=typeof e;if("number"!=o&&"string"!=o||!r[3]||r[3][e]!==t||(u=2),3u?0:u>>>0);for(i||(t=o.createCallback(t,e,3)),ct(n,function(n,e,u){if(i)for(e=t.length,u=Ie(e);e--;)u[e]=n[t[e]]; +return n},o.min=function(n,t,e){var r=1/0,i=r,a=typeof t;if("number"!=a&&"string"!=a||!e||e[t]!==n||(t=null),null==t&&Ar(n))for(e=-1,a=n.length;++eu?0:u>>>0);for(i||(t=o.createCallback(t,e,3)),ct(n,function(n,e,u){if(i)for(e=t.length,u=Ie(e);e--;)u[e]=n[t[e]]; else u=t(n,e,u);f[++r]={a:u,b:r,c:n}}),u=f.length,f.sort(i?l:a);u--;)f[u]=f[u].c;return f},o.tap=function(n,t,e){return t.call(e,n),n},o.throttle=function(n,t,e){var r=true,u=true;if(!se(n))throw new Le;return false===e?r=false:he(e)&&(r="leading"in e?!!e.leading:r,u="trailing"in e?!!e.trailing:u),at.leading=r,at.maxWait=+t,at.trailing=u,oe(n,t,at)},o.times=function(n,t,e){n=0>n?0:n>>>0;var r=-1,u=Ie(n);for(t=Z(t,e,1);++re?0:+e||0,r))-t.length,0<=e&&n.indexOf(t,e)==e},o.escape=function(n){return null==n?"":$e(n).replace(F,p)},o.escapeRegExp=_e,o.every=Vt,o.find=Yt,o.findIndex=Wt,o.findKey=function(n,t,e){return t=o.createCallback(t,e,3),st(n,t,bt,true)},o.findLast=function(n,t,e){return t=o.createCallback(t,e,3),st(n,t,pt) -},o.findLastIndex=function(n,t,e){var r=n?n.length:0;for(t=o.createCallback(t,e,3);r--;)if(t(n[r],r,n))return r;return-1},o.findLastKey=function(n,t,e){return t=o.createCallback(t,e,3),st(n,t,_t,true)},o.has=function(n,t){return n?He.call(n,t):false},o.identity=ke,o.indexOf=$t,o.isArguments=ce,o.isArray=Ir,o.isBoolean=function(n){return true===n||false===n||n&&typeof n=="object"&&Pe.call(n)==Q||false},o.isDate=function(n){return n&&typeof n=="object"&&Pe.call(n)==nt||false},o.isElement=pe,o.isEmpty=function(n){var t=true; +},o.findLastIndex=function(n,t,e){var r=n?n.length:0;for(t=o.createCallback(t,e,3);r--;)if(t(n[r],r,n))return r;return-1},o.findLastKey=function(n,t,e){return t=o.createCallback(t,e,3),st(n,t,_t,true)},o.has=function(n,t){return n?He.call(n,t):false},o.identity=ke,o.indexOf=$t,o.isArguments=ce,o.isArray=Ar,o.isBoolean=function(n){return true===n||false===n||n&&typeof n=="object"&&Pe.call(n)==Q||false},o.isDate=function(n){return n&&typeof n=="object"&&Pe.call(n)==nt||false},o.isElement=pe,o.isEmpty=function(n){var t=true; if(!n)return t;var e=Pe.call(n),r=n.length;return-1e?cr(r+e,0):pr(e||0,r-1))+1);r--;)if(n[r]===t)return r;return-1},o.mixin=Ce,o.noConflict=function(){return t._=Ue,this},o.noop=Oe,o.now=Lr,o.pad=function(n,t,e){n=null==n?"":$e(n),t=+t;var r=n.length;return re?0:+e||0,n.length),n.lastIndexOf(t,e)==e},o.template=function(n,t,e){var r=o.templateSettings;e=le({},e,r),n=$e(null==n?"":n);var u,i,a=le({},e.imports,r.imports),r=Rr(a),a=be(a),l=0,f=e.interpolate||P,c="__p+='",f=Fe((e.escape||P).source+"|"+f.source+"|"+(f===z?D:P).source+"|"+(e.evaluate||P).source+"|$","g"); +},o.isNumber=ge,o.isObject=he,o.isPlainObject=Ir,o.isRegExp=ve,o.isString=ye,o.isUndefined=function(n){return typeof n=="undefined"},o.kebabCase=Nr,o.lastIndexOf=function(n,t,e){var r=n?n.length:0;for(typeof e=="number"&&(r=(0>e?cr(r+e,0):pr(e||0,r-1))+1);r--;)if(n[r]===t)return r;return-1},o.mixin=Ce,o.noConflict=function(){return t._=Ue,this},o.noop=Oe,o.now=$r,o.pad=function(n,t,e){n=null==n?"":$e(n),t=+t;var r=n.length;return re?0:+e||0,n.length),n.lastIndexOf(t,e)==e},o.template=function(n,t,e){var r=o.templateSettings;e=le({},e,r),n=$e(null==n?"":n);var u,i,a=le({},e.imports,r.imports),r=Er(a),a=be(a),l=0,f=e.interpolate||P,c="__p+='",f=Fe((e.escape||P).source+"|"+f.source+"|"+(f===z?D:P).source+"|"+(e.evaluate||P).source+"|$","g"); n.replace(f,function(t,e,r,o,a,f){return r||(r=o),c+=n.slice(l,f).replace(V,s),e&&(u=true,c+="'+__e("+e+")+'"),a&&(i=true,c+="';"+a+";\n__p+='"),r&&(c+="'+((__t=("+r+"))==null?'':__t)+'"),l=f+t.length,t}),c+="';",(e=e.variable)||(c="with(obj){"+c+"}"),c=(i?c.replace(N,""):c).replace(S,"$1").replace(T,"$1;"),c="function("+(e||"obj")+"){"+(e?"":"obj||(obj={});")+"var __t,__p=''"+(u?",__e=_.escape":"")+(i?",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}":";")+c+"return __p}";try{var p=Ne(r,"return "+c).apply(_,a) -}catch(h){throw h.source=c,h}return t?p(t):(p.source=c,p)},o.trim=Wr,o.trimLeft=Fr,o.trimRight=$r,o.truncate=function(n,t){var e=30,r="...";if(t&&he(t))var u="separator"in t?t.separator:u,e="length"in t?+t.length||0:e,r="omission"in t?$e(t.omission):r;else null!=t&&(e=+t||0);if(n=null==n?"":$e(n),e>=n.length)return n;var o=e-r.length;if(1>o)return r;if(e=n.slice(0,o),null==u)return e+r;if(ve(u)){if(n.slice(o).search(u)){var i,a,l=n.slice(0,o);for(u.global||(u=Fe(u.source,(B.exec(u)||"")+"g")),u.lastIndex=0;i=u.exec(l);)a=i.index; +}catch(h){throw h.source=c,h}return t?p(t):(p.source=c,p)},o.trim=Tr,o.trimLeft=Wr,o.trimRight=Fr,o.truncate=function(n,t){var e=30,r="...";if(t&&he(t))var u="separator"in t?t.separator:u,e="length"in t?+t.length||0:e,r="omission"in t?$e(t.omission):r;else null!=t&&(e=+t||0);if(n=null==n?"":$e(n),e>=n.length)return n;var o=e-r.length;if(1>o)return r;if(e=n.slice(0,o),null==u)return e+r;if(ve(u)){if(n.slice(o).search(u)){var i,a,l=n.slice(0,o);for(u.global||(u=Fe(u.source,(B.exec(u)||"")+"g")),u.lastIndex=0;i=u.exec(l);)a=i.index; e=e.slice(0,null==a?o:a)}}else n.indexOf(u,o)!=o&&(u=e.lastIndexOf(u),-1n.indexOf(";")?n:n.replace(W,d))},o.uniqueId=function(n){var t=++E;return $e(null==n?"":n)+t},o.all=Vt,o.any=re,o.detect=Yt,o.findWhere=Yt,o.foldl=ne,o.foldr=te,o.include=Mt,o.inject=ne,Ce(function(){var n={};return bt(o,function(t,e){o.prototype[e]||(n[e]=t)}),n}(),false),o.first=Ft,o.last=zt,o.sample=function(n,t,e){return n&&typeof n.length!="number"&&(n=be(n)),null==t||e?(t=n?n.length:0,0t?0:+t||0,n.length),n) },o.take=Ft,o.takeRight=zt,o.takeRightWhile=zt,o.takeWhile=Ft,o.head=Ft,bt(o,function(n,t){var e="sample"!==t;o.prototype[t]||(o.prototype[t]=function(t,r){var u=this.__chain__,o=n(this.__wrapped__,t,r);return u||null!=t&&(!r||e&&typeof t=="function")?new i(o,u):o})}),o.VERSION=A,o.prototype.chain=function(){return this.__chain__=true,this},o.prototype.toString=function(){return $e(this.__wrapped__)},o.prototype.value=Kt,o.prototype.valueOf=Kt,ct(["join","pop","shift"],function(n){var t=ze[n];o.prototype[n]=function(){var n=this.__chain__,e=t.apply(this.__wrapped__,arguments); return n?new i(e,n):e}}),ct(["push","reverse","sort","unshift"],function(n){var t=ze[n];o.prototype[n]=function(){return t.apply(this.__wrapped__,arguments),this}}),ct(["concat","splice"],function(n){var t=ze[n];o.prototype[n]=function(){return new i(t.apply(this.__wrapped__,arguments),this.__chain__)}}),o}var _,w=1,x=2,k=4,j=8,C=16,O=32,A="2.4.1",I="__lodash@"+A+"__",E=0,R=/^[A-Z]+$/,N=/\b__p\+='';/g,S=/\b(__p\+=)''\+/g,T=/(__e\(.*?\)|\b__t\))\+'';/g,W=/&(?:amp|lt|gt|quot|#39);/g,F=/[&<>"']/g,$=/<%-([\s\S]+?)%>/g,L=/<%([\s\S]+?)%>/g,z=/<%=([\s\S]+?)%>/g,D=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,B=/\w*$/,q=/^\s*function[ \n\r\t]+\w/,U=/^0[xX]/,Z=/[\xC0-\xFF]/g,P=/($^)/,K=/[.*+?^${}()|[\]\\]/g,M=/\bthis\b/,V=/['\n\r\u2028\u2029\\]/g,X=/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[a-z]+|[0-9]+/g,Y=" \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",G="Array Boolean Date Function Math Number Object RegExp Set String _ clearTimeout document isFinite isNaN parseInt setTimeout TypeError window WinRTError".split(" "),H="[object Arguments]",J="[object Array]",Q="[object Boolean]",nt="[object Date]",tt="[object Function]",et="[object Number]",rt="[object Object]",ut="[object RegExp]",ot="[object String]",it={}; diff --git a/lodash.js b/lodash.js index d12219079..e4871bd54 100644 --- a/lodash.js +++ b/lodash.js @@ -807,7 +807,7 @@ */ var support = lodash.support = {}; - (function() { + (function(x) { var ctor = function() { this.x = 1; }, object = { '0': 1, 'length': 1 }, props = []; @@ -879,7 +879,7 @@ * @memberOf _.support * @type boolean */ - support.nonEnumArgs = argsKey != '0'; + support.nonEnumArgs = !(argsKey == '1' && hasOwnProperty.call(arguments, '1')); /** * Detect if string indexes are non-enumerable (IE < 9, RingoJS, Rhino, Narwhal). @@ -958,7 +958,7 @@ } catch(e) { support.nodeClass = true; } - }(1)); + }(0, 0)); /** * By default, the template delimiters used by Lo-Dash are similar to those in @@ -2249,13 +2249,13 @@ props = keysIn(object), length = props.length, objLength = length && object.length, + maxIndex = objLength - 1, result = []; - if (typeof objLength == 'number' && objLength > 0) { - var keyIndex, - allowIndexes = isArray(object) || (support.nonEnumStrings && isString(object)), - maxIndex = objLength - 1; - } + var allowIndexes = typeof objLength == 'number' && objLength > 0 && + (isArray(object) || (support.nonEnumArgs && isArguments(object)) || + (support.nonEnumStrings && isString(object))); + while (++index < length) { var key = props[index]; if ((allowIndexes && (keyIndex = +key, keyIndex > -1 && keyIndex <= maxIndex && keyIndex % 1 == 0)) || @@ -6544,18 +6544,17 @@ if (!isObject(object)) { return []; } - var isArr, - keyIndex, + var keyIndex, length = object.length; length = (typeof length == 'number' && length > 0 && - ((isArr = isArray(object)) || (support.nonEnumStrings && isString(object)) || + (isArray(object) || (support.nonEnumStrings && isString(object)) || (support.nonEnumArgs && isArguments(object))) && length) >>> 0; var index = -1, maxIndex = length - 1, result = Array(length), - skipIndexes = isArr && length > 0, + skipIndexes = length > 0, skipErrorProps = support.enumErrorProps && (object === errorProto || object instanceof Error), skipProto = support.enumPrototypes && typeof object == 'function';