Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ufuzz failure #3475

Closed
alexlamsl opened this issue Oct 15, 2019 · 0 comments · Fixed by #3476
Closed

ufuzz failure #3475

alexlamsl opened this issue Oct 15, 2019 · 0 comments · Fixed by #3476
Labels

Comments

@alexlamsl
Copy link
Collaborator

// original code
//

var _calls_ = 10, a = 100, b = 10, c = 0;
{var brake1 = 5; L14910: do {if (([(b--), ((c = c + 1) + (a && a[(a++ + (void ((((({})&&"")^("b">null))^((true>"number")<=(3!==([,0].length === 2)))))))])), , ((c = c + 1) + (NaN)), ([((c = c + 1) + ( /[abc4]/.test(((( /[abc4]/.test((((+function (){

L14911: {;}
{var brake4 = 5; do {(c = 1 + c, (a && (a[((c = c + 1) + (~a))]+=(((a=(false<="number"))^([,0][1]===0))^(c = c + 1, (~((-5))))))));} while (((c = 1 + c, ((("bar">>-0)>>(5!=4)),(void ((23..toString()<0)))))) && --brake4 > 0);}
for (var brake6 = 5; ((c = 1 + c, (((Infinity>>>22)/(undefined===[,0][1])) + (("b" + "function")===("c"<=""))))) && brake6 > 0; --brake6)(c = 1 + c, ((c = c + 1, (undefined==null))&&((Infinity!==([,0].length === 2))<<(a-=( /[a2][^e]+$/ !=="c")))));

}())) || b || 5).toString()) )) || b || 5).toString()) )), ((c = c + 1) + (typeof a == "function" && --_calls_ >= 0 && a((void function bar_1(){

L14912: for (var brake8 = 5; ((c = 1 + c, (((bar_1 && (bar_1[(c = 1 + c, (((2<<5)/("function">>(-4))),(((-5)>>>({}))*(true>>>"object"))))]+=("" + 2)))|((-2)&&3)) + (bar_1 && (bar_1[((--b) + ((bar_1 && (bar_1.foo=((((-5)!=="b")&&(bar_1 && (bar_1[(c = 1 + c, (((undefined!=="bar")>((-3)^(-1)))%(("number"<2)===(null&&undefined))))]>>=("number"/(-1))))),((null>NaN)/([]^(-5))))))))]=((5,({}))&(bar_1 && (bar_1.undefined%=(-0*1))))))))) && brake8 > 0; --brake8)(c = 1 + c, (bar_1 && (bar_1.a+=(((void (3)),("c"<true)) - (("a"=="")^((-4)!==NaN))))));
L14913: {;}

}())))), (a++ + ([].c)), ].NaN), ]))switch (((c = c + 1) + (a+=((c = c + 1) + ((typeof undefined != "function")))))) { 
default:
for (var brake12 = 5; (((--b) + (typeof a == "function" && --_calls_ >= 0 && a()))) && brake12 > 0; --brake12){var brake13 = 5; while (((function (){


}())) && --brake13 > 0)(a);}
L14914: {{var brake16 = 5; L14915: while ((((c = c + 1) + (({
undefined:((a++ + (b++))),
foo:((1 === 1 ? a : b)),
"	":(((c = c + 1) + (a))),
null:(((a && (a.NaN+=(((22||this)%([,0][1]>>(-2)))<<(~((4&0x26.toString())))))))),
3:((b += a)),
})))) && --brake16 > 0)L14916: for (var brake17 = 5; (((c = c + 1) + (((c = c + 1) + ( /[a2][^e]+$/ ))))) && brake17 > 0; --brake17){var brake18 = 5; while ((((c = c + 1) + (delete ((((c = c + 1, 3)/(24 .toString()<<23..toString()))%((({})>>>"a")||(0>=25. ))))))) && --brake18 > 0)if (((c = c + 1) + (a)))var Infinity = (c = 1 + c, ((((-4)||NaN)<=(+(([,0].length === 2))))<=((bar_1 && (bar_1.undefined=(this===([,0].length === 2)))) + ("c"<<"bar")))), bar_1 = (c = 1 + c, (((2<(-1))>>([,0][1]%"undefined"))<=(("b"|(-3))||(bar_1&=(1&"foo")))));}}
{var expr21 = ((c = c + 1) + (({
})[((--b) + ((typeof b_2 != "object")))])); L14917:  for (var key21 in expr21) {c = 1 + c; var b_1 = expr21[key21]; (1 === 1 ? a : b);}}
c = c + 1;
}


case ((--b) + ( /[abc4]/.test((((1 === 1 ? a : b)) || b || 5).toString()) )):

 break;

case ((typeof bar_1_2 !== "function")):
{var expr24 = (a++ + (b_1 && b_1[((typeof ( (((a++ + (new function (){

this[((--b) + (typeof f1 == "function" && --_calls_ >= 0 && f1((c = 1 + c, (((24 .toString()>1)===((-2)>>false))!=(("bar">>>0) + ((-4)<<"c")))), (c = 1 + c, (((true!=this),("b"==23..toString()))<=(!((-0<=""))))))))]=(((3==="")<<( /[a2][^e]+$/ ==="function"))^(bar_1 && (bar_1[((typeof (c = 1 + c, (bar_1 && (bar_1.null=(((0||"c")<(bar_1 && (bar_1[(c = 1 + c, (((b_1 && (b_1[(c = 1 + c, (((undefined!=-0)!=(bar_1 && (bar_1[(c = 1 + c, (bar_1 && (bar_1.b+=((bar_1 && (bar_1.in=((NaN!==undefined)>=("bar"<=false))))||((1 + undefined)>>(bar_1=(Infinity||-0)))))))]+=(24 .toString()%({})))))<((c = c + 1, "number")==("bar"||"a"))))]-=((-1)<(-1)))) - ("function"*1))&((true^22)>((-3)/2))))]<<=(0!==(-1)))))>=((3/"function")<<("object">>"function"))))))))]+=((22&&this)%(1||null)))));
this[( ((((c = 1 + c, ((("b"<<(-3))%(24 .toString()|([,0].length === 2)))<<(([]<=([,0].length === 2))==("b"==="number"))))?(c = 1 + c, (((bar_1 && (bar_1[(c = 1 + c, (c = c + 1, ((this>>>24 .toString())<("undefined"<="c"))))]=(4<=24 .toString())))*(NaN>=true))%((b_1 && (b_1.c=(([,0].length === 2)=="c")))===(22>>(-2))))):(c = 1 + c, (((([,0].length === 2) - NaN) + ((-3)>>>[]))>>((-("object"))<("number"<22)))))) || a || 3).toString() )]=((("bar" + -0)<=((-2)!="c")) - (((-5)*"bar")%(0*0x26.toString())));
this[((--b) + ((null)))]+=(((([,0].length === 2)>(-5)),([]>25. ))>>(("number"|"undefined")&( /[a2][^e]+$/ &null)));
{;}

}))) || 8).toString()[(a++ + ((b_1<<=(((24 .toString()<[])%(NaN|Infinity))>=(("foo"!=(-5))===("object"*true))))))] )))])); L14918:  for (var key24 in expr24) {c = 1 + c; var foo = expr24[key24]; (typeof f0 == "function" && --_calls_ >= 0 && f0(( (((typeof b_1 == "function" && --_calls_ >= 0 && b_1((c = 1 + c, (((4&undefined)===(({})!="function"))!=((22>=1) + ("object"*5)))), null))) || a || 3).toString() ), "foo", ((--b) + (typeof f0 == "function" && --_calls_ >= 0 && f0((-1), 22)))));}}
if ((((c = c + 1, ("foo"/NaN))===(c = c + 1, ("c"<"number")))))(a++ + ( (((typeof b_1 == "function" && --_calls_ >= 0 && b_1())) || 9).toString()[(1 === 1 ? a : b)] )); else switch ((b/* ignore */--)) { 
case (0 === 1 ? a : b):
{var brake30 = 5; L14919: do {(a--);} while ((([][((--b) + (b = a))])) && --brake30 > 0);}
var b_1_2 = ((c = c + 1) + (+(((([]*([,0].length === 2))^(24 .toString()*"bar"))^((false/(-1))^("bar">NaN))))));

 break;

case ((--b) + (b + 1-0.1-0.1-0.1)):

 break;

default:
var foo = (a++ + (({
"	":((!function parseInt(){

;
}())),
0:(((--b) + (typeof bar_1 == "function" && --_calls_ >= 0 && bar_1((-3))))),
})));


case ((--b) + (({
in:((a++ + (bar_1))),
undefined:(((c = c + 1) + (b = a))),
var:(((--b) + (b_1 && b_1.NaN))),
}))):

 break;
}

/* fall-through */

case ((--b) + ((b_1_2 && (b_1_2[(a++ + (b++))]>>>=(((1/(-4))<=(c = c + 1, 22))&&(("undefined">>>3)<=(({})|([,0].length === 2)))))))):
L14920: {}

 break;
}} while ((((((true<=[,0][1])^(24 .toString()%(-2)))>=((1>>[,0][1])<<("foo"!=undefined))))) && --brake1 > 0);}
try {{var arguments_2 = function a_2(){

{var brake37 = 5; while ((((((c = c + 1, false)!==(undefined&Infinity))^(("number",NaN)>(true/true))))) && --brake37 > 0);}
{var expr39 = ((c = c + 1) + ((typeof (a--)))); L14921:  for (var key39 in expr39) {c = 1 + c; var Infinity_2 = expr39[key39]; switch (("b")) { 
default:


case ([]):
c = c + 1;

 break;

case (+(((b_1 && (b_1[(a++ + (({
undefined:((c = 1 + c, (b_1_2 && (b_1_2.Infinity+=(((null%"undefined")<(false<<NaN))===((false==="")*(2,[,0][1]))))))),
undefined:((c = 1 + c, (((c = c + 1, (-1))!=(""<<"number"))>((undefined&&[,0][1])>>("a"===22))))),
})))]+=(("undefined"%NaN)*(""%(-3)))))===(("number" + "undefined")&(null|0x26.toString()))))):
try {{var brake43 = 5; do {{(c = 1 + c, (((false>>"undefined")%("number">>> /[a2][^e]+$/ ))!=((1|"foo")>( /[a2][^e]+$/ ,0x26.toString()))));
(c = 1 + c, ((("function",(-2))!=(b_1%=([] - 0x26.toString())))==((undefined===23..toString())||(c = c + 1, "function"))));
(c = 1 + c, ((("function"<<"c")^("">>>"undefined")),(("foo"<<(-5))<(c = c + 1, -0))));
}} while ((((--b) + (b_1))) && --brake43 > 0);} } catch (bar_1) { switch ((void function Math(){

;
}())) { 
case (typeof f1 == "function" && --_calls_ >= 0 && f1((c = 1 + c, (((undefined&NaN)&("a"<=({})))<((+(Infinity))===("b">>>23..toString())))))):

 break;

default:
(c = 1 + c, (((22||23..toString())!==(NaN/Infinity))%((NaN*Infinity)>>>([]&"foo"))));
(c = 1 + c, ((delete ((1 - [])))>=((4^"a")>(0x26.toString()!=(-3)))));


case ((--b) + (+b)):

/* fall-through */

case (typeof f0 == "function" && --_calls_ >= 0 && f0()):

 break;
}
((-1));
 } finally { {var brake52 = 5; do {L14922: {;}} while ((([(c = 1 + c, (((3 - 4),("object"<=3))!=((25. ^3)==(bar_1[(c = 1 + c, ((("bar"<=this)>(bar_1 && (bar_1.b=((-2)>>>(-4)))))/(b_1 && (b_1.in+=((Infinity_2 && (Infinity_2[(c = 1 + c, ((void ((this>>"object")))%(bar_1 && (bar_1.undefined=(( /[a2][^e]+$/ <<"foo")>=(false - 4))))))]%=("undefined"|-0)))==(void (25. )))))))]+=(true/25. ))))), (c = 1 + c, ((([]!="foo") + ("number"<<"a"))<<((5^this)%(c = c + 1, [])))), (c = 1 + c, (bar_1 && (bar_1[((c = c + 1) + (a++))]=((("a"==true)>(2 - (-4)))^((null*25. ) + (25. >=-0)))))), (c = 1 + c, ((("foo">>>-0)==(22,"c"))&&(Infinity_2[((--b) + (!b))]=((delete (0x26.toString()))*(22 - this))))), (c = 1 + c, (((undefined>=23..toString())>=(this&1))&((null/-0)<<( /[a2][^e]+$/ *undefined)))), ][(c = 1 + c, ((c = c + 1, (NaN<="undefined"))||((+([,0][1]))|((-4)|"c"))))])) && --brake52 > 0);}
for (var brake54 = 5; ((a++ + (bar_1))) && brake54 > 0; --brake54)c = c + 1;
 }

 break;

case ((((c = c + 1, 0)<<("a"<=null))&((undefined - "object")%(4>>[,0][1])))):
{var brake56 = 5; while ((( ((((-2))) || a || 3).toString() )) && --brake56 > 0)c = c + 1;}

 break;
}}}

}
(((--b) + (b <<= a)), ((c = c + 1) + ((typeof ((--b) + (!((arguments_2.var<<=((("b"|0x26.toString())===(Infinity||0))&&((Infinity/(-3))<<(undefined,"c")))))))))), (-4));} } catch (a_1) { ([((c = c + 1) + (b + 1-0.1-0.1-0.1)), ((c = c + 1) + ((((0*NaN)!=("b">=25. ))|((undefined>>>22)!=(+(23..toString())))))), (typeof f0 == "function" && --_calls_ >= 0 && f0(((typeof parseInt_1 != "string")))), ((((([,0].length === 2)==4)^(true/"foo"))<=(a_1 && (a_1[(0)]+=(((-5)==[])||(0^(-4))))))), ].a);
if (((c = c + 1) + ((typeof c != "function")))){var b_2 = function f0(b){

try {var bar; } catch (foo) { {return (c = 1 + c, ((((-5)&"undefined")|(0|23..toString()))>>((""<undefined)|(({})||4))));
var a_1_1 = (c = 1 + c, ((((-3)%0)<(""<([,0].length === 2)))*((c = c + 1, "c")*(0x26.toString()>="undefined")))), a_2 = (c = 1 + c, ((((-3)!==this)<<(arguments_2 && (arguments_2[(c = 1 + c, ((( /[a2][^e]+$/ !="function") - ("a"===4)) - ((~((-3)))!==(null&null))))]=(24 .toString()&1))))===(((-2)|"object")&&(Infinity!= /[a2][^e]+$/ ))));
for (var brake66 = 5; ((c = 1 + c, ((bar_1 && (bar_1[(a++ + ((typeof b_1 === "special")))]+=((24 .toString()%[])&("foo"!==undefined))))<=(arguments_2=((b_1_2 && (b_1_2.null+=(1|(-4))))<<(0x26.toString()%(-5))))))) && brake66 > 0; --brake66)(c = 1 + c, (((""<=1)|((-5)>>0))||((!(-0))>>("b">=5))));
}
{var brake68 = 5; while (((b += a)) && --brake68 > 0)if ((({
'':((c = 1 + c, ((("bar" + 0x26.toString())/(3,this))*(("bar"<<"object")||(false>>"bar"))))),
}).undefined));}
 } finally { ;
switch ((a++ + ((((undefined + "a")>>(3!=Infinity))|(("number">>"function"),(22!==(-5))))))) { 
case ((--b) + (a_2)):
switch ((c = 1 + c, ((((-3) - "bar")&(5!==(-3)))/(("function"===1)^("number"===false))))) { 
default:
;

case (c = 1 + c, ((((-2) - (-1))/(4%"c"))>=(a_1_1 && (a_1_1.b=(((-1)*22)>("bar">23..toString())))))):
;
 break;

case (c = 1 + c, (((true|[])>>>(4!=23..toString()))|(("foo">=true)^(a_2 && (a_2.in=(25. ||(-3))))))):
;
 break;

case (c = 1 + c, ((arguments_2 && (arguments_2[(({
in:((c = 1 + c, ((b_1_2 && (b_1_2.in=(("c"==1)|([,0][1]/2))))/(-((arguments_2=((-5)!=22))))))),
}).in)]<<=((undefined<"b")>("b">=(-4)))))>>((b_1_2 && (b_1_2[(c = 1 + c, (((5<<(-5))>>(void ((-2))))!=(b_1_2 && (b_1_2[( /[abc4]/.test((((c = 1 + c, ((!(("number"> /[a2][^e]+$/ )))^((1^"foo")!==(b_1 && (b_1[(c = 1 + c, (((b_1 && (b_1.undefined+=(1,(-1)))) - (25. /false))>(b_1_2=((b_1=(1>>3))%([,0][1]!==24 .toString())))))]-=(22 + "function"))))))) || b || 5).toString()) )]=(("undefined"&25. )!=("number"&&false))))))]=(2<=2)))<<(~([]))))):
;
 break;
}
var a_1_2;

 break;

case (a++ + (0)):
L14923: for (var brake75 = 5; ((c = 1 + c, (arguments_2 && (arguments_2[(a++ + (b_1_2=(typeof f1 == "function" && --_calls_ >= 0 && f1())))]=(((c = c + 1, 3)<<("object"!=="function")) + ((1!="bar")!==("c"|Infinity))))))) && brake75 > 0; --brake75)(c = 1 + c, ((("foo"*5)%((-3)^({})))>=(arguments_2-=((""^23..toString())==(3=="function")))));
for (var brake77 = 5; ((c = 1 + c, (((5!==(-1)) - (true<=22))%(("undefined",({}))^(~(null)))))) && brake77 > 0; --brake77)(c = 1 + c, ((a_2>>=(([,0][1]<0x26.toString())^((-2)|undefined)))>>((0x26.toString()||[,0][1])%(0x26.toString() - 2))));

 break;

default:
c = c + 1;
var a_1 = (c = 1 + c, ((c = c + 1, ( /[a2][^e]+$/  + null))>((arguments_2 && (arguments_2.c+=( /[a2][^e]+$/ <"foo")))^(~((-1))))));


case (((((-4)%"")&&(23..toString()||2))==(("foo">>>22)===(4<<[])))):
/*3*/return;

 break;
}
 }
switch ((a++ + (!function a_2(){

{var brake83 = 5; while ((((--b) + (b = a))) && --brake83 > 0)for (var brake84 = 5; ((c = 1 + c, (((-0&4)>>>("bar"||null)),((2<=false)<<(22|4))))) && brake84 > 0; --brake84)(c = 1 + c, ((([]&(-4))/("number"!==Infinity))||(("bar"==="number")^(({})===1))));}
c = c + 1;
{(c = 1 + c, (a_1_2=((((-5)&&this)%("object"%23..toString()))!==((a_2^=([,0][1]>>>"object"))^(([,0].length === 2)>>>"function")))));
(c = 1 + c, (b_1*=(((2*[,0][1]) - ([]!=0x26.toString()))%(c = c + 1, (delete (Infinity))))));
(c = 1 + c, ((c = c + 1, ((-1)<=3))<=((false||4)<=([]|"b"))));
(c = 1 + c, ((delete (((-2) - null))) + (("bar" + "c")<<(0*25. ))));
}

}()))) { 
case (a++ + (b = a)):

 break;

case ((c = c + 1) + ( (((typeof a_1 == "function" && --_calls_ >= 0 && a_1())) || 2).toString()[(~a)] )):
{ return ((--b) + (a_1_2 && a_1_2.length))}
switch ((a++ + (typeof f2 == "function" && --_calls_ >= 0 && f2()))) { 
case ( /[a2][^e]+$/ ):
try {(c = 1 + c, ((( /[a2][^e]+$/ ===(-2))<<("foo"!==(-3)))<((this%24 .toString())|(Infinity!="bar")))); } catch (b_1) { ; } finally { ; }
try {(c = 1 + c, (((-("a"))|((-3)>>>"foo"))<=((({}) + "foo")!=(22&3)))); } finally { ; }

 break;

case ((--b) + (({
3:((c = 1 + c, (delete ((((-3)==NaN)||(23..toString()|null)))))),
get length(){

;
(c = 1 + c, (((1&&false)<(5%"b"))/((22^0x26.toString()) + ([] + "bar"))));
},
}))):

 break;

case (b = a):

 break;

case (({
Infinity:((c = 1 + c, (((a_1_2 && (a_1_2.b=(([,0].length === 2)==(-4))))!=(3/5))|(c = c + 1, (5>>>[,0][1]))))),
0:((c = 1 + c, (((2/NaN)>>>("undefined">2))&((false&&(-5))===((-3)==""))))),
})[((c = c + 1) + (b = a))]):

 break;
}

 break;

case ( /[abc4]/.test(((((--b) + ((((({})/25. )==(0x26.toString()*(-5)))==(!((0^5))))))) || b || 5).toString()) ):

 break;

default:

}

}
(undefined);} else {var b_1 = function f1(a_2){

{var expr100 = (typeof b_1 == "function" && --_calls_ >= 0 && b_1(this)); L14924:  for (var key100 in expr100) {c = 1 + c; var b_1 = expr100[key100]; switch ((({
"-2":(((c = c + 1) + (b = a))),
})[((c = c + 1) + (typeof f2 == "function" && --_calls_ >= 0 && f2((c = 1 + c, ((b_1 && (b_1[((typeof b_1_2))]+=((1 + 25. )>("object"*"number"))))>>>((b_1 && (b_1[(c = 1 + c, (bar_1 && (bar_1.var<<=(((25. >>false)&((-5)<="a"))&((c = c + 1, "foo")||(true,[,0][1]))))))]+=("number"===24 .toString())))^(c = c + 1, 4)))), (c = 1 + c, (bar_1>>=(((false==25. )*("function"^(-4)))&&(a_2 && (a_2.NaN>>=((22& /[a2][^e]+$/ )&&(c = c + 1, "number"))))))))))])) { 
case (a++ + (b_1 && b_1.NaN)):
try {{;} } catch (b_1) { (c = 1 + c, ((("object"&true)==(arguments_2 && (arguments_2[(c = 1 + c, (((25. !="foo")^(({})>=0))>=(((-4)!== /[a2][^e]+$/ )>(this!="b"))))]=((-3)&&true))))<=(b_1=(( /[a2][^e]+$/ !==0x26.toString())&&("">>>1)))));
(c = 1 + c, ((b_1+=((delete (23..toString()))>>(null>([,0].length === 2))))%((b_1 && (b_1.a>>=(false>>>undefined)))!=("undefined",[]))));
 }

 break;

case (void ((delete (((null||24 .toString())==([]&&22)))))):

 break;

case (a++ + (b_1)):

 break;

case (0 === 1 ? a : b):

 break;
}}}
var b_1_2 = (-b);

}
(this, "foo", 5);}
 }

