Avoid incorrectly converting local variables to boolean values.

Former-commit-id: 322f6dec4c669bdc1ef534f7786cf12aee580e53
This commit is contained in:
John-David Dalton
2013-05-27 15:31:41 -07:00
parent be52c181ea
commit 96e47f3d27
4 changed files with 12 additions and 7 deletions

View File

@@ -2221,7 +2221,7 @@
}
return match.replace(/^(( *)if *\(.*?\bisArray\([^\)]+\).*?\) *{\n)(( *)var index[^;]+.+\n+)/m, function(snippet, statement, indent, vars) {
vars = vars
.replace(/\b(length *=)[^;]+/, '$1 collection' + (methodName == 'reduce' ? '.length' : ' ? collection.length : 0'))
.replace(/\b(length *=)[^;=]+/, '$1 collection' + (methodName == 'reduce' ? '.length' : ' ? collection.length : 0'))
.replace(RegExp('^ ' + indent, 'gm'), indent);
return vars + statement.replace(/\bisArray\([^\)]+\)/, "typeof length == 'number'");
@@ -3263,7 +3263,7 @@
modified = modified
.replace(/\bctor *=.+\s+/, '')
.replace(/^ *ctor\.prototype.+\s+.+\n/m, '')
.replace(/(?:,\n)? *props *=[^;]+/, '')
.replace(/(?:,\n)? *props *=[^;=]+/, '')
.replace(/^ *for *\((?=prop)/, '$&var ')
}
if (!/support\.nonEnumArgs *=(?! *(?:false|true))/.test(match)) {

View File

@@ -41,12 +41,17 @@
[/(\w+)\s*=\s*!1\b/, /(\w+)\s*=\s*!0\b/].forEach(function(regexp, index) {
var varName = (regexp.exec(source) || 0)[1];
if (varName) {
source = source.replace(RegExp('([!=]==\\s*)' + varName + '|' + varName + '(\\s*[!=]==)', 'g'), '$1' + !!index + '$2');
source = source.replace(RegExp('([!=]==\\s*)' + varName + '\\b|\\b' + varName + '(\\s*[!=]==)', 'g'), function(match, prelude, postlude, at) {
// avoid replacing local variables with the same name
return RegExp('\\b' + varName + '\\s*(?:,|=[^=])').test(source.slice(at - 10, at))
? match
: (prelude || '') + !!index + (postlude || '');
});
}
});
// replace `!1` and `!0` in expressions with `false` and `true` values
[/([!=]==)\s*!1|(.)!1\s*([!=]==)/g, /([!=]==)\s*!0|(.)!0\s*([!=]==)/g].forEach(function(regexp, index) {
[/([!=]==)\s*!1\b|(.)!1\s*([!=]==)/g, /([!=]==)\s*!0\b|(.)!0\s*([!=]==)/g].forEach(function(regexp, index) {
source = source.replace(regexp, function(match, prelude, chr, postlude) {
return (prelude || chr + (/\w/.test(chr) ? ' ' : '')) + !!index + (postlude || '');
});

View File

@@ -39,11 +39,11 @@ for(t=a.createCallback(t,r),dt(n,function(n,r,u){o[++e]={a:t(n,r,u),b:e,c:n}}),u
var e=-1,u=$t(n);for(t=a.createCallback(t,r,1);++e<n;)u[e]=t(e);return u},a.toArray=function(n){return n&&typeof n.length=="number"?xr.unindexedChars&&pt(n)?n.split(""):tt(n):gt(n)},a.transform=function(n,t,r,e){var u=Ar(n);return t=a.createCallback(t,e,4),null==r&&(u?r=[]:(e=n&&n.constructor,r=M(e&&e.prototype))),(u?Nr:Dr)(n,function(n,e,u){return t(r,n,e,u)}),r},a.union=function(n){return Ar(n)||(arguments[0]=n?_r.call(n):Mt),Gr(nr.apply(Mt,arguments))},a.uniq=Gr,a.unzip=At,a.values=gt,a.where=yt,a.without=function(n){return kt(n,_r.call(arguments,1))
},a.wrap=function(n,t){return function(){var r=[n];return ar.apply(r,arguments),t.apply(this,r)}},a.zip=function(n){return n?At(arguments):[]},a.zipObject=It,a.collect=bt,a.drop=Et,a.each=dt,a.extend=Fr,a.methods=at,a.object=It,a.select=yt,a.tail=Et,a.unique=Gr,zt(a),a.chain=a,a.prototype.chain=function(){return this},a.clone=ut,a.cloneDeep=function(n,t,r){return ut(n,!0,t,r)},a.contains=vt,a.escape=function(n){return null==n?"":Jt(n).replace(C,U)},a.every=ht,a.find=mt,a.findIndex=function(n,t,r){var e=-1,u=n?n.length:0;
for(t=a.createCallback(t,r);++e<u;)if(t(n[e],e,n))return e;return-1},a.findKey=function(n,t,r){var e;return t=a.createCallback(t,r),Dr(n,function(n,r,u){return t(n,r,u)?(e=r,!1):void 0}),e},a.has=function(n,t){return n?ur.call(n,t):!1},a.identity=Pt,a.indexOf=Ot,a.isArguments=et,a.isArray=Ar,a.isBoolean=function(n){return true===n||false===n||lr.call(n)==S},a.isDate=function(n){return n?typeof n=="object"&&lr.call(n)==A:!1},a.isElement=function(n){return n?1===n.nodeType:!1},a.isEmpty=function(n){var t=!0;
if(!n)return t;var r=lr.call(n),e=n.length;return r==E||r==F||(xr.argsClass?r==O:et(n))||r==P&&typeof e=="number"&&ct(n.splice)?!e:(Dr(n,function(){return t=!1}),t)},a.isEqual=it,a.isFinite=function(n){return gr(n)&&!vr(parseFloat(n))},a.isFunction=ct,a.isNaN=function(n){return ft(n)&&n!=+n},a.isNull=function(n){return nultrue===n},a.isNumber=ft,a.isObject=lt,a.isPlainObject=Rr,a.isRegExp=function(n){return!(!n||!q[typeof n])&&lr.call(n)==z},a.isString=pt,a.isUndefined=function(n){return typeof n=="undefined"
if(!n)return t;var r=lr.call(n),e=n.length;return r==E||r==F||(xr.argsClass?r==O:et(n))||r==P&&typeof e=="number"&&ct(n.splice)?!e:(Dr(n,function(){return t=!1}),t)},a.isEqual=it,a.isFinite=function(n){return gr(n)&&!vr(parseFloat(n))},a.isFunction=ct,a.isNaN=function(n){return ft(n)&&n!=+n},a.isNull=function(n){return null===n},a.isNumber=ft,a.isObject=lt,a.isPlainObject=Rr,a.isRegExp=function(n){return!(!n||!q[typeof n])&&lr.call(n)==z},a.isString=pt,a.isUndefined=function(n){return typeof n=="undefined"
},a.lastIndexOf=function(n,t,r){var e=n?n.length:0;for(typeof r=="number"&&(e=(0>r?yr(0,e+r):mr(r,e-1))+1);e--;)if(n[e]===false)return e;return-1},a.mixin=zt,a.noConflict=function(){return e._=Wt,this},a.parseInt=Hr,a.random=function(n,t){null==n&&null==t&&(t=1),n=+n||0,null==t?(t=n,n=0):t=+t||0;var r=br();return n%1||t%1?n+mr(r*(t-n+parseFloat("1e-"+((r+"").length-1))),t):n+tr(r*(t-n+1))},a.reduce=Ct,a.reduceRight=jt,a.result=function(n,t){var e=n?n[t]:r;return ct(e)?n[t]():e},a.runInContext=t,a.size=function(n){var t=n?n.length:0;
return typeof t=="number"?t:Br(n).length},a.some=wt,a.sortedIndex=St,a.template=function(n,t,e){var u=a.templateSettings;n||(n=""),e=$r({},e,u);var o,i=$r({},e.imports,u.imports),u=Br(i),i=gt(i),c=0,l=e.interpolate||_,g="__p+='",l=Ht((e.escape||_).source+"|"+l.source+"|"+(true===y?v:_).source+"|"+(e.evaluate||_).source+"|$","g");n.replace(l,function(t,r,e,u,a,i){return e||(e=u),g+=n.slice(c,i).replace(j,V),r&&(g+="'+__e("+r+")+'"),a&&(o=!0,g+="';"+a+";__p+='"),e&&(g+="'+((__t=("+e+"))==null?'':__t)+'"),c=i+t.length,t
}),g+="';\n",l=e=e.variable,l||(e="obj",g="with("+e+"){"+g+"}"),g=(o?g.replace(f,""):g).replace(p,"$1").replace(s,"$1;"),g="function("+e+"){"+(l?"":e+"||("+e+"={});")+"var __t,__p='',__e=_.escape"+(o?",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}":";")+g+"return __p}";try{var h=Rt(u,"return "+g).apply(r,i)}catch(m){throw m.source=g,m}return t?h(t):(h.source=g,h)},a.unescape=function(n){return null==n?"":Jt(n).replace(g,rt)},a.uniqueId=function(n){var t=++o;return Jt(null==n?"":n)+t
},a.all=ht,a.any=wt,a.detect=mt,a.foldl=Ct,a.foldr=jt,a.include=vt,a.inject=Ct,Dr(a,function(n,t){a.prototype[t]||(a.prototype[t]=function(){var t=[this.__wrapped__];return ar.apply(t,arguments),n.apply(a,t)})}),a.first=xt,a.last=function(n,t,r){if(n){var e=0,u=n.length;if(typeof t!="number"&&null!=t){var o=u;for(t=a.createCallback(t,r);o--&&t(n[o],o,n);)e++}else if(e=t,null==e||r)return n[u-1];return tt(n,yr(0,u-e))}},a.take=xt,a.head=xt,Dr(a,function(n,t){a.prototype[t]||(a.prototype[t]=function(t,r){var e=n(this.__wrapped__,t,r);
return null==t||r&&typeof t!="function"?e:new X(e)})}),a.VERSION="1.2.1",a.prototype.toString=function(){return Jt(this.__wrapped__)},a.prototype.value=Ft,a.prototype.valueOf=Ft,Nr(["join","pop","shift"],function(n){var t=Mt[n];a.prototype[n]=function(){return t.apply(this.__wrapped__,arguments)}}),Nr(["push","reverse","sort","unshift"],function(n){var t=Mt[n];a.prototype[n]=function(){return t.apply(this.__wrapped__,arguments),this}}),Nr(["concat","slice","splice"],function(n){var t=Mt[n];a.prototype[n]=function(){return new X(t.apply(this.__wrapped__,arguments))
}}),xr.spliceObjects||Nr(["pop","shift","splice"],function(n){var t=Mt[n],r="splice"==n;a.prototype[n]=function(){var n=this.__wrapped__,e=t.apply(n,arguments);return 0===n.length&&delete n[0],r?new X(e):e}}),a}var r,e=typeof exports=="object"&&exports,u=typeof module=="object"&&module&&module.exports==e&&module,a=typeof global=="object"&&global;(a.globatrue===a||a.window===a)&&(n=a);var o=0,i={},c=+new Date+"",l=75,f=/\b__p\+='';/g,p=/\b(__p\+=)''\+/g,s=/(__e\(.*?\)|\b__t\))\+'';/g,g=/&(?:amp|lt|gt|quot|#39);/g,v=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,h=/\w*$/,y=/<%=([\s\S]+?)%>/g,m=(m=/\bthis\b/)&&m.test(t)&&m,d=" \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",b=RegExp("^["+d+"]*0+(?=.$)"),_=/($^)/,C=/[&<>"']/g,j=/['\n\r\t\u2028\u2029\\]/g,w="Array Boolean Date Error Function Math Number Object RegExp String _ attachEvent clearTimeout isFinite isNaN parseInt setImmediate setTimeout".split(" "),x="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "),O="[object Arguments]",E="[object Array]",S="[object Boolean]",A="[object Date]",I="[object Error]",B="[object Function]",N="[object Number]",P="[object Object]",z="[object RegExp]",F="[object String]",$={};
}}),xr.spliceObjects||Nr(["pop","shift","splice"],function(n){var t=Mt[n],r="splice"==n;a.prototype[n]=function(){var n=this.__wrapped__,e=t.apply(n,arguments);return 0===n.length&&delete n[0],r?new X(e):e}}),a}var r,e=typeof exports=="object"&&exports,u=typeof module=="object"&&module&&module.exports==e&&module,a=typeof global=="object"&&global;(a.global===a||a.window===a)&&(n=a);var o=0,i={},c=+new Date+"",l=75,f=/\b__p\+='';/g,p=/\b(__p\+=)''\+/g,s=/(__e\(.*?\)|\b__t\))\+'';/g,g=/&(?:amp|lt|gt|quot|#39);/g,v=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,h=/\w*$/,y=/<%=([\s\S]+?)%>/g,m=(m=/\bthis\b/)&&m.test(t)&&m,d=" \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",b=RegExp("^["+d+"]*0+(?=.$)"),_=/($^)/,C=/[&<>"']/g,j=/['\n\r\t\u2028\u2029\\]/g,w="Array Boolean Date Error Function Math Number Object RegExp String _ attachEvent clearTimeout isFinite isNaN parseInt setImmediate setTimeout".split(" "),x="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "),O="[object Arguments]",E="[object Array]",S="[object Boolean]",A="[object Date]",I="[object Error]",B="[object Function]",N="[object Number]",P="[object Object]",z="[object RegExp]",F="[object String]",$={};
$[B]=!1,$[O]=$[E]=$[S]=$[A]=$[N]=$[P]=$[z]=$[F]=!0;var q={"boolean":!1,"function":!0,object:!0,number:!1,string:!1,undefined:!1},D={"\\":"\\","'":"'","\n":"n","\r":"r","\t":"t","\u2028":"u2028","\u2029":"u2029"},R=t();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(n._=R, define(function(){return R})):e&&!e.nodeType?u?(u.exports=R)._=R:e._=R:n._=R}(this);

