// original code
// (beautified)
var a = 100, b = 10, c = 0;
for (var brake2 = 5; a++ + (1 === 1 ? a : b) && brake2 > 0; --brake2) {
try {
try {
--b + ((([ , 0 ].length === 2) < "number") - (3 | "bar") != (a && (a[(c = 1 + c,
(22 >> NaN) / ([ , 0 ][1] && "bar") % (24..toString() != null != (a && (a.Infinity /= 25 == [ , 0 ][1]))))] = -4 | -1)) + (this >> -3));
} finally {
{
var a = function f0(b) {
{
for (var brake8 = 5; a++ + [ (c = 1 + c, (Infinity <= []) % (this, 25) <= (a.b = (c = c + 1,
24..toString()) || NaN - -5)), (c = 1 + c, (2 >> true | 5 > -2) >= (4 || 24..toString()) % ([ , 0 ].length === 2 == 2)), (c = 1 + c,
false >> "undefined" <= {} >> -0 != (NaN, this) % ("" + -1)), (c = 1 + c, ((a && (a[(c = 1 + c,
(+ -5 || "undefined" >> 5) !== ((a = Infinity !== true) ^ -1 >> null))] = 22 > true)) & "object" != NaN) <= ({} + 5 || 1 % 24..toString())) ][(c = 1 + c,
a += +this % ("bar" << "") >= (1 <= -5 > ([ , 0 ].length === 2 == NaN)))] && brake8 > 0; --brake8) {
c = 1 + c, (("" & Infinity) >= ("function" < "number")) * ((a && (a.in = true < "foo")) | (-5 && -0));
}
{
var expr10 = a++ + NaN_2;
L385836: for (var key10 in expr10) {
c = 1 + c;
var NaN_2 = expr10[key10];
for (var brake11 = 5; (c = 1 + c, (null >= "foo", true * -5) > "object" / 2 << (-0 & -0)) && brake11 > 0; --brake11) {
c = 1 + c, (NaN_2 && (NaN_2[(c = 1 + c, 2 / "number" ^ (NaN_2 += 38..toString() >= 3) || (NaN_2 = -5 <= 24..toString()) >= (3 ^ Infinity))] += (false,
"object"))) % (25 != 3) < ("bar" === "number", NaN_2 && (NaN_2.null += -3 < ([ , 0 ].length === 2)));
}
}
}
{
var brake13 = 5;
while (--b && --brake13 > 0) {
var expr14 = (c = 1 + c, (c = c + 1, false) % !"undefined" | "foo" >>> "foo" > ("" <= ([ , 0 ].length === 2)));
for (var key14 in expr14) {
c = 1 + c, (-3 === "foo" == ("function", NaN)) <= ((25 ^ -0) === (4 !== /[a2][^e]+$/));
}
}
}
}
{
throw --b + --b;
}
}(-4);
}
var parseInt_2 = --b + (1 === 1 ? a : b), NaN = (c = c + 1) + +b;
}
} catch (b) {
{
var parseInt_2 = --b + (b + 1 - .1 - .1 - .1), b = --b + [ --b + (--b + /[abc4]/.test((a++ + /[abc4]/.test(((c = 1 + c,
parseInt_2 && (parseInt_2.NaN += (1 > "number", "bar" === 22) || (parseInt_2 = 24..toString() ^ "bar" && (c = c + 1,
-5)))) || b || 5).toString()) || b || 5).toString()) || a || 3).toString() ].var;
{
var brake20 = 5;
while (--b + (parseInt_2 && parseInt_2[Infinity]) && --brake20 > 0) {
switch ([ 1 === 1 ? a : b, a++ + +((false && 3) / ("bar" - 38..toString()) || (c = c + 1,
{} !== 0)), a++, a++ + (1 === 1 ? a : b), --b + (b + 1 - .1 - .1 - .1) ].null) {
default:
{}
case 2:
break;
break;
case b--:
(c = c + 1) + [ (c = 1 + c, (false - null) / ("" ^ undefined) - (22 + 25 < (parseInt_2 && (parseInt_2[(c = 1 + c,
(+"" | (true || "undefined")) >> (5 & 3) / (25 >>> 38..toString()))] = "number" << 5)))), (c = 1 + c,
(0 != 22) >= ("undefined" === 24..toString()) < (("foo", 4) !== ("undefined" == 1))), (c = 1 + c,
(true === this) - (true == "function") > (parseInt_2 = "bar" == -5 == (3 === 5))), (c = 1 + c,
("" * /[a2][^e]+$/, undefined < false) | delete (-4 % "object")) ][(c = c + 1) + (parseInt_2 += "" * 4 < ("function" !== Infinity) & -2 >> "" < 2 * 4)];
break;
case b--:
break;
}
}
}
}
if (--b + this) {
switch (new function() {
try {
{
var brake28 = 5;
while ((c = c + 1) + 23..toString() && --brake28 > 0) {
L385837: for (var brake29 = 5; (c = c + 1) + ((c = 1 + c, ("number" * 5 !== {} * "number") < (this != [ , 0 ][1] || "undefined" << "bar")) ? (c = 1 + c,
(-5 % -0 == 5 / []) >>> (null % -2 ^ -3 + 38..toString())) : (c = 1 + c, (4 == "object" === (undefined === {})) << (parseInt_2 && (parseInt_2[--b + [ (c = 1 + c,
(c = c + 1, 3 ^ 25) + ("object" == -5) % (4 ^ -1)), (c = 1 + c, (/[a2][^e]+$/ / -0 && void -2) - ((0 || -1) == (c = c + 1,
[]))), (c = 1 + c, (true == 5 && "function" > 38..toString()) ^ (parseInt_2 && (parseInt_2[a++ + parseInt_2] >>= ("number" || NaN) > ("bar" != -2)))), (c = 1 + c,
/[a2][^e]+$/ << "foo" <= (-3 == "undefined") || (parseInt_2 = -3 || -4) + ("function" >>> 25)), (c = 1 + c,
void "bar" | -3 % 38..toString() || ("undefined" & [ , 0 ].length === 2) - (NaN ^ -1)) ][(c = 1 + c,
c = c + 1, parseInt_2 && (parseInt_2[(c = c + 1) + a--] = "bar" << /[a2][^e]+$/ & (undefined & 4)))]] = -2 >>> 25 << ([ , 0 ][1] !== null))))) && brake29 > 0; --brake29) {
switch (c = 1 + c, parseInt_2 = (parseInt_2 && (parseInt_2.Infinity = 0 + -0 ^ (parseInt_2 && (parseInt_2[(c = 1 + c,
25 >> [ , 0 ][1] === "" > 3 != ((5 & null) == 3 < -4))] = "" / 4))), +("" - "undefined"))) {
case c = 1 + c, (3 >>> -1) - "foo" / "object" && (parseInt_2 && (parseInt_2.NaN ^= 2 << "object" >= (c = c + 1,
false))):
;
break;
case c = 1 + c, (parseInt_2 += 22 >> 4 < -0 % -4) !== Infinity % undefined > ("foo" != 1):
;
break;
default:
;
case c = 1 + c, 38..toString() !== -5 & this < -4 ^ (-4 ^ 0) === ("" & null):
;
break;
}
}
}
}
} catch (Math) {
{
var foo_2 = function f1() {
}();
}
c = c + 1;
} finally {
--b + [ (c = 1 + c, ("" == undefined && true >>> 5) === ("object" != -0) % ([ , 0 ][1] === "foo")), (c = 1 + c,
(-2 ^ 3 ^ (4 ^ 24..toString())) >> delete (true < NaN)), (c = 1 + c, (22 ^ 22) !== ([ , 0 ].length === 2) >> -5 ^ (25 === "function") + (parseInt_2 && (parseInt_2[(c = 1 + c,
((c = c + 1, 0) >= this - 2) % (parseInt_2 && (parseInt_2.c = "" >> -3 > "" % 3)))] += /[a2][^e]+$/ > [ , 0 ][1]))), (c = 1 + c,
-(parseInt_2 -= -4 - 22 == 38..toString() >> 5)), (c = 1 + c, ("undefined" ^ -2) - (2 && NaN) && !(4 % ([ , 0 ].length === 2))) ];
{
var brake34 = 5;
do {
{
var expr35 = (c = 1 + c, (foo_2 && (foo_2[(c = 1 + c, (parseInt_2 && (parseInt_2[(c = 1 + c,
(-5 && -1) < this - false && ~(parseInt_2 && (parseInt_2.b = (0, [ , 0 ][1]))))] ^= false >>> /[a2][^e]+$/)) + (-1 << null) && (c = c + 1,
+{}))] = true / -1)) != 25 >= -3, (parseInt_2 && (parseInt_2.Infinity = "" & [ , 0 ].length === 2)) | ("" || 0));
for (var key35 in expr35) {
c = 1 + c, foo_2 = 0 < -5 ^ {} << true | -1 * false / (([ , 0 ].length === 2) / false);
}
}
} while (++a && --brake34 > 0);
}
}
if (--b + [ ((c = 1 + c, (25 ^ [ , 0 ].length === 2) != 3 - -5 && this * 0 ^ (null ^ "undefined")) || a || 3).toString(), (c = c + 1) + 24..toString(), --b + {
1.5: (c = 1 + c, (parseInt_2 && (parseInt_2.b = {} | -2)) * (parseInt_2 && (parseInt_2.foo = "bar" % -5)) > (undefined >>> "function" ^ this == -3)),
var: (c = 1 + c, c = c + 1, 23..toString() >= ([ , 0 ].length === 2) ^ -0 !== 4),
undefined: (c = 1 + c, ~(24..toString() !== []) >> (([ , 0 ].length === 2 === 0) <= ("" && NaN))),
set Infinity(NaN_1) {
this.a = -1 >> 5;
},
"-2": (c = 1 + c, (5 >= 23..toString() >= (1 <= undefined)) % (0 & 23..toString() | "function" ^ 1))
}.c, ((c = 1 + c, ("function" > true ^ (c = c + 1, -2)) - (("object" && null) >= (parseInt_2 /= 2 <= 22))) || 4).toString()[(c = 1 + c,
parseInt_2 = ("undefined" >= false || void ([ , 0 ].length === 2)) >> (c = c + 1,
false + "object"))] ][1 === 1 ? a : b]) {} else if (new function Infinity_2() {
this.a = [] + "bar" == (24..toString() !== [ , 0 ][1]);
c = 1 + c, (-5 >> "undefined" & [] + "function") / ((/[a2][^e]+$/ & -3) !== ("number" && "undefined"));
c = 1 + c, Infinity_2 && (Infinity_2.Infinity = ((-2, 5) || NaN === "number") >>> ((null || -4) ^ 25 * undefined));
c = 1 + c, (!-5 != (null === {})) >= (25 >>> -1 ^ "object" >> "foo");
c = 1 + c, void 5 / (24..toString() == NaN) / ((NaN < 2) << (24..toString() >> Infinity));
}()) {
var expr44 = a++ + ((c = 1 + c, -((foo_2 && (foo_2.Infinity = [] == -5)) ^ 2 % -5)) || 6).toString()[(c = 1 + c,
(-4 | "number", -1 !== 25) | (parseInt_2 && (parseInt_2[{
c: (c = 1 + c, (parseInt_2 && (parseInt_2[(c = c + 1) + --b] += delete 25 + ("function" & [ , 0 ].length === 2))) >>> (parseInt_2 = -5 ^ "" | (foo_2 && (foo_2[(c = 1 + c,
(this - "object" || ("number", 3)) === (5 ^ null && [ , 0 ][1] - false))] = 2 >>> "undefined"))))
}] = -5 > undefined === ({} ^ NaN))))];
for (var key44 in expr44) {
c = 1 + c;
var b_1 = expr44[key44];
switch (c = 1 + c, ([] - Infinity && 23..toString() != 1) * (25 < "object" == ("undefined" === /[a2][^e]+$/))) {
case c = 1 + c, (24..toString() === -1) % (true && 38..toString()) - (-1 / "undefined" !== (3 | 5)):
;
break;
case c = 1 + c, (25 === this) >= (0 != 38..toString()) ^ (22 >>> /[a2][^e]+$/) + (parseInt_2 && (parseInt_2.var += "bar" & "object")):
;
break;
default:
;
case c = 1 + c, (b_1 && (b_1.c = (/[a2][^e]+$/ ^ "object") >>> (true || Infinity))) - (0 % 1 - false / 25):
;
break;
}
}
}
if ((c = c + 1) + [ a++ + b++, a++ + parseInt_2, ((c = 1 + c, + -1 / (0 !== 1) !== (/[a2][^e]+$/ !== {}) <= ({} & [ , 0 ][1])) || a || 3).toString() ]) {
return /[abc4]/.test((((c = 1 + c, ("function" + 24..toString() >= (2 === 4)) / (25 < null !== 0 <= true)) ? (c = 1 + c,
-0 & "object" >= NaN || (parseInt_2 && (parseInt_2[(c = 1 + c, c = c + 1, "bar" >>> -4 ^ (b_1 && (b_1[(c = 1 + c,
c = c + 1, ("bar" ^ [ , 0 ][1]) !== (4 == 38..toString()))] = "number" & 4)))] += "undefined" || null)) >>> ("bar" || 38..toString())) : (c = 1 + c,
("bar" <= 23..toString(), -4 - /[a2][^e]+$/) % (this >= -4 <= -5 >>> -1))) || b || 5).toString());
}
}()) {
case a++ + b--:
try {
c = c + 1;
} catch (b_2) {
if (b |= a) {
for (var brake51 = 5; a++ + a-- && brake51 > 0; --brake51) {}
}
for (var brake53 = 5; a++ + (b += a) && brake53 > 0; --brake53) {
var a = {
in: (c = 1 + c, +({} >> 0) == ("number" <= 22) >> (parseInt_2 && (parseInt_2[(c = 1 + c,
-3 >>> this >> (b_2 -= "number" % 3) <= !(23..toString() - NaN))] = "number" - -0))),
"-2": (c = 1 + c, (parseInt_2 = ("foo" == true) > delete 2) + (22 / -2 ^ 2 / 38..toString())),
undefined: (c = 1 + c, ((false, true) <= (-3 < undefined)) << ((parseInt_2 = 0 & 22) & (NaN,
"function"))),
a: (c = 1 + c, void ((/[a2][^e]+$/ >= "") + undefined % 0))
};
}
}
break;
case parseInt_2 && parseInt_2[0 === 1 ? a : b]:
{
try {
c = c + 1;
} finally {
c = 1 + c, (parseInt_2 && (parseInt_2[a++ + (parseInt_2 && parseInt_2.foo)] /= this - 22 < ("bar" | "number"))) > delete (parseInt_2 && (parseInt_2[(c = 1 + c,
parseInt_2 = (parseInt_2 += 24..toString() > Infinity === true < "undefined") & (5 & -5) >= (3 & Infinity))] = 5 << -3));
for (var brake59 = 5; (c = 1 + c, 1 % "number" << (0 !== -0) < (38..toString() <= 4 == 0 < 5)) && brake59 > 0; --brake59) {
c = 1 + c, (c = c + 1, c = c + 1, 4) - ((5 !== 1) <= (c = c + 1, "object"));
}
}
switch ([ (c = 1 + c, void (("undefined" >> true) - (false ^ NaN))), (c = 1 + c,
(2 % "number" | (parseInt_2 && (parseInt_2[(c = 1 + c, parseInt_2 && (parseInt_2.in = ("undefined" & 23..toString()) % (1 % 24..toString()) < (2 <= 0 > 2 % 0)))] = -4 ^ {}))) % ~("undefined" | NaN)) ]) {
case --b + ((c = c + 1) + {
a: (c = 1 + c, parseInt_2 && (parseInt_2[a++] += (parseInt_2 && (parseInt_2[(c = 1 + c,
parseInt_2 && (parseInt_2[a++ + !a] ^= (3 + undefined) * (Infinity || 24..toString()) == false << -1 <= Infinity / 24..toString()))] = [ , 0 ][1] != 0)) << (-5 && 2) & (parseInt_2 = false % "number" % (-3 != 2)))),
"-2": (c = 1 + c, void -5 >> (-4 && "function") >>> ([ , 0 ].length === 2 | [ , 0 ].length === 2,
NaN ^ "number")),
null: (c = 1 + c, -0 != 22 && 25 >>> -1 || (-2 >> [ , 0 ][1]) / (-4 || "object")),
b: (c = 1 + c, ((24..toString() && "bar") <= [ , 0 ][1] << 0) >> ((-3 != {}) << (-3 < /[a2][^e]+$/)))
}.Infinity || 7).toString()[delete ((3 ^ 22) + (false != 3) & (c = c + 1, NaN) == !([ , 0 ].length === 2))]:
if (c = 1 + c, (NaN - "function" || 5 && []) - (false == this || delete 2)) {
c = 1 + c, (23..toString() >>> "undefined" > (parseInt_2 = -5 || undefined)) >> ({} <= 23..toString(),
"number" >>> NaN);
} else {
c = 1 + c, NaN > 5 & 5 * -5 ^ ([] <= 4 | (-5, [ , 0 ].length === 2));
}
var foo_2 = (c = 1 + c, parseInt_2 /= ([] + 38..toString()) * ({} - NaN) >= ([ , 0 ].length === 2 ^ -4) >> (-5 ^ -4));
break;
case (c = c + 1) + (foo_2 && foo_2[{
NaN: (c = 1 + c, (parseInt_2 && (parseInt_2[a++ + (c = 1 + c, (foo_2 && (foo_2[-2] >>>= (parseInt_2 && (parseInt_2.c = /[a2][^e]+$/ << this)) & 2 << 1)) == ((parseInt_2 >>= "function" ^ 2) ^ undefined << 24..toString()))] += ({} | 25) % ([ , 0 ][1] > false))) == ("" ^ "bar") / (false - "bar")),
0: (c = 1 + c, (NaN << /[a2][^e]+$/ == "object" + NaN) > (4 / 24..toString() < 0 + "number")),
c: (c = 1 + c, -1 + [] == /[a2][^e]+$/ + "foo" & (-2 ^ []) == (c = c + 1, 1)),
0: (c = 1 + c, 38..toString() > 1 !== ("" ^ -3) & (false | -0) < ~-1)
}.in]):
var parseInt_2 = (c = 1 + c, "object" !== -3 != (5 | {}) || (23..toString() & true) >>> (25 || "object"));
break;
default:
case --b + {
"\t": (c = 1 + c, (undefined >>> "bar" > "function" >> undefined) + (("number",
22) === (5 != 22))),
c: (c = 1 + c, (parseInt_2 && (parseInt_2.foo = (5 | this) * ("bar" || null))) | ([ , 0 ].length === 2) >> -0 == -5 >>> "number"),
var: (c = 1 + c, (foo_2 && (foo_2[(c = c + 1) + (b -= a)] -= ("foo" | 0) !== (foo_2 = [ , 0 ][1] || []))) >>> (c = c + 1,
undefined / "")),
foo: (c = 1 + c, !-1 / (true + "number") + ((this >= "object") - ({} != "bar"))),
0: (c = 1 + c, 2 * 5 >> (c = c + 1, undefined) << (("undefined" || 25) ^ 3 != null))
}[(c = 1 + c, "function" <= 4 <= (4 ^ -4) != (4 >= 1 != 4 - -1))]:
c = c + 1;
if (c = 1 + c, (null >= this) + (parseInt_2 = "function" < 38..toString()) > (("bar" === false) <= (22,
"number"))) {
c = 1 + c, (null | 24..toString()) - (-2 == [ , 0 ][1]), (undefined <= /[a2][^e]+$/) * void 0;
} else {
c = 1 + c, (1 != NaN) >> (0 >> 24..toString()) <= (c = c + 1, 23..toString()) >>> undefined - -1;
}
break;
}
{
var brake71 = 5;
L385838: do {
a++ + ((c = 1 + c, 38..toString() * false % (38..toString() >>> null) !== (foo_2 &= "number" * "function" >> ~undefined)) ? (c = 1 + c,
(23..toString() > "function" && [ , 0 ][1] > -5) ^ (parseInt_2 && (parseInt_2[false] = delete 1 - /[a2][^e]+$/ / this))) : (c = 1 + c,
(38..toString() !== true) >= 5 >> -5 == ("undefined" != -2 != [] * 1)));
} while ((0 === 1 ? a : b) && --brake71 > 0);
}
for (var brake73 = 5; a++ + (parseInt_2 && (parseInt_2[new function() {
this[-5] += "foo" % undefined ^ (c = c + 1, "undefined");
this.b += 0 / -2 == (parseInt_2 && (parseInt_2.null = undefined != NaN));
}()] = parseInt_2 && (parseInt_2.b = (24..toString(), 25) << "" % -2) && (25 || NaN) + (22 << -5))) && brake73 > 0; --brake73) {
try {
if (c = 1 + c, ((parseInt_2 && (parseInt_2.in ^= (-0, "bar"))) | "undefined" << -4) == (1 === 2 ^ delete 22)) {
c = 1 + c, (false === -0 === ("function" != false)) < (Infinity >> 1 != (parseInt_2 ^= {} - "foo"));
} else {
c = 1 + c, foo_2 && (foo_2.in += (null < -4) * ("bar" && -2)) || [] & /[a2][^e]+$/ & -3 * 22;
}
} catch (foo_1) {
c = 1 + c, -Infinity << -5 - -5 ^ (4 == 5) >>> (NaN << 22);
c = 1 + c, foo_2 = (23..toString() & "number") >>> (4 === 24..toString()) >> (1 <= "object" == (1,
-2));
}
}
}
break;
case [ delete 25 >> ([ , 0 ][1] ^ false) | (5 >> -5) - (23..toString() < 4), (c = c + 1) + [ parseInt_2 && parseInt_2[!((24..toString() >> ([ , 0 ].length === 2)) + ("bar",
[ , 0 ].length === 2) <= (Infinity >= /[a2][^e]+$/ & [] == -5))], foo_2, !function Math_2() {
c = 1 + c, (null === "bar") % ([ , 0 ][1] || undefined) && (c = c + 1, -3) << (/[a2][^e]+$/ & 22);
c = 1 + c, (-1 > 22 & 1 + -4) < (parseInt_2 && (parseInt_2[[ (c = 1 + c, (null / "number",
25 & 25) % (22 >= 0 >= (undefined == 24..toString()))), (c = 1 + c, (1 && "undefined") << (4 | -5) || ([ , 0 ].length === 2 || "bar") <= (null,
1)), (c = 1 + c, (24..toString() !== 0) >= (c = c + 1, /[a2][^e]+$/) <= ("function" < 38..toString() <= (2 <= 0))), (c = 1 + c,
c = c + 1, undefined, "foo" | "", (5 << -4) * (c = c + 1, 24..toString())), (c = 1 + c,
(22 == null) / (1 < -0) !== (parseInt_2 |= (3 >> ([ , 0 ].length === 2)) / (true < 4))) ].null] += (parseInt_2 && (parseInt_2.var = "bar" + 38..toString())) >>> (-1 << this)));
}(), (c = c + 1) + parseInt_2, [ (c = 1 + c, -(-3 + [ , 0 ][1] > "" / 5)), (c = 1 + c,
c = c + 1, ([ , 0 ].length === 2) << this <= (4 === false)), (c = 1 + c, ((Infinity & null) <= (foo_2 && (foo_2.foo += "object" + 4))) >> (5 << "foo") / (parseInt_2 && (parseInt_2.undefined = "" - null))) ][(c = c + 1) + (1 === 1 ? a : b)] ].in, (c = c + 1) + [ (c = c + 1) + true, a++ + [ (c = 1 + c,
4 >>> 23..toString() == (c = c + 1, true) === (c = c + 1, -0, -5 ^ "bar")), (c = 1 + c,
-1 % /[a2][^e]+$/ != (22 === [ , 0 ][1]) == (undefined <= "foo" & 24..toString() - "foo")), (c = 1 + c,
+(38..toString() === [] | {} / "object")), (c = 1 + c, ([ , 0 ].length === 2) % 5 >> ("function" != 24..toString()),
foo_2 && (foo_2[--b + void function() {
}()] = -5 == 3 && "number" << -1)), (c = 1 + c, ([ , 0 ][1] == false || -5 * -3) ^ (5 > "foo") - (this - "bar")) ], a++ + 25 ] ]:
break;
case a++ + -2:
{
var foo = function f2(foo_1) {
function f3(a, foo) {
c = 1 + c, ("undefined" >>> undefined && "object" % 23..toString()) + (parseInt_2 && (parseInt_2.a = (parseInt_2 && (parseInt_2[(c = 1 + c,
(5 < /[a2][^e]+$/) * ({} / -3) === (parseInt_2 && (parseInt_2[b = a] ^= ("object" & "function") !== "object" >> {})))] = -2 > ([ , 0 ].length === 2))) - (c = c + 1,
25)));
c = 1 + c, (parseInt_2 && (parseInt_2.c = -4 << 4)) + (c = c + 1, null) >>> (foo_2 && (foo_2.b = undefined === null)) + (foo_2 && (foo_2.undefined = undefined * "foo"));
}
var Math_2 = f3();
function f4(bar, b, b) {
c = 1 + c, (false ^ [ , 0 ].length === 2) >= (false >= "function") != ({}, null,
-1 == 1);
c = 1 + c, !("function" + ([ , 0 ].length === 2)) != (foo_2 && (foo_2[a++ + (Math_2 && Math_2.null)] += 2 < NaN ^ -2 << {}));
}
var Math_1 = f4();
function f5() {
c = 1 + c, void 25 >= (/[a2][^e]+$/ & "number") != (0 > 24..toString(), 2 | undefined);
c = 1 + c, ((undefined ^ -2) === -3 << "") >> ((undefined || this) && -1 % 25);
}
var b_1 = f5((c = 1 + c, (undefined && -0 || "undefined" >>> ([ , 0 ].length === 2)) >>> (22 << 5) + (null == "object")));
function f6() {
c = 1 + c, (38..toString() <= "" || 4 % -4) ^ ("" !== /[a2][^e]+$/) <= (-2 != -5);
c = 1 + c, (Infinity >>> this & "object" !== undefined) === (parseInt_2 && (parseInt_2.a = (-0 | "bar") === "object" >= ([ , 0 ].length === 2)));
}
var a_2 = f6();
}();
}
;
break;
}
} else {
try {
switch (--b + +function parseInt() {
{
var brake94 = 5;
do {
{
var bar_1 = function f7(NaN, b_2) {
}();
}
} while (a++ + (typeof foo_2 == "undefined") && --brake94 > 0);
}
{
var brake96 = 5;
L385839: while ((c = c + 1) + (foo_2 && (foo_2.b += ~(false % 5) || (c = c + 1,
"" ^ 38..toString()))) && --brake96 > 0) {
try {
{
var brake98 = 5;
do {
c = 1 + c, ("foo" ^ -3 || !25) === (c = c + 1, foo_2 = false != 5);
} while ((c = 1 + c, (true > "object", NaN & -4) === -("" | 0)) && --brake98 > 0);
}
} finally {
c = 1 + c, parseInt_2 && (parseInt_2[bar_1 && bar_1.a] *= (parseInt_2 && (parseInt_2[b = a] += (parseInt_2 && (parseInt_2.var = 23..toString() - -4)) & 23..toString() == -4),
25 << 5 != undefined - true));
c = 1 + c, ((25 == 2) > (null == 3)) + ((this | 4) === (-5 | true));
}
}
}
try {
{
c = 1 + c, ("function" % ([ , 0 ].length === 2) + (this << this)) % (NaN << "undefined",
undefined >>> 24..toString());
c = 1 + c, (25 <= 24..toString() != (undefined === -5)) - (c = c + 1, 22 >= 38..toString());
c = 1 + c, (null != 3) / (true > -1) !== ((bar_1 && (bar_1.in %= (38..toString(),
"object"))) !== (-0 || 3));
c = 1 + c, ("object" * -2 === (-5 | "")) << false / "undefined" / (([ , 0 ].length === 2) + -0);
}
} catch (a_2) {
L385840: {
}
{
var brake109 = 5;
do {
c = 1 + c, -4 * 25 >= ([] & "") < (25 >> NaN && "" & NaN);
} while ((c = 1 + c, (c = c + 1, ([ , 0 ].length === 2) < 4) || ([ , 0 ].length === 2 || /[a2][^e]+$/) / (-4 && null)) && --brake109 > 0);
}
}
}()) {
case --b + (a++ ? a++ + (typeof a == "function") : (c = c + 1) + ""):
break;
case --b + ++a:
break;
case {
Infinity: a++ + (parseInt_2 && parseInt_2[--b + +(("bar" << true >= (parseInt_2 && (parseInt_2[(c = 1 + c,
-1 + 0 != (parseInt_2 && (parseInt_2[(c = 1 + c, foo_2 && (foo_2.NaN += (c = c + 1,
false) >>> 1 + "object" >= (true > -1 < "" / [])))] += true > true)) || NaN > 38..toString() ^ "" == [])] += [ , 0 ][1] | "object"))) >>> ("object" ^ -5) / ("" << -4))] ? (c = c + 1) + a++ : typeof a_1 != "boolean"),
undefined: --b + {
"-2": /[abc4]/.test(((c = 1 + c, (23..toString() ^ [ , 0 ][1] && /[a2][^e]+$/ != "object") << ((-5 !== [ , 0 ][1]) > (c = c + 1,
23..toString()))) || b || 5).toString()),
Infinity: b = a,
NaN: delete b
}.a,
c: (c = c + 1) + parseInt_2
}:
break;
case b++:
break;
}
} finally {
try {
{
var b = function f8(a_2, Math_2) {
{
}
L385841: {
}
}();
}
} catch (a_2) {
--b + ++a;
try {
{}
} finally {
{
var brake118 = 5;
while ((c = 1 + c, (-0 || -5) > (23..toString() | "undefined") != ("object" >= "object" || -1 >> -5)) && --brake118 > 0) {
c = 1 + c, ("bar" + -2) * (-1 & -3) != (undefined << [] && [ , 0 ][1] >> ([ , 0 ].length === 2));
}
}
{
var expr120 = (c = 1 + c, foo_2 = -0 < "function" > (c = c + 1, "") >= ((2 & -2) !== (25 & 5)));
for (var key120 in expr120) {
c = 1 + c, (-4 / -5 || (undefined || 23..toString())) / ([ , 0 ][1] % false ^ "foo" === -1);
}
}
}
} finally {
}
{
var brake124 = 5;
do {
{
var brake125 = 5;
do {
var a;
} while ((c = c + 1) + {
set length(a_2) {
c = 1 + c, parseInt_2 && (parseInt_2.Infinity = ~"function" ^ (4, -2) ^ (24..toString() & [] && {} >>> 0));
this.var = (false || /[a2][^e]+$/) > (1 ^ Infinity);
},
"\t": a++ + delete a,
0: b++,
1.5: foo_2 && (foo_2[parseInt_2] += (parseInt_2 = /[a2][^e]+$/ > true) >>> (parseInt_2 && (parseInt_2.b = -4 < Infinity)) >> (-0 << 1) - "function" / 38..toString())
} && --brake125 > 0);
}
} while (--b && --brake124 > 0);
}
}
}
}
}
console.log(null, a, b, c);
```js
// uglified code
// (beautified)
for (var a = 100, b = 10, c = 0, brake2 = 5; a++ + a && brake2 > 0; --brake2) {
try {
try {
--b, a && (a[(c = 1 + c, (22 >> NaN) / 0 % (null != 24..toString() != (a && (a.Infinity /= !1))))] = -1);
} finally {
var parseInt_2 = --b + (a = function(t) {
for (var n = 5; a++ + [ (c = 1 + c, (1 / 0 <= []) % 25 <= (a.b = (c += 1, 24..toString() || NaN - -5))), (c = 1 + c,
1 >= 4 % (2 === [ , 0 ].length == 2)), (c = 1 + c, 0 <= {} >> -0 != this % "-1"), (c = 1 + c,
((a && (a[(c = 1 + c, -5 != (-1 ^ (a = !0)))] = !0)) & "object" != NaN) <= ({} + 5 || 1 % 24..toString())) ][(c = 1 + c,
a += +this % 0 >= (!1 > (2 === [ , 0 ].length == NaN)))] && n > 0; --n) {
c = 1 + c, a && (a.in = !1);
}
var r = a++ + o;
for (var e in r) {
var o = r[e];
c = 1 + (c = 1 + c);
}
for (var i = 5; --t && --i > 0; ) {
var s = (c = 1 + c, c += 1, 0 / 0 | 0 > ("" <= (2 === [ , 0 ].length)));
for (var _ in s) {
c = 1 + c;
}
}
throw --t + --t;
}(-4)), NaN = (c += 1) + +b;
}
} catch (b) {
parseInt_2 = --b + (b + 1 - .1 - .1 - .1);
for (var b = --b + [ --b + (--b + /[abc4]/.test((a++ + /[abc4]/.test((c = 1 + c,
parseInt_2 && (parseInt_2.NaN += parseInt_2 = "bar" ^ 24..toString() && (c += 1,
-5)) || b || 5).toString()) || b || 5).toString()) || a || 3).toString() ].var, brake20 = 5; --b + (parseInt_2 && parseInt_2[1 / 0]) && --brake20 > 0; ) {
switch ([ a, a++ + +(!1 / ("bar" - 38..toString()) || (c += 1, 0 !== {})), a++, a++ + a, --b + (b + 1 - .1 - .1 - .1) ].null) {
default:
case 2:
break;
case b--:
c = 1 + (c += 1), parseInt_2 && (parseInt_2[(c = 1 + c, 1 >> 1 / (25 >>> 38..toString()))] = 0),
c = 1 + c, 24..toString(), parseInt_2 = !0, c = 1 + (c = 1 + c), c += 1, parseInt_2 += 1;
break;
case b--:
}
}
if (--b + this) {
switch (new function() {
try {
for (var t = 5; (c += 1) + 23..toString() && --t > 0; ) {
for (var n = 5; (c += 1) + (c = 1 + c, (0 / 0 != "number" * {}) < (0 != this || 0) ? (c = 1 + c,
(0 / 0 == 5 / []) >>> (0 ^ -3 + 38..toString())) : (c = 1 + c, (!1 == (void 0 === {})) << (parseInt_2 && (parseInt_2[--b + [ (c = 1 + c,
c += 1, 26), (c = 1 + c, 0 / 0 - (-1 == (c += 1, []))), (c = 1 + c, !1 ^ (parseInt_2 && (parseInt_2[a++ + parseInt_2] >>= !1))), (c = 1 + c,
!0), (c = 1 + c, void 0 | -3 % 38..toString() || ("undefined" & 2 === [ , 0 ].length) - (-1 ^ NaN)) ][(c = 1 + c,
c += 1, parseInt_2 && (parseInt_2[(c += 1) + a--] = 0))]] = 254)))) && n > 0; --n) {
switch (c = 1 + c, parseInt_2 && (parseInt_2.Infinity = 0 ^ (parseInt_2 && (parseInt_2[(c = 1 + c,
!0)] = 0))), parseInt_2 = 0 / 0) {
case c = 1 + c, 0 / 0:
case c = 1 + c, !1 !== (parseInt_2 += !1):
break;
default:
case c = 1 + c, -5 !== 38..toString() & this < -4 ^ !1:
}
}
}
} catch (t) {
var r = void 0;
c += 1;
} finally {
--b, c = 1 + (c = 1 + c), 24..toString(), c = 1 + c, parseInt_2 && (parseInt_2[(c = 1 + c,
c += 1, (0 >= this - 2) % (parseInt_2 && (parseInt_2.c = !1)))] += !1), c = 1 + c,
parseInt_2 -= -26 == 38..toString() >> 5, c = 1 + c;
var e = 5;
do {
var o = (c = 1 + c, r && (r[(c = 1 + c, (parseInt_2 && (parseInt_2[(c = 1 + c, -1 < this - !1 && ~(parseInt_2 && (parseInt_2.b = 0)))] ^= 0)) + -1 && (c += 1,
+{}))] = -1), 0 | (parseInt_2 && (parseInt_2.Infinity = "" & 2 === [ , 0 ].length)));
for (var i in o) {
c = 1 + c, r = !1 ^ {} << !0 | -0 / ((2 === [ , 0 ].length) / !1);
}
} while (++a && --e > 0);
}
if (--b + [ (c = 1 + c, 8 != (25 ^ 2 === [ , 0 ].length) && 0 * this ^ 0 || a || 3).toString(), (c += 1) + 24..toString(), --b + {
1.5: (c = 1 + c, (parseInt_2 && (parseInt_2.b = -2 | {})) * (parseInt_2 && (parseInt_2.foo = 0 / 0)) > (0 ^ -3 == this)),
var: (c = 1 + c, c += 1, 23..toString() >= (2 === [ , 0 ].length) ^ !0),
undefined: (c = 1 + c, ~(24..toString() !== []) >> ((2 === [ , 0 ].length === 0) <= "")),
set Infinity(t) {
this.a = -1;
},
"-2": (c = 1 + c, (5 >= 23..toString() >= !1) % (0 & 23..toString() | 1))
}.c, (c = 1 + c, (!1 ^ (c += 1, -2)) - (null >= (parseInt_2 /= !0)) || 4).toString()[(c = 1 + c,
parseInt_2 = void 0 >> (c += 1, !1 + "object"))] ][a]) {} else if (new function t() {
this.a = [] + "bar" == (0 !== 24..toString()), c = 1 + (c = 1 + c), t && (t.Infinity = 0),
c = 1 + (c = 1 + c), 24..toString(), 24..toString();
}()) {
var s = a++ + (c = 1 + c, -(2 ^ (r && (r.Infinity = -5 == []))) || 6).toString()[(c = 1 + c,
!0 | (parseInt_2 && (parseInt_2[{
c: (c = 1 + c, (parseInt_2 && (parseInt_2[(c += 1) + --b] += !0 + ("function" & 2 === [ , 0 ].length))) >>> (parseInt_2 = -5 | (r && (r[(c = 1 + c,
0 === (this - "object" || 3))] = 2))))
}] = !1 === ({} ^ NaN))))];
for (var _ in s) {
var I = s[_];
switch (c = 1 + (c = 1 + c), !0 * ([] - 1 / 0 && 1 != 23..toString())) {
case c = 1 + c, (-1 === 24..toString()) % 38..toString() - !0:
case c = 1 + c, (25 === this) >= (0 != 38..toString()) ^ 22 + (parseInt_2 && (parseInt_2.var += 0)):
break;
default:
case c = 1 + c, (I && (I.c = 0)) - 0:
}
}
}
if ((c += 1) + [ a++ + b++, a++ + parseInt_2, (c = 1 + c, -1 !== (/[a2][^e]+$/ !== {}) <= (0 & {}) || a || 3).toString() ]) {
return /[abc4]/.test((c = 1 + c, (("function" + 24..toString() >= !1) / !0 ? (c = 1 + c,
-0 & "object" >= NaN || (parseInt_2 && (parseInt_2[(c = 1 + c, c += 1, 0 ^ (I && (I[(c = 1 + c,
c += 1, 0 !== (4 == 38..toString()))] = 0)))] += "undefined")) >>> "bar") : (c = 1 + c,
23..toString(), 0 / 0 % (this >= -4 <= 1))) || b || 5).toString());
}
}()) {
case a++ + b--:
try {
c += 1;
} catch (t) {
if (b |= a) {
for (var brake51 = 5; a++ + a-- && brake51 > 0; --brake51) {}
}
for (var brake53 = 5; a++ + (b += a) && brake53 > 0; --brake53) {
a = {
in: (c = 1 + c, +({} >> 0) == !1 >> (parseInt_2 && (parseInt_2[(c = 1 + c, -3 >>> this >> (t -= 0 / 0) <= !(23..toString() - NaN))] = 0 / 0))),
"-2": (c = 1 + c, (parseInt_2 = !1) + (-11 ^ 2 / 38..toString())),
undefined: (c = 1 + c, !1 << ("function" & (parseInt_2 = 0))),
a: void (c = 1 + c)
};
}
}
break;
case parseInt_2 && parseInt_2[b]:
try {
c += 1;
} finally {
c = 1 + c, parseInt_2 && (parseInt_2[a++ + (parseInt_2 && parseInt_2.foo)] /= this - 22 < 0),
parseInt_2 && (parseInt_2[(c = 1 + c, parseInt_2 = !0 & (parseInt_2 += 24..toString() > 1 / 0 == !1))] = 5 << -3);
for (var brake59 = 5; c = 1 + c, 0 < (38..toString() <= 4 == 1) && brake59 > 0; --brake59) {
c = 1 + c, c += 1, c += 1, c += 1;
}
}
switch ([ void (c = 1 + c), (c = 1 + c, (0 / 0 | (parseInt_2 && (parseInt_2[(c = 1 + c,
parseInt_2 && (parseInt_2.in = ("undefined" & 23..toString()) % (1 % 24..toString()) < !1))] = -4 ^ {}))) % ~("undefined" | NaN)) ]) {
case --b + ((c += 1) + {
a: (c = 1 + c, parseInt_2 && (parseInt_2[a++] += (parseInt_2 && (parseInt_2[(c = 1 + c,
parseInt_2 && (parseInt_2[a++ + !a] ^= 0 / 0 == 0 <= 1 / 0 / 24..toString()))] = !1)) << 2 & (parseInt_2 = 0 / 0))),
"-2": (c = 1 + c, 0 >>> ("number" ^ NaN)),
null: (c = 1 + c, .5),
b: (c = 1 + c, ((24..toString() && "bar") <= 0) >> ((-3 != {}) << !1))
}.Infinity || 7).toString()[(c += 1, !0)]:
c = 1 + c, (NaN - "function" || []) - (0 == this || !0) ? (c = 1 + c, 23..toString(),
parseInt_2 = -5, 23..toString()) : c = 1 + c;
var foo_2 = (c = 1 + c, parseInt_2 /= ([] + 38..toString()) * ({} - NaN) >= (2 === [ , 0 ].length ^ -4) >> 7);
break;
case (c += 1) + (foo_2 && foo_2[{
NaN: (c = 1 + c, (parseInt_2 && (parseInt_2[a++ + (c = 1 + c, (foo_2 && (foo_2[-2] >>>= 4 & (parseInt_2 && (parseInt_2.c = /[a2][^e]+$/ << this)))) == ((parseInt_2 >>= 2) ^ void 0 << 24..toString()))] += (25 | {}) % !1)) == 0 / 0),
0: (c = 1 + c, (NaN << /[a2][^e]+$/ == "object" + NaN) > (4 / 24..toString() < "0number")),
c: (c = 1 + c, -1 + [] == "/[a2][^e]+$/foo" & (-2 ^ []) == (c += 1, 1)),
0: (c = 1 + c, 38..toString() > 1 !== -3 & !1)
}.in]):
parseInt_2 = (c = 1 + c, 1 != (5 | {}) || (!0 & 23..toString()) >>> 25);
break;
default:
case --b + {
"\t": (c = 1 + c, 0),
c: (c = 1 + c, (parseInt_2 && (parseInt_2.foo = "bar" * (5 | this))) | (2 === [ , 0 ].length) >> -0 == 4294967291),
var: (c = 1 + c, (foo_2 && (foo_2[(c += 1) + (b -= a)] -= 0 !== (foo_2 = []))) >>> (c += 1,
0 / 0)),
foo: (c = 1 + c, 0 / 0 + ((this >= "object") - ("bar" != {}))),
0: (c = 1 + c, 10 >> void (c += 1) << 1)
}[(c = 1 + c, !0)]:
c = 1 + (c += 1), (null >= this) + (parseInt_2 = "function" < 38..toString()) > !1 ? (c = 1 + c,
24..toString()) : (c = 1 + c, 24..toString(), c += 1, 23..toString());
}
var brake71 = 5;
do {
a++, c = 1 + c, !1 * 38..toString() % (38..toString() >>> null) != (foo_2 &= 0) ? (c = 1 + c,
23..toString(), parseInt_2 && (parseInt_2[!1] = !0 - /[a2][^e]+$/ / this)) : (c = 1 + c,
38..toString());
} while (b && --brake71 > 0);
for (var brake73 = 5; a++ + (parseInt_2 && (parseInt_2[new function() {
this[-5] += 0 / 0 ^ (c += 1, "undefined"), this.b += -0 == (parseInt_2 && (parseInt_2.null = void 0 != NaN));
}()] = parseInt_2 && (parseInt_2.b = (24..toString(), 25)) && -1342177255)) && brake73 > 0; --brake73) {
try {
c = 1 + c, 1 == (0 | (parseInt_2 && (parseInt_2.in ^= "bar"))) ? (c = 1 + c, parseInt_2 ^= {} - "foo") : (c = 1 + c,
foo_2 && (foo_2.in += -0));
} catch (t) {
c = 1 + (c = 1 + c), foo_2 = ("number" & 23..toString()) >>> (4 === 24..toString()) >> !1;
}
}
break;
case [ 1 | 0 - (23..toString() < 4), (c += 1) + [ parseInt_2 && parseInt_2[!((24..toString() >> (2 === [ , 0 ].length)) + (2 === [ , 0 ].length) <= (!1 & -5 == []))], foo_2, !function() {
c = 1 + (c = 1 + c), parseInt_2 && (parseInt_2[[ (c = 1 + c, 25 % (!0 >= (void 0 == 24..toString()))), (c = 1 + c,
(2 === [ , 0 ].length || "bar") <= 1), (c = 1 + c, (0 !== 24..toString()) >= (c += 1,
/[a2][^e]+$/) <= ("function" < 38..toString() <= !1)), (c = 1 + c, c += 1, (5 << -4) * (c += 1,
24..toString())), (c = 1 + c, 0 / 0 != (parseInt_2 |= (3 >> (2 === [ , 0 ].length)) / !0)) ].null] += (parseInt_2 && (parseInt_2.var = "bar" + 38..toString())) >>> (-1 << this));
}(), (c += 1) + parseInt_2, [ (c = 1 + c, -0), (c = 1 + c, c += 1, (2 === [ , 0 ].length) << this <= !1), (c = 1 + c,
(0 <= (foo_2 && (foo_2.foo += "object4"))) >> 5 / (parseInt_2 && (parseInt_2.undefined = 0))) ][(c += 1) + a] ].in, (c += 1) + [ (c += 1) + !0, a++ + [ (c = 1 + c,
4 >>> 23..toString() == (c += 1, !0) === (c += 1, -5)), (c = 1 + c, 1 == (!1 & 24..toString() - "foo")), (c = 1 + c,
+(38..toString() === [] | {} / "object")), (c = 1 + c, 24..toString(), foo_2 && (foo_2[--b + void 0] = !1)), (c = 1 + c,
!0 ^ !1 - (this - "bar")) ], 25 + a++ ] ]:
break;
case a++ - 2:
var foo = function(t) {
var n = function(t, a) {
c = 1 + c, parseInt_2 && (parseInt_2.a = (parseInt_2 && (parseInt_2[(c = 1 + c,
!1 * ({} / -3) === (parseInt_2 && (parseInt_2[b = t] ^= 0 != "object" >> {})))] = -2 > (2 === [ , 0 ].length))) - (c += 1,
25)), c = 1 + c, parseInt_2 && (parseInt_2.c = -64), c += 1, foo_2 && (foo_2.b = !1),
foo_2 && (foo_2.undefined = 0 / 0);
}();
c = 1 + (c = 1 + c), foo_2 && (foo_2[a++ + (n && n.null)] += 2 < NaN ^ -2 << {}),
c = 1 + c, c = 1 + c, 24..toString(), c = 1 + c, c = 1 + c, 38..toString(), c = 1 + c,
parseInt_2 && (parseInt_2.a = 0 === "object" >= (2 === [ , 0 ].length));
}();
}
} else {
try {
switch (--b + +function() {
var t = 5;
do {
var n = void 0;
} while (a++ + (void 0 === foo_2) && --t > 0);
for (var r = 5; (c += 1) + (foo_2 && (foo_2.b += -1)) && --r > 0; ) {
try {
var e = 5;
do {
c = 1 + c, c += 1, foo_2 = !0;
} while (c = 1 + c, -0 == (-4 & NaN) && --e > 0);
} finally {
c = 1 + c, parseInt_2 && (parseInt_2[n && n.a] *= (parseInt_2 && (parseInt_2[b = a] += (parseInt_2 && (parseInt_2.var = 23..toString() - -4)) & -4 == 23..toString()),
!0)), c = 1 + c;
}
}
try {
c = 1 + c, 24..toString(), c = 1 + c, 24..toString(), c += 1, 38..toString(), c = 1 + c,
n && (n.in %= (38..toString(), "object")), c = 1 + c;
} catch (t) {
var o = 5;
do {
c = 1 + c;
} while (c = 1 + c, c += 1, ((2 === [ , 0 ].length) < 4 || (2 === [ , 0 ].length || /[a2][^e]+$/) / null) && --o > 0);
}
}()) {
case --b + (a++ ? a++ + ("function" == typeof a) : (c += 1) + ""):
case --b + ++a:
case {
Infinity: a++ + (parseInt_2 && parseInt_2[--b + +((0 >= (parseInt_2 && (parseInt_2[(c = 1 + c,
-1 != (parseInt_2 && (parseInt_2[(c = 1 + c, foo_2 && (foo_2.NaN += (c += 1, 0 >= (!0 < "" / []))))] += !1)) || NaN > 38..toString() ^ "" == [])] += 0))) >>> -1 / 0)] ? (c += 1) + a++ : "boolean" != typeof a_1),
undefined: --b + {
"-2": /[abc4]/.test((c = 1 + c, (0 ^ 23..toString() && !0) << (!0 > (c += 1, 23..toString())) || b || 5).toString()),
Infinity: b = a,
NaN: delete b
}.a,
c: (c += 1) + parseInt_2
}:
case b++:
}
} finally {
try {
var b = void 0;
} catch (t) {
--b, ++a;
for (var brake118 = 5; c = 1 + c, -5 > ("undefined" | 23..toString()) != !0 && --brake118 > 0; ) {
c = 1 + c;
}
var expr120 = (c = 1 + c, foo_2 = !1 > (c += 1, "") >= !0);
for (var key120 in expr120) {
c = 1 + c;
}
}
var brake124 = 5;
do {
var brake125 = 5;
do {} while ((c += 1) + {
set length(t) {
c = 1 + c, parseInt_2 && (parseInt_2.Infinity = 1 ^ (24..toString() & [] && {} >>> 0)),
this.var = !1;
},
"\t": a++ + delete a,
0: b++,
1.5: foo_2 && (foo_2[parseInt_2] += (parseInt_2 = !1) >>> (parseInt_2 && (parseInt_2.b = !0)) >> 0 - "function" / 38..toString())
} && --brake125 > 0);
} while (--b && --brake124 > 0);
}
}
}
}
console.log(null, a, b, c);
```js
original result:
null 16 5 1425
uglified result:
null 16 0 1425
minify(options):
{}
Suspicious compress options:
collapse_vars
conditionals
evaluate
This one could be an uglify bug.
$ bin/uglifyjs -V
uglify-js 3.2.2
$ cat t2571.js | node
null 16 5 1425
$ cat t2571.js | bin/uglifyjs -c | node
null 16 5 1425
$ cat t2571.js | bin/uglifyjs -m | node
null 16 5 1425
$ cat t2571.js | bin/uglifyjs -mc | node
null 16 0 1425
Reduced test case:
var a = 100, b = 10;
try {
var a = function f0(b) {
throw --b + --b;
}(-4);
var parseInt_2 = --b + a;
} catch (e) {
}
console.log(b);
$ cat test.js | node
10
$ uglifyjs test.js -mc | node
9
$ uglifyjs test.js -mc --no-rename | node
10
That's a first. I guess the fuzzer does not presently handle isolating --no-rename failures.
Actually, I think I see where this has gone wrong - and it doesn't have anything to do with rename :sweat:
The b from function f0(b) is preventing collapse_vars from moving a - this fails regardless of rename:
var a = 100, b = 10;
try {
var a = function f0(c) {
throw --c + --c;
}(-4);
var parseInt_2 = --b + a;
} catch (e) {
}
console.log(b);
$ cat test.js | node
10
$ uglifyjs test.js -mc | node
9
$ uglifyjs test.js -mc --no-rename | node
9
Hey, look on the bright side - the fuzzer is still kicking ass and taking names. :-)
Such bugs would be impossible to find without it.
Another test case:
$ echo 'try{var a=A,b=1;throw a}catch(e){console.log(b)}' | node
undefined
$ echo 'try{var a=A,b=1;throw a}catch(e){console.log(b)}' | uglifyjs -c toplevel | node
1
I gotta remember to not write such code!
:-P