console.log(null, a, b, c, Infinity, NaN, undefined);
// uglified code
// (beautified)
var u = 10, c = 100, d = 10, N = 0, n = 5;

do {
    switch (d--, N += 1, c && c[c++ + void 0], N += 1, NaN, N += 1, /[abc4]/.test((/[abc4]/.test((+function() {
        for (var n = 5; N = 1 + N, c && (c[(N += 1) + ~c] += !0 ^ (c = !1) ^ (N += 1, 4)), 
        N = 1 + N, void 23..toString() && 0 < --n; ) {}
        for (var t = 5; N = 1 + N, (g >>> 22) / (0 === undefined) + !1 && 0 < t; --t) {
            N = 1 + N, N += 1, null == undefined && (c -= !0);
        }
    }() || d || 5).toString()) || d || 5).toString()), N += 1, "function" == typeof c && 0 <= --u && c(void function s() {
        for (var n = 5; N = 1 + N, (3 | (s && (s[(N = 1 + N, 1 * (-5 >>> {}))] += "2"))) + (s && (s[--d + (s && (s.foo = (s && (s[(N = 1 + N, 
        (2 < ("bar" !== undefined)) % !1)] >>= NaN), (NaN < null) / (-5 ^ []))))] = {} & (s && (s.undefined %= -0)))) && 0 < n; --n) {
            N = 1 + N, s && (s.a += !1 - (!1 ^ -4 !== NaN));
        }
    }()), c++, (N += 1) + (c += (N += 1) + ("function" != typeof undefined))) {
      default:
        for (var t = 5; --d + ("function" == typeof c && 0 <= --u && c()) && 0 < t; --t) {
            void 0;
        }
        for (var e = 5; (N += 1) + {
            undefined: c++ + d++,
            foo: c,
            "\t": (N += 1) + c,
            null: c && (c.NaN += NaN << ~(4 & 38..toString())),
            3: d += c
        } && 0 < --e; ) {
            for (var i = 5; (N += 1) + ((N += 1) + /[a2][^e]+$/) && 0 < i; --i) {
                for (var o = 5; (N += 1) + (N += 1, 24..toString(), 23..toString(), !0) && 0 < --o; ) {
                    if ((N += 1) + c) {
                        var g = (N = 1 + N, -4 <= +(2 === [ , 0 ].length) <= (s && (s.undefined = this === (2 === [ , 0 ].length))) + 0), s = (N = 1 + N, 
                        !1);
                    }
                }
            }
        }
        var f = (N += 1) + {}[--d + ("object" != typeof y)];
        for (var r in f) {
            N = 1 + N;
            var l = f[r];
        }
        N += 1;

      case --d + /[abc4]/.test((c || d || 5).toString()):
        break;

      case "function" != typeof bar_1_2:
        var a = c++ + (l && l[typeof (c++ + new function() {
            this[--d + ("function" == typeof f1 && 0 <= --u && f1((N = 1 + N, 1 < 24..toString() === -2 != -4), (N = 1 + N, 
            ("b" == 23..toString()) <= !1)))] = 0 ^ (s && (s[(N = 1 + N, typeof (s && (s["null"] = 0 <= ("c" < (s && (s[(N = 1 + N, 
            (l && (l[(N = 1 + N, (-0 != undefined != (s && (s[(N = 1 + N, s && (s.b += s && (s["in"] = !1 <= (NaN !== undefined)) || 1 + undefined >> (s = g || -0)))] += 24..toString() % {}))) < ("bar" == (N += 1, 
            "number")))] -= !1)) - NaN & !0)] <<= !0))))))] += this % 1)), this[(N = 1 + N, 
            (0 % (24..toString() | 2 === [ , 0 ].length) << ([] <= (2 === [ , 0 ].length) == 0) ? (N = 1 + N, 
            (s && (s[(N = 1 + N, N += 1, this >>> 24..toString() < !1)] = 4 <= 24..toString())) * (!0 <= NaN) % (0 === (l && (l.c = 2 === [ , 0 ].length == "c")))) : (N = 1 + N, 
            (2 === [ , 0 ].length) - NaN + (-3 >>> []) >> !1)) || c || 3).toString()] = !1 - NaN % (0 * 38..toString()), 
            this[--d + null] += (25 < []) >> 0;
        }() || 8).toString()[c++ + (l <<= !1 <= (24..toString() < []) % (NaN | g))]]);
        for (var S in a) {
            N = 1 + N;
            "function" == typeof f0 && 0 <= --u && f0(("function" == typeof l && 0 <= --u && l((N = 1 + N, 
            (4 & undefined) === ("function" != {}) != NaN), null) || c || 3).toString(), "foo", --d + ("function" == typeof f0 && 0 <= --u && f0(-1, 22)));
        }
        if (N += 1, "foo" / NaN === (N += 1, !0)) {
            c++, ("function" == typeof l && 0 <= --u && l() || 9).toString()[c];
        } else {
            switch (d--) {
              case d:
                for (var v = 5; [][--d + (d = --c)] && 0 < --v; ) {}
                var b = (N += 1) + +([] * (2 === [ , 0 ].length) ^ "bar" * 24..toString() ^ -0 ^ NaN < "bar");
                break;

              case --d + (d + 1 - .1 - .1 - .1):
                break;

              default:
                c++, --d, "function" == typeof s && 0 <= --u && s(-3);

              case --d + {
                    in: c++ + s,
                    undefined: (N += 1) + (d = c),
                    var: --d + (l && l.NaN)
                }:
            }
        }

      case --d + (b && (b[c++ + d++] >>>= -.25 <= (N += 1, 22) && 0 <= ({} | 2 === [ , 0 ].length))):
    }
} while ((!1 ^ 24..toString() % -2) >= 1 << ("foo" != undefined) && 0 < --n);