2
dist/lodash.min.js vendored
View File

@@ -9,7 +9,7 @@ if(!u)return a;for(var o=arguments,i=0,f=typeof e=="number"?2:o.length;++i<f;)if
return a}function V(n){var t,e=[];if(!n||!q[typeof n])return e;for(t in n)ue.call(n,t)&&e.push(t);return e}function G(n){return n&&typeof n=="object"&&!Ce(n)&&ue.call(n,"__wrapped__")?n:new nt(n)}function H(n,t,e){e=(e||0)-1;for(var r=n.length;++e<r;)if(n[e]===t)return e;return-1}function J(n){return n.charCodeAt(0)}function L(n,t){var e=n.b,r=t.b;if(n=n.a,t=t.a,n!==t){if(n>t||typeof n=="undefined")return 1;if(n<t||typeof t=="undefined")return-1}return e<r?-1:1}function Q(n,t,e,r){function u(){var r=arguments,c=o?this:t;
return a||(n=t[i]),e.length&&(r=r.length?(r=de.call(r),f?r.concat(e):e.concat(r)):e),this instanceof u?(c=lt(n.prototype)?le(n.prototype):{},r=n.apply(c,r),lt(r)?r:c):n.apply(c,r)}var a=ct(n),o=!e,i=t;if(o){var f=r;e=t}else if(!a){if(!r)throw new Jt;t=n}return u}function W(n){function t(t){return-1<l(n,t)}function e(t){n.push(t)}function o(n){var t=typeof n;if("boolean"==t||n==u)return h[n];var e=h[t]||(t="object",y),r="number"==t?n:p+n;return"object"==t?e[r]?-1<H(e[r],n):a:!!e[r]}function i(n){var t=typeof n;
if("boolean"==t||n==u)h[n]=r;else{var e=h[t]||(t="object",y),a="number"==t?n:p+n;"object"==t?f=(e[a]||(e[a]=[])).push(n)==v:e[a]=r}}n||(n=[]);var f,c=-1,l=Z(),v=n.length,g=v>=s&&G.indexOf!=l,y={},h={"false":a,"function":a,"null":a,number:{},object:y,string:{},"true":a,undefined:a};if(g){for(;++c<v;)i(n[c]);f&&(g=h=y=u)}return g?{contains:o,push:i}:{contains:t,push:e}}function X(n){return Oe[n]}function Y(n){return"\\"+D[n]}function Z(){var n=(n=G.indexOf)==St?H:n;return n}function nt(n){this.__wrapped__=n
}function tt(n){return function(t,r,o,i){return typeof r!="boolean"&&r!=u&&(i=o,o=i&&i[r]===t?e:r,r=a),o!=u&&(o=G.createCallback(o,i)),n(t,r,o,i)}}function et(n){var t,r;return n&&fe.call(n)==B&&(t=n.constructor,!ct(t)||t instanceof t)?(K(n,function(n,t){r=t}),true===e||ue.call(n,r)):a}function rt(n,t,e){t||(t=0),typeof e=="undefined"&&(e=n?n.length:0);var r=-1;e=e-t||0;for(var u=Dt(0>e?0:e);++r<e;)u[r]=n[t+r];return u}function ut(n){return Ee[n]}function at(n,t,r,o,i,f){var c=n;if(typeof t!="boolean"&&t!=u&&(o=r,r=t,t=a),typeof r=="function"){if(r=typeof o=="undefined"?r:G.createCallback(r,o,1),c=r(c),typeof c!="undefined")return c;
}function tt(n){return function(t,r,o,i){return typeof r!="boolean"&&r!=u&&(i=o,o=i&&i[r]===t?e:r,r=a),o!=u&&(o=G.createCallback(o,i)),n(t,r,o,i)}}function et(n){var t,r;return n&&fe.call(n)==B&&(t=n.constructor,!ct(t)||t instanceof t)?(K(n,function(n,t){r=t}),r===e||ue.call(n,r)):a}function rt(n,t,e){t||(t=0),typeof e=="undefined"&&(e=n?n.length:0);var r=-1;e=e-t||0;for(var u=Dt(0>e?0:e);++r<e;)u[r]=n[t+r];return u}function ut(n){return Ee[n]}function at(n,t,r,o,i,f){var c=n;if(typeof t!="boolean"&&t!=u&&(o=r,r=t,t=a),typeof r=="function"){if(r=typeof o=="undefined"?r:G.createCallback(r,o,1),c=r(c),typeof c!="undefined")return c;
c=n}if(o=lt(c)){var l=fe.call(c);if(!T[l])return c;var p=Ce(c)}if(!o||!t)return o?p?rt(c):U({},c):c;switch(o=je[l],l){case I:case N:return new o(+c);case $:case R:return new o(c);case F:return o(c.source,m.exec(c))}for(i||(i=[]),f||(f=[]),l=i.length;l--;)if(i[l]==n)return f[l];return c=p?o(c.length):{},p&&(ue.call(n,"index")&&(c.index=n.index),ue.call(n,"input")&&(c.input=n.input)),i.push(n),f.push(c),(p?dt:P)(n,function(n,u){c[u]=at(n,t,r,e,i,f)}),c}function ot(n){var t=[];return K(n,function(n,e){ct(n)&&t.push(e)
}),t.sort()}function it(n){for(var t=-1,e=xe(n),r=e.length,u={};++t<r;){var a=e[t];u[n[a]]=a}return u}function ft(n,t,e,o,i,f){var c=e===l;if(typeof e=="function"&&!c){e=G.createCallback(e,o,2);var p=e(n,t);if(typeof p!="undefined")return!!p}if(n===t)return 0!==n||1/n==1/t;var s=typeof n,v=typeof t;if(n===n&&(!n||"function"!=s&&"object"!=s)&&(!t||"function"!=v&&"object"!=v))return a;if(n==u||t==u)return n===t;if(v=fe.call(n),s=fe.call(t),v==E&&(v=B),s==E&&(s=B),v!=s)return a;switch(v){case I:case N:return+n==+t;
case $:return n!=+n?t!=+t:0==n?1/n==1/t:n==+t;case F:case R:return n==Ht(t)}if(s=v==S,!s){if(ue.call(n,"__wrapped__")||ue.call(t,"__wrapped__"))return ft(n.__wrapped__||n,t.__wrapped__||t,e,o,i,f);if(v!=B)return a;var v=n.constructor,g=t.constructor;if(v!=g&&(!ct(v)||!(v instanceof v&&ct(g)&&g instanceof g)))return a}for(i||(i=[]),f||(f=[]),v=i.length;v--;)if(i[v]==n)return f[v]==t;var y=0,p=r;if(i.push(n),f.push(t),s){if(v=n.length,y=t.length,p=y==n.length,!p&&!c)return p;for(;y--;)if(s=v,g=t[y],c)for(;s--&&!(p=ft(n[s],g,e,o,i,f)););else if(!(p=ft(n[y],g,e,o,i,f)))break;