try {
    var h = function() {
        for (var n = 5; N += 1, !1 !== (undefined & g) ^ 1 < NaN && 0 < --n; ) {}
        var t = (N += 1) + typeof c--;
        for (var e in t) {
            N = 1 + N;
            var i = t[e];
            switch ("b") {
              default:
              case []:
                N += 1;
                break;

              case +((l && (l[c++ + {
                    undefined: (N = 1 + N, b && (b.Infinity += NaN < !1 << NaN === 0)),
                    undefined: (N = 1 + N, (0 != (N += 1, -1)) > (undefined && 0) >> !1)
                }] += "undefined" % NaN * 0)) === ("numberundefined" & (null | 38..toString()))):
                try {
                    for (var o = 5; N = 1 + N, 38..toString(), N = 1 + N, l %= [] - 38..toString(), 
                    undefined === 23..toString() || (N += 1), N = 1 + N, N += 1, --d + l && 0 < --o; ) {}
                } catch (s) {
                    switch (void 0) {
                      case "function" == typeof f1 && 0 <= --u && f1((N = 1 + N, (undefined & NaN & "a" <= {}) < (+g == "b" >>> 23..toString()))):
                        break;

                      default:
                        N = 1 + N, NaN, NaN, N = 1 + N, 38..toString();

                      case --d + +d:
                      case "function" == typeof f0 && 0 <= --u && f0():
                    }
                } finally {
                    var f = 5;
                    do {} while ([ (N = 1 + N, !1 != (26 == (s[(N = 1 + N, ("bar" <= this > (s && (s.b = 15))) / (l && (l["in"] += null == (i && (i[(N = 1 + N, 
                    void 0 % (s && (s.undefined = !0)))] %= 0)))))] += .04))), (N = 1 + N, ("foo" != []) + 0 << (5 ^ this) % (N += 1, 
                    [])), (N = 1 + N, s && (s[(N += 1) + c++] = 1)), (N = 1 + N, !1), (N = 1 + N, undefined >= 23..toString() >= (1 & this) & NaN << /[a2][^e]+$/ * undefined) ][(N = 1 + N, 
                    N += 1, NaN <= "undefined" || -4)] && 0 < --f);
                    for (var r = 5; c++ + s && 0 < r; --r) {
                        N += 1;
                    }
                }
                break;

              case N += 1, 0 & (undefined - "object") % 4:
                for (var a = 5; (-2).toString() && 0 < --a; ) {
                    N += 1;
                }
            }
        }
    }((--d, d <<= c), (N += 1, --d, h["var"] <<= ("b" | 38..toString()) === (g || 0) && g / -3 << (undefined, 
    "c")));
} catch (p) {
    if (N += 1, N += 1, NaN, undefined, 23..toString(), "function" == typeof f0 && 0 <= --u && f0("string" != typeof parseInt_1), 
    p && (p[0] += -5 == [] || -4), (N += 1) + ("function" != typeof N)) {
        var y = function N(t) {
            try {} catch (d) {
                return N = 1 + N, (0 | 23..toString()) >> ("" < undefined | {});
                var e, i;
            } finally {
                switch (c++ + (undefined + "a" >> (3 != g) | !0)) {
                  case --t + i:
                    switch (N = 1 + N, NaN) {
                      default:
                      case N = 1 + N, (e && (e.b = 23..toString() < "bar" < -22)) <= NaN:
                      case N = 1 + N, (!0 | []) >>> (4 != 23..toString()) | !1 ^ (i && (i["in"] = 25)):
                      case N = 1 + N, (h && (h[(N = 1 + N, (b && (b["in"] = 0)) / -(h = !0))] <<= !1 < (undefined < "b"))) >> ((b && (b[(N = 1 + N, 
                        671088640 != (b && (b[/[abc4]/.test((N = 1 + N, !1 ^ 1 !== (l && (l[(N = 1 + N, 
                        (l && (l.undefined += -1)) - 1 / 0 > (b = (l = 0) % (0 !== 24..toString())))] -= "22function")) || t || 5).toString())] = !1)))] = !0)) << ~[]):
                    }
                    var o;
                    break;

                  case 0 + c++:
                    for (var f = 5; N = 1 + N, h && (h[c++ + (b = "function" == typeof f1 && 0 <= --u && f1())] = (N += 1, 
                    6 + (!0 !== ("c" | g)))) && 0 < f; --f) {
                        N = 1 + N, h -= 0 == ("" ^ 23..toString());
                    }
                    for (var r = 5; N = 1 + N, 0 % (-1 ^ {}) && 0 < r; --r) {
                        N = 1 + N, i >>= 0 < 38..toString() ^ (-2 | undefined), 38..toString(), 38..toString();
                    }
                    break;

                  default:
                    var a = (N = 1 + (N += 1), N += 1, /[a2][^e]+$/ + null > (0 ^ (h && (h.c += !0))));

                  case NaN == (0 == 4 << []):
                    return;
                }
            }
            switch (c++ + !function i() {
                for (var n = 5; --t + (t = c) && 0 < --n; ) {
                    N = 1 + N;
                }
                N = 1 + (N += 1), o = this % ("object" % 23..toString()) != ((i ^= 0) ^ (2 === [ , 0 ].length) >>> "function"), 
                N = 1 + N, l *= (0 - ([] != 38..toString())) % delete g, N = 1 + (N += 1), N = 1 + (N += 1);
            }()) {
              case c++ + (t = c):
                break;

              case (N += 1) + ("function" == typeof a && 0 <= --u && a() || 2).toString()[~c]:
                return --t + (o && o.length);

              case /[abc4]/.test((--t + ({} / 25 == -5 * 38..toString() == 0) || t || 5).toString()):
            }
        }(undefined);
    } else {
        l = function aa(t) {
            var e = "function" == typeof o && 0 <= --u && o(this);
            for (var i in e) {
                N = 1 + N;
                var o = e[i];
                switch ({
                    "-2": (N += 1) + (d = c)
                }[(N += 1) + ("function" == typeof f2 && 0 <= --u && f2((N = 1 + N, (o && (o[typeof f] += !1)) >>> ((o && (o[(N = 1 + N, 
                s && (s["var"] <<= 0 & (N += 1, "foo")))] += "number" === 24..toString())) ^ (N += 1, 
                4))), (N = 1 + N, s >>= -0)))]) {
                  case c++ + (o && o.NaN):
                  case void 24..toString():
                  case c++ + o:
                }
            }
            var f = -d;
        }(0);
    }
}

console.log(null, c, d, N, g, NaN, undefined);
original result:
�[1mnull�[22m �[33m22�[39m �[33m22020095�[39m �[33m525�[39m �[33mfalse�[39m �[33mNaN�[39m �[90mundefined�[39m

uglified result:
�[1mnull�[22m �[33m22�[39m �[33m22020095�[39m �[33m515�[39m �[33mfalse�[39m �[33mNaN�[39m �[90mundefined�[39m

minify(options):
{
  "ie8": true,
  "toplevel": true
}
@alexlamsl alexlamsl added the bug label Oct 15, 2019
alexlamsl added a commit to alexlamsl/UglifyJS that referenced this issue Oct 15, 2019
alexlamsl added a commit that referenced this issue Oct 15, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant