Note the absence of suspicious options. Also:
$ cat test.js | node
null 101 98 15
$ uglifyjs test.js -c | node
null 101 98 15
$ uglifyjs test.js -m | node
null 101 98 15
$ uglifyjs test.js -mc | node
null 101 98 4
// original code
// (beautified)
var a = 100, b = 10, c = 0;
--b + a++;
try {
{
var expr3 = b--;
for (var key3 in expr3) {
c = 1 + c;
var Math = expr3[key3];
L202261: {
try {
[ ("bar" | 0) >= (23..toString() != "foo") >= (-3 << -4 | [ , 0 ][1] ^ []), a++ + /[abc4]/.test((--b + {
b: (c = 1 + c, c = c + 1, [ , 0 ][1] << -5 | 24..toString() > 24..toString()),
1.5: (c = 1 + c, a && (a[a && a[--b + [ (c = 1 + c, (24..toString() >> []) + (-0 >>> undefined) << ((a && (a.undefined *= "" && "function")) ^ 22 >>> -0)), (c = 1 + c,
(c = c + 1, 24..toString() << "bar") >> (("undefined" && Infinity) <= (c = c + 1,
"number"))), (c = 1 + c, (5 || 5) === "number" % -2 == 22 <= NaN <= 1 / 22), (c = 1 + c,
(("function" && "object") >= ("foo" >= /[a2][^e]+$/)) - (-2 === 24..toString(),
3 !== "function")) ].NaN]] |= (true & 24..toString()) + (5 ^ -4) >= (2 <= 22 !== ([] ^ 4))))
} || b || 5).toString()), a && a[/[abc4]/.test((--b + {}[(c = 1 + c, void ("foo" > [] && "function" + 0))] || b || 5).toString())], a++ + (([ , 0 ][1] === 2 || 25 === 22) >> (c = c + 1,
0) - ("bar" < "function")), (c = c + 1) + {
a: a++ + ~(c = c + 1, (a && (a[(c = 1 + c, ((a += true - "bar") && 23..toString() === "number") % ("object" !== "number" & 22 !== -3))] = ([ , 0 ].length === 2) <= 23..toString())) >= (a = 4 !== 24..toString())),
Infinity: a++,
in: a++ + (a && a.foo),
length: (c = c + 1) + b--,
NaN: (c = c + 1) + ("number" < /[a2][^e]+$/ != (1 & 0) & (a += "undefined" - 24..toString()) > [] % 23..toString())
} ][+a];
} catch (Infinity) {
switch ({
foo: a++ + []
}) {
case (c = c + 1) + {
3: a++,
0: [ (c = 1 + c, 4 < [ , 0 ][1] > (-3 != 38..toString()) === (1 != 38..toString()) >= ("bar" ^ [])) ],
a: --b + (typeof a_1 === "string"),
NaN: a++ + {
3: (c = 1 + c, "object" >> /[a2][^e]+$/ >= 4 + -0 > (a && (a.foo %= "foo" < null | ("undefined" && 2)))),
foo: (c = 1 + c, ([ , 0 ][1] << NaN != 25 % "foo") + ((a && (a[(c = 1 + c, ((2 === 3) <= "" * -4) >>> (NaN != 24..toString()) % ("function" & false))] = 22 | /[a2][^e]+$/)) === "foo" <= 24..toString())),
foo: (c = 1 + c, -(38..toString() === /[a2][^e]+$/) - ("" === 22 !== [ , 0 ][1] / "")),
"": (c = 1 + c, ("undefined" === [] != ("object" == -1)) <= (38..toString() * -0 & -2 - 25)),
1.5: (c = 1 + c, (a && (a[(c = 1 + c, (2 > "function" >= (a && (a.undefined += -1 << "foo"))) - (c = c + 1,
25 - /[a2][^e]+$/))] = 1 / "function"), "number" >> 23..toString()) >= (22 >= "function" < NaN << []))
}.NaN,
set NaN(a_1) {
L202262: {
}
this.length |= {} << 1 != (-4 !== 38..toString()) != 22 >> true << [] + null;
}
}.a:
if (void b) {
if ({
NaN: (c = 1 + c, (NaN - "function" <= NaN - 24..toString()) >>> ((-4 != true) >>> (3 ^ "number"))),
null: (c = 1 + c, (-0 > ([ , 0 ].length === 2) == -5 >>> 0) * (("number" && true) ^ (38..toString(),
2))),
b: (c = 1 + c, +(25 + 22) & (a = [] | "function") + (-1 <= /[a2][^e]+$/))
}) {
var brake11 = 5;
do {
c = 1 + c, c = c + 1, (Infinity ^ "bar") === (38..toString() | 23..toString());
} while ((c = 1 + c, [] >> [] == (null & null), undefined ^ -0, true - 38..toString()) && --brake11 > 0);
} else {
var brake13 = 5;
L202263: while ((c = 1 + c, (25 ^ 5) + Infinity % undefined < (38..toString() ^ -4) + (false > "bar")) && --brake13 > 0) {
c = 1 + c, a && (a[typeof (--b + (a && a.in))] += (([ , 0 ].length === 2) - -2) * (-0 * 25) <= (true < 22 & "function" + /[a2][^e]+$/));
}
}
} else {
var brake15 = 5;
do {
c = c + 1;
} while ([ (c = 1 + c, (([ , 0 ].length === 2) <= 5 ^ (a && (a.Infinity /= undefined >= 5))) == (0 ^ "undefined") % (-2 << "bar")), (c = 1 + c,
a && (a.NaN = (true / -3 | [ , 0 ][1] > 22) % ((c = c + 1, -5) >>> (a ^= [ , 0 ][1] / ([ , 0 ].length === 2))))) ].foo && --brake15 > 0);
}
if (--b + a--) {
var brake18 = 5;
while ((c = c + 1) + a++ && --brake18 > 0) {
var brake19 = 5;
do {
c = 1 + c, (delete 1 & -2 == -0) !== (!0 === (a = NaN === 22));
} while ((c = 1 + c, a && (a[a && a[--b + {
undefined: (c = 1 + c, (c = c + 1, "object" << 24..toString()) % ((25 != undefined) >> (Infinity,
0)))
}[(c = 1 + c, +(-0 === 25 ^ "function" >> 3))]]] = {} << "function" >= (a = "bar" > 2) | (false << 25) % (5 >>> 23..toString()))) && --brake19 > 0);
}
}
break;
case delete (22 * 22 % (0 % null) != (25 >>> -3 || [ , 0 ].length === 2 & [ , 0 ].length === 2)):
{
var brake21 = 5;
L202264: while ([ (c = 1 + c, a && (a[+(null - -1 == 22 >>> "object" == (25 > true) - ("foo" >>> -3))] += [] >> ([ , 0 ].length === 2) << (23..toString(),
NaN) !== (c = c + 1, "number" !== /[a2][^e]+$/))), (c = 1 + c, (undefined * 25 >= ("function" <= 3)) / ((c = c + 1,
24..toString()) | 0 >> true)) ].null && --brake21 > 0) {
[ (c = 1 + c, (true ^ NaN) + (false || "foo") || -3 % 22 >= (Infinity != 2)) ];
}
}
{
var brake23 = 5;
while ((c = c + 1) + {}.null && --brake23 > 0) {
var a_1 = a++ + ((c = 1 + c, ((/[a2][^e]+$/ && -0) ^ (a_1 && (a_1[(c = 1 + c, true > /[a2][^e]+$/ !== (22 | 1) !== (a_1 = 2 % -5 * ("" - 25)))] = /[a2][^e]+$/ + 22))) % (-0 * "object" || 0 != "bar")) ? (c = 1 + c,
(-0 === 38..toString() && NaN / 23..toString()) ^ {} != undefined !== (-4 & "function")) : (c = 1 + c,
a_1 |= (a_1 && (a_1[--b + delete b] += 24..toString() / 1 || 2 !== [ , 0 ][1])) !== (a_1 = (3 && "bar") / (-4 ^ NaN))));
}
}
case a++ + +a:
break;
case --b + {
NaN: a++ + a++
}.length:
0 === 1 ? a : b;
break;
}
{
var brake26 = 5;
while (--b + ++a && --brake26 > 0) {
switch (--b) {
case +a:
L202265: for (var brake28 = 5; a++ + (b <<= a) && brake28 > 0; --brake28) {
c = 1 + c, (c = c + 1, "bar", undefined) ^ (undefined ^ "object") % ("" + 5);
}
switch (--b) {
case a++ + (1 === 1 ? a : b):
break;
default:
c = 1 + c, a_1 ^= (-3 && {}) / ([] >= -0) <= (25 == 1) - ({} != /[a2][^e]+$/);
case (c = c + 1) + {
"\t": (c = 1 + c, (38..toString() < true | 0 * 38..toString()) - (a_1 && (a_1[delete (([ , 0 ][1] ^ Infinity) > ("object" < -2) && 23..toString() * ([ , 0 ].length === 2) ^ (c = c + 1,
"bar"))] = [ , 0 ][1] > NaN > (-1 & 38..toString()))))
}[(c = 1 + c, (-2 != 2, c = c + 1, -0) < (c = c + 1, true >> 5))]:
c = 1 + c, ("number" >> -0, "bar" >> false) + ([] + [] | false !== -0);
c = 1 + c, ("number" ^ 22 || (a_1 += [ , 0 ][1] && -4)) + ~(a_1 >>>= -1 ^ 25);
break;
case "":
c = 1 + c, -0 >>> NaN < (a_1 && (a_1.in *= "foo" << 38..toString())) && [ , 0 ].length === 2 != "number" == -2 / 0;
c = 1 + c, void (4 >>> NaN === (-2 ^ [ , 0 ][1]));
break;
}
break;
case a++ + /[abc4]/.test((a_1 && a_1.null || b || 5).toString()):
try {
{
}
} catch (a_2) {
c = 1 + c, (([ , 0 ].length === 2) >>> true ^ -2 != /[a2][^e]+$/) < (a_2 && (a_2[{
b: (c = 1 + c, delete (-5 <= 25 < (0 < ([ , 0 ].length === 2)))),
null: (c = 1 + c, ("foo" ^ 22 || -0 / 24..toString()) - ((25 === null) - ("object" > NaN))),
0: (c = 1 + c, (4 ^ 4) <= ({} > ([ , 0 ].length === 2)) == ((24..toString() ^ -0) & (a_1 = 23..toString() <= "function")))
}[(c = 1 + c, (-2 != 4 ^ 1 != -5) >> ((2 | -3) ^ (-3 ^ 25)))]] = (2 | "object") * (a_2 && (a_2.b = 5 !== 25))));
c = 1 + c, a_2 = (c = c + 1, 1) << (/[a2][^e]+$/ >= "number") >>> (a_2 && (a_2[(c = c + 1) + function() {
}()] = -5 - 24..toString() ^ (a_2 && (a_2[(c = 1 + c, -((24..toString() !== 3) << "undefined" + undefined))] *= 22 ^ 0))));
}
break;
case void a:
{
var b = function f0(arguments_2) {
}((c = 1 + c, a_1 && (a_1.in /= (22 << Infinity <= (a_1 && (a_1[(c = 1 + c, (a_1 && (a_1[a++ + b--] += (25 || 23..toString(),
2 < true))) === ((-4 && "bar") == 4 <= "function"))] += "number" > [ , 0 ][1]))) * ~(-1 !== false))));
}
{
var brake41 = 5;
do {
c = c + 1;
} while ((c = c + 1) + void function() {
}() && --brake41 > 0);
}
break;
case (c = c + 1) + +(a_1 && (a_1.b += delete (24..toString() >= [ , 0 ][1]) <= (([] != 3) > 23..toString() + []))):
c = c + 1;
break;
}
}
}
} finally {
var a_1 = -5, a_1 = a++ + ((null >= Infinity) >>> 5 / /[a2][^e]+$/ < (2 <= 5 | false * ([ , 0 ].length === 2)) || 4).toString()[a++ + (b + 1 - .1 - .1 - .1)];
{
var brake45 = 5;
do {
switch (a++ + {
var: --b + true
}.Infinity) {
case a_1 && a_1.length:
if ((c = c + 1) + +b) {
c = c + 1;
}
break;
case (c = c + 1) + a++:
{
var expr49 = {
var: (c = 1 + c, (1 & "function") + ([] ^ 2) != (a_1 += "function" != "function" && ([ , 0 ].length === 2) % 25))
};
for (var key49 in expr49) {
c = 1 + c;
var a_1_2 = expr49[key49];
{
}
}
}
{
var brake51 = 5;
while (a++ + a++ && --brake51 > 0) {
}
}
default:
var foo = a++ + (a_1_2 && a_1_2[(c = 1 + c, ("object" < 38..toString() !== 24..toString() < "undefined") + ("number" === [ , 0 ][1],
25 % 24..toString()))]);
case a_1_2 && a_1_2.var:
{
var expr54 = --b + (a_1_2 && a_1_2.length);
for (var key54 in expr54) {
c = 1 + c;
var a_1 = expr54[key54];
c = c + 1;
}
}
break;
}
} while ((c = c + 1) + {
3: --b + void a
}.length && --brake45 > 0);
}
}
var a_1_2 = a++ + ++b, c_1 = !b;
if (--b + +b) {
for (var brake58 = 5; {
foo: (c = c + 1) + [ b++ ],
var: {
Infinity: --b + (typeof c_2 == "unknown"),
0: b--
}.b,
"": a++ + ++b,
length: +((c_1 && (c_1[1 === 1 ? a : b] = (a_1_2 && (a_1_2.Infinity = null == 22)) & (true || 25))) !== 4 <= 3 < (-5 < Infinity)),
3: (c = c + 1) + (b += a)
}.undefined && brake58 > 0; --brake58) {
var a_1;
}
} else {
var brake60 = 5;
while ((b = a) && --brake60 > 0) {
var expr61 = [ (c = c + 1) + (a_1 && a_1.b), a++ + ({
Infinity: (c = 1 + c, void (5 && /[a2][^e]+$/) < (("undefined" ^ 38..toString()) !== (Infinity == 3))),
null: (c = 1 + c, (("foo" ^ 4) === null << -3) > (-0 << "function" ^ (-3 ^ 5))),
c: (c = 1 + c, true !== NaN != -4 * "" & {} < "undefined" >= ([] < 25)),
3: (c = 1 + c, a_1 && (a_1.in = (c = c + 1, 2, 25) + ((Infinity & /[a2][^e]+$/) == (a_1 <<= 23..toString() >= 5))))
}[(c = 1 + c, c = c + 1, c = c + 1, ~0)] || 5).toString()[(c = c + 1) + [ (c = 1 + c,
(c = c + 1, [ , 0 ][1] >>> "undefined") >> (24..toString() - 2) / ("undefined" + 25)), (c = 1 + c,
1 % 0 + ([ , 0 ].length === 2 !== "") <= "bar" + 22 + (3 <= 38..toString())), (c = 1 + c,
true + Infinity == (c = c + 1, false) === (38..toString() / -0, false ^ {})) ].foo], --b + {
undefined: (c = 1 + c, (null, "bar") * (-1 != 22) >= (2 << /[a2][^e]+$/) % (-5 !== "")),
undefined: (c = 1 + c, (-4 ^ true) & null == null && 23..toString() >> 5 >> (false ^ 4)),
length: (c = 1 + c, ([ , 0 ][1] * 2, 5 ^ 0) & (-5 * -2 || -1 ^ {})),
NaN: (c = 1 + c, 4 != true !== (-3 && [ , 0 ][1]) & (-1 << 25 | (a_1_2 += "function" || -2))),
b: (c = 1 + c, a_1 = /[a2][^e]+$/ >> -0 >> (a_1_2 = 0 << 25) >= ((foo_1 && (foo_1[(c = 1 + c,
foo_1 && (foo_1[typeof undefined_2 != "undefined"] = (a_1 && (a_1[(c = 1 + c, (-3 || NaN) <= 3 + Infinity & ("" ^ 2) >= (5 !== "bar"))] += "number" ^ -3)) - (a_1 >>= 4 ^ 3) < ((foo_1 -= null <= 23..toString()) === true >>> 22)))] += 38..toString() <= true)) | null * ([ , 0 ].length === 2)))
}.foo, [ , (c = 1 + c, c_1 && (c_1[--b + (b + 1 - .1 - .1 - .1)] += (25 >> undefined) + ("undefined" >= "bar") >> (3 && "foo",
false, null))), (c = 1 + c, undefined !== "number" != ("undefined" & "object"),
a_1 = ("bar" != 25) << (2 === Infinity)), (c = 1 + c, 24..toString() / ([ , 0 ].length === 2) > (c_1 = -3 ^ "function") <= (-2 / -1 !== (a_1 && (a_1[(c = 1 + c,
!(-2 == {}) << ([] >= 2 > 2 / 2))] <<= true << [ , 0 ][1])))) ][b = a], (undefined ^ /[a2][^e]+$/ || (2 || -5)) | ("number" || 1) >>> (c_1 && (c_1[(c = 1 + c,
(c_1 += 5 - 1 ^ undefined < "") || (a_1 = -3 & 3) === "foo" << {})] += true / ([ , 0 ].length === 2))) ][a++ + true];
for (var key61 in expr61) {
c = 1 + c;
var foo_1 = expr61[key61];
if ((c = c + 1) + -a) {
+function() {
c = 1 + c, a_1 && (a_1.Infinity += ([] / true && "foo" + -0) * ((a_1 && (a_1[(c = 1 + c,
(NaN * "number" && "object" === 24..toString()) ^ (c_1 = ([ , 0 ].length === 2) / undefined * ("number" && 5)))] = 2 | [ , 0 ].length === 2)) === ([] ^ [ , 0 ].length === 2)));
c = 1 + c, NaN / 2 <= (Infinity >= "object") !== (a_1 && (a_1.in = -5 & 5)) <= (foo_1 && (foo_1[(c = 1 + c,
(0 % "bar" ^ "foo" - 5) > (c = c + 1, 3) + (foo_1 >>= -0 > 5))] += -5 << 22));
}();
}
}
}
}
switch (--b + (((false ^ /[a2][^e]+$/) > (c_1 && (c_1.NaN = 4 / 25))) - ((-0 === 1) >> ([] >> "")))) {
case --b + -((-1 === false && (c = c + 1, 4)) - ((undefined & 5) >= (23..toString() >= false))):
a++ + a--;
--b + [ , a++ + {}[(c = c + 1) + (b = a)], --b + (typeof a_1_2_2 == "object") ][a++ + {
"": --b + -1,
"-2": [ (c = 1 + c, ("", "function", 23..toString() * 38..toString()) >= delete (5 * "number")) ]
}];
break;
default:
{
var brake69 = 5;
L202266: do {
{
var brake70 = 5;
L202267: while (--b + a-- && --brake70 > 0) {
var Infinity = function f1(a_2, bar_2, b_1) {
c = 1 + c, (3 || -5) >> (true ^ []) >> (23..toString() << null && "bar" != []);
c = 1 + c, b_1 = (!null + -4 % 22) * ((null >= 38..toString()) * delete "function");
}(a++ + (b += a));
}
}
} while ((c = c + 1) + {
foo: --b + (a++ + [ (c = 1 + c, (undefined !== -4 ^ (-3 ^ -1)) % ({} !== [] ^ (a_1 && (a_1[(c = 1 + c,
(true + -4 != 2 / /[a2][^e]+$/) >> (a_1 && (a_1.Infinity ^= ([ , 0 ][1] >>> NaN) / (0 + "undefined"))))] = true * undefined)))), (c = 1 + c,
~(("number" && "bar") ^ 0 / 5)) ].foo || a || 3).toString(),
undefined: --b + (-(-0 << Infinity) || ("number" === 23..toString(), 5 != 3)),
0: (c = c + 1) + (b = a),
3: -(((a_1 += NaN | 1) | (3, Infinity)) <= (-2 ^ 5) >> (23..toString() === 25)),
a: [ (c = 1 + c, (("foo", -5) === (NaN == 1)) + (22 < undefined === "object" % 1)), (c = 1 + c,
(3 ^ 1 ^ ("undefined" && /[a2][^e]+$/)) % delete ([] != undefined)) ]
}[b += a] && --brake69 > 0);
}
;
case --b + (c_1 && c_1[a++ + (foo_1 && foo_1[(c = c + 1) + ++a] ? --b + function() {
{
var brake75 = 5;
while ((c = c + 1) + -1 && --brake75 > 0) {
}
}
}() : a++ + [ {
undefined: (c = 1 + c, (24..toString() ^ -5) % ([ , 0 ].length === 2 && 4) + ([ , 0 ].length === 2 == undefined === (foo_1 /= null | "number"))),
"-2": (c = 1 + c, c_1 && (c_1[[]] = (3 !== -5) - -38..toString() + (("foo", 23..toString()) >= (0,
"foo"))))
}.c, 0 === 1 ? a : b, --b + {
undefined: (c = 1 + c, ((a_1 && (a_1[(c = 1 + c, (0 <= "bar") + (-2 >> []) > (("foo" === 1) <= ("undefined" != 38..toString())))] += 5 && "")) - ("object" + -3)) * ("bar" % [ , 0 ][1] % (-1 >>> ([ , 0 ].length === 2)))),
length: (c = 1 + c, (+23..toString() | !"number") + (c_1 ^= -5 < "foo" && -4 ^ 24..toString())),
Infinity: (c = 1 + c, (true === 2 ^ (a_1 = -2 << "undefined")) <= (false + ([ , 0 ].length === 2)) / (a_1 && (a_1[(c = 1 + c,
a_1 += (c = c + 1, /[a2][^e]+$/ << "number") < (-4 / undefined && (a_1 && (a_1[(c = 1 + c,
"number" ^ "bar" ^ "number" / 2 ^ ([ , 0 ][1] === "bar") > ("bar" && {}))] %= ([ , 0 ].length === 2) >= []))))] = "number" <= 24..toString())))
}.a ])]):
break;
case a++ + (1 === 1 ? a : b):
break;
}
}
}
}
} finally {
try {
{
throw (b = a) ? b = a : {
undefined: --b + ({
null: [ (c = 1 + c, (23..toString() >= 4) - (foo_1 && (foo_1[(c = 1 + c, ((3 || Infinity) != (a_1.a *= "foo" == [])) < (c_1[a_1 && a_1[(c = 1 + c,
("foo" != 22) / (false << false) & (/[a2][^e]+$/ >= {} && -2 - -5))]] = 23..toString() & "" | Infinity * undefined))] = [ , 0 ].length === 2 ^ 4)) == (1 << NaN) + (foo_1 += undefined * -0)), , ][(c = 1 + c,
c_1 && (c_1.foo += (NaN % -1 != (c = c + 1, 22)) >>> (25 ^ 3) + ([] === -5)))],
undefined: typeof c,
var: a++ + (b + 1 - .1 - .1 - .1),
"": a++ + typeof parseInt_1,
length: [ (c = 1 + c, (a_1_2 *= 1 < /[a2][^e]+$/) <= null >> true ^ (-3, 25) >= (-5 >= "undefined")), (c = 1 + c,
("undefined" ^ -5) == (a_1 && (a_1.undefined = [ , 0 ].length === 2 ^ "bar")) || undefined << "number" ^ 25 > undefined) ]
} ? (+(4 > "undefined" >= (a_1 && (a_1[(c = 1 + c, (-1 <= "number") - (1 == "") & (c = c + 1,
-0 | /[a2][^e]+$/))] = -1 & -0)) && 1 - null ^ ([], [ , 0 ][1])) || 7).toString()[a++ + ((c = c + 1) + [ (c = 1 + c,
(4 === true ^ (a_1_2 && (a_1_2.undefined += "function" << 38..toString()))) % ("number" + -5 <= - -2)), (c = 1 + c,
(a_1 && (a_1[a++ + "bar"] >>>= false % 23..toString() >= (-0 > Infinity))) - ("number" % 5 !== (a_1 && (a_1[(c = 1 + c,
(24..toString() ^ -3) + (25 || -0) - ((c = c + 1, "bar") !== (a_1 && (a_1[(c = 1 + c,
null - 38..toString() >> undefined / "number" >> (foo_1 && (foo_1.b = "bar" | /[a2][^e]+$/)) + (25 || [ , 0 ].length === 2))] += "object" / -4))))] = 24..toString() < -0)))), (c = 1 + c,
((a_1 && (a_1.c &= "bar" + -0)) <= -4 % "bar") >> ([] == -3 || a_1 && (a_1[(c = 1 + c,
((1, [ , 0 ][1]) >= (23..toString() === 23..toString())) << (c = c + 1, 24..toString() - [ , 0 ][1]))] = 23..toString() >= Infinity))), (c = 1 + c,
(-2 === 24..toString() || "undefined" < -5) < (c = c + 1, /[a2][^e]+$/, 2)) ][(c = 1 + c,
(a_1 && (a_1[a++ + (0 === 1 ? a : b)] -= 0 - 25 ^ void "foo")) | (true | 1) << ("" & -5))] || 7).toString()[-a]] : a++ + (typeof foo_2 != "string")),
null: -b
}[2];
}
} catch (foo_2) {
try {
L202268: {
{
throw (null + -3 >= (null < 0)) / ({} <= undefined === (a_1 = undefined === /[a2][^e]+$/));
}
}
} catch (a) {
c = c + 1;
--b + (foo_2 && foo_2[!function a_2() {
if (c = 1 + c, ("number" << 24..toString() >>> (4 == [])) - (/[a2][^e]+$/ >>> true) % (([ , 0 ].length === 2) < NaN)) {
c = 1 + c, (a_1 && (a_1.null %= ("bar" == "object") - ("number" && "function"))) < ({} !== {} !== ("bar" ^ 24..toString()));
}
{
var brake88 = 5;
do {
c = 1 + c, (foo_1 && (foo_1.in -= "bar" | -4), null * [ , 0 ][1]) % (Infinity / 25 * (22 << "function"));
} while ((c = 1 + c, ([ , 0 ].length === 2 ^ {}) & NaN - -0 ^ (-5 | Infinity) << NaN % 24..toString()) && --brake88 > 0);
}
}()]);
}
}
(function() {
try {
{
var brake92 = 5;
L202269: while (--b + delete b && --brake92 > 0) {
if (--b + (typeof foo_1 != "crap")) {
try {
{
var brake95 = 5;
L202270: do {
{
return c = 1 + c, (undefined != null) / ("function" ^ 24..toString()) !== ~(a_1 && (a_1[(c = 1 + c,
((foo_1.NaN += 0 ^ -1) == -24..toString()) * ((3, 1) ^ "bar" > -0))] = 3 != 38..toString()));
}
} while ({
in: (c = 1 + c, {} % Infinity / (-5 != -4) >>> (void 22 << ("bar" | {}))),
in: (c = 1 + c, null % 5 - (a_1 && (a_1.in /= "" >> "")) !== [] << [ , 0 ][1] > (0,
22)),
a: (c = 1 + c, (-1 ^ 25 | 25 !== -0) < ((undefined | -0) & "bar" * 5))
} && --brake95 > 0);
}
} catch (bar_2) {
try {
c = 1 + c, (("bar", 2) && "function" !== /[a2][^e]+$/) != (a_1 && (a_1[(c = 1 + c,
(24..toString() == [] != (c = c + 1, Infinity)) <= (c = c + 1, 0) >> (undefined << ""))] = true << -0)) < 22 >> true;
} finally {
}
{
var brake99 = 5;
L202271: while ((c = 1 + c, (a_1_2 && (a_1_2[a++ + [ (c = 1 + c, foo_1 += (c = c + 1,
-0 + -0) === (false <= -0) + (38..toString() ^ 2)), , (c = 1 + c, (a_1 = undefined & "number") ^ 1 & "foo" ^ {} / ([ , 0 ].length === 2) + ({} != false)) ]] = (c_1 += "number" != false) % ~-5)) ^ ("undefined" >= 1 ^ "bar" % [ , 0 ][1])) && --brake99 > 0) {
c = 1 + c, (("undefined", 23..toString()) || "foo" < -5) != (2 / "function" & (-4 & /[a2][^e]+$/));
}
}
} finally {
c = c + 1;
c = c + 1;
}
} else {}
}
}
} catch (b_1) {
if (--b + (typeof undefined_2 != "string")) {
switch (a++ + -(((b_1 && (b_1[(c = 1 + c, (c_1 && (c_1[--b + (1 === 1 ? a : b)] /= (5 !== false) / +2)) == ((c = c + 1,
3) != undefined <= []))] = 5 & [ , 0 ].length === 2)) > {} >> []) >>> ((foo_1 && (foo_1[(c = 1 + c,
(([] === null) - (-2 >>> "bar")) % ((foo_1 && (foo_1[(c = 1 + c, (-1 != 25) >> Infinity % 2 == (c = c + 1,
"object") > (NaN ^ {}))] = -2 === [])) ^ 38..toString() << 24..toString()))] = {} % -3)) === ("bar" || null)))) {
default:
c = 1 + c, (("" !== "bar") < ("bar" ^ -4)) * (/[a2][^e]+$/ ^ 1 && -4 - -0);
case --b + b--:
{
var expr107 = (c = 1 + c, ([ , 0 ][1] || "object") > ("" === null) ^ {} <= [] != ("" ^ ""));
for (var key107 in expr107) {
c = 1 + c;
var a_1_2 = expr107[key107];
c = 1 + c, delete ("function" < ([ , 0 ].length === 2)) >>> (-0 * NaN >> (-2 !== 5));
}
}
break;
case a++ + {
length: (c = 1 + c, 24..toString() * -4 >>> ([ , 0 ].length === 2) - Infinity != (-0 != -4 !== ([],
[]))),
var: (c = 1 + c, ((c_1 = "foo" == 3) && ("function" || null)) == (2 | 23..toString()) > "object" >>> 5),
length: (c = 1 + c, (a_1 && (a_1.foo += -5 >> 2 ^ 24..toString() >= "function")) < (25 === 23..toString()) >>> (3 <= 4)),
a: (c = 1 + c, "function" >>> [] <= undefined << 24..toString() | ("function" ^ Infinity) != 4 * ""),
undefined: (c = 1 + c, (22 != 23..toString()) < (Infinity ^ 25) != ([] * [] === ([ , 0 ].length === 2 && 4)))
}[--b + {
NaN: (c = 1 + c, false * -4 * (24..toString(), 24..toString()) || (-0 || 2) | undefined ^ {}),
a: (c = 1 + c, (undefined, null) % (-1 % -1) & ({} & -0) - (-0 && "foo")),
in: (c = 1 + c, -0 >>> [] !== (undefined ^ "object") || -4 / -3 / ("bar" <= "object")),
1.5: (c = 1 + c, (([ , 0 ].length === 2) - "") * (4 <= 25) || ("undefined" && -1) * ("number" + "bar"))
}.var]:
c = 1 + c, ("number" >= ([ , 0 ].length === 2) ^ 23..toString() !== 4) >= (undefined ^ true) % (null | {});
;
break;
case --b + ++a:
try {
c = 1 + c, (a_1 += 5 && -5, NaN <= 5) + (([] && 3) | "bar" - null);
} catch (foo_1) {
} finally {
}
try {
c = 1 + c, 23..toString() >>> NaN < {} * [ , 0 ][1] !== ~(a_1_2 = 3 << -3);
} finally {
}
break;
}
}
L202272: {
a++ + /[abc4]/.test(((c = 1 + c, ("object" && /[a2][^e]+$/) << (c = c + 1, []) > (NaN * null < (5 ^ /[a2][^e]+$/))) || b || 5).toString());
for (var brake117 = 5; a-- && brake117 > 0; --brake117) {
try {
c = 1 + c, /[a2][^e]+$/ / Infinity <= (-4 <= []) <= ((a_1_2 |= 5 ^ "bar") <= (a_1_2 = 25 * "object"));
} catch (a) {
} finally {
}
}
{
var expr120 = a++ + (c = 1 + c, (-1, -0) == ([] || -2) && "" <= -4 != -3 / "object");
for (var key120 in expr120) {
{
var expr121 = (c = 1 + c, true * [ , 0 ][1] * (-1 >= -4) & (a_1 <<= /[a2][^e]+$/ >= false == ("object" && false)));
for (var key121 in expr121) {
c = 1 + c, (2 + "function" ^ 5 != /[a2][^e]+$/) << (delete 5 << (25 > 22));
}
}
}
}
}
}
})();
}
console.log(null, a, b, c);
```js
// uglified code
// (beautified)
var a = 100, b = 10, c = 0;
--b, a++;
try {
var expr3 = b--;
for (var key3 in expr3) {
c = 1 + c;
var Math = expr3[key3];
try {
23..toString(), a++, /[abc4]/.test((--b + {
b: (c = 1 + c, c += 1, [ , 0 ][1] << -5 | 24..toString() > 24..toString()),
1.5: (c = 1 + c, a && (a[a && a[--b + [ (c = 1 + c, 0 + (24..toString() >> []) << (22 ^ (a && (a.undefined *= "")))), (c = 1 + c,
c += 1, 24..toString() << "bar" >> (Infinity <= (c += 1, "number"))), (c = 1 + c,
!1), (c = 1 + c, !1 - (24..toString(), !0)) ].NaN]] |= (!0 & 24..toString()) - 7 >= (!0 !== (4 ^ []))))
} || b || 5).toString()), a && a[/[abc4]/.test((--b + {}[void (c = 1 + c)] || b || 5).toString())],
a++, c += 1, c += 1, c += 1, ++a && (a[(c = 1 + c, ((a += NaN) && "number" === 23..toString()) % 1)] = (2 === [ , 0 ].length) <= 23..toString()),
a = 4 !== 24..toString(), a++, ++a && a.foo, c += 1, b--, c += 1, a += "undefined" - 24..toString(),
23..toString();
} catch (Infinity) {
switch ({
foo: a++ + []
}) {
case (c += 1) + {
3: a++,
0: [ (c = 1 + c, 4 < [ , 0 ][1] > (-3 != 38..toString()) == (1 != 38..toString()) >= ("bar" ^ [])) ],
a: --b + ("string" == typeof a_1),
NaN: a++ + {
3: (c = 1 + c, !1 > (a && (a.foo %= 2))),
foo: (c = 1 + c, ([ , 0 ][1] << NaN != NaN) + ((a && (a[(c = 1 + c, !0 >>> (NaN != 24..toString()) % 0)] = 22)) === "foo" <= 24..toString())),
foo: (c = 1 + c, -(38..toString() === /[a2][^e]+$/) - (!1 !== [ , 0 ][1] / "")),
"": (c = 1 + c, ("undefined" === [] != 0) <= (-0 * 38..toString() & -27)),
1.5: (c = 1 + c, a && (a[(c = 1 + c, (!1 >= (a && (a.undefined += -1))) - (c += 1,
NaN))] = NaN), "number" >> 23..toString() >= (!1 < NaN << []))
}.NaN,
set NaN(c) {
this.length |= {} << 1 != (-4 !== 38..toString()) != 11 << [] + null;
}
}.a:
var brake13, brake11, brake15 = 5;
do {
c += 1;
} while ([ (c = 1 + c, 0 == ((2 === [ , 0 ].length) <= 5 ^ (a && (a.Infinity /= !1)))), (c = 1 + c,
a && (a.NaN = (!0 / -3 | [ , 0 ][1] > 22) % (c += 1, -5 >>> (a ^= [ , 0 ][1] / (2 === [ , 0 ].length))))) ].foo && --brake15 > 0);
if (--b + a--) {
for (var brake18 = 5; (c += 1) + a++ && --brake18 > 0; ) {
var brake19 = 5;
do {
c = 1 + c, a = !1;
} while (c = 1 + c, a && (a[a && a[--b + {
undefined: (c = 1 + c, c += 1, ("object" << 24..toString()) % 1)
}[(c = 1 + c, 0)]]] = {} << "function" >= (a = !1) | 0 % (5 >>> 23..toString())) && --brake19 > 0);
}
}
break;
case !0:
for (var brake21 = 5; [ (c = 1 + c, a && (a[0] += [] >> (2 === [ , 0 ].length) << (23..toString(),
NaN) !== (c += 1, !0))), (c = 1 + c, !1 / (0 | (c += 1, 24..toString()))) ].null && --brake21 > 0; ) {
c = 1 + c;
}
for (var brake23 = 5; (c += 1) + {}.null && --brake23 > 0; ) {
var a_1 = a++ + (c = 1 + c, (-0 ^ (a_1 && (a_1[(c = 1 + c, !0 !== (a_1 = -50))] = /[a2][^e]+$/ + 22))) % !0 ? (c = 1 + c,
(-0 === 38..toString() && NaN / 23..toString()) ^ void 0 != {} !== 0) : (c = 1 + c,
a_1 |= (a_1 && (a_1[--b + delete b] += 24..toString() / 1 || 2 !== [ , 0 ][1])) !== (a_1 = NaN)));
}
case a++ + +a:
case --b + {
NaN: a++ + a++
}.length:
}
for (var brake26 = 5; --b + ++a && --brake26 > 0; ) {
switch (--b) {
case +a:
for (var brake28 = 5; a++ + (b <<= a) && brake28 > 0; --brake28) {
c = 1 + c, c += 1;
}
switch (--b) {
case a++ + a:
break;
default:
c = 1 + c, a_1 ^= {} / ([] >= -0) <= !1 - ({} != /[a2][^e]+$/);
case (c += 1) + {
"\t": (c = 1 + c, (38..toString() < !0 | 0 * 38..toString()) - (a_1 && (a_1[(([ , 0 ][1] ^ Infinity) > !1 && (23..toString(),
c += 1), !0)] = [ , 0 ][1] > NaN > (-1 & 38..toString()))))
}[(c = 1 + c, c += 1, -0 < (c += 1, 0))]:
c = 1 + (c = 1 + c), a_1 >>>= -26;
break;
case "":
c = 1 + c, a_1 && (a_1.in *= "foo" << 38..toString()), c = 1 + c;
}
break;
case a++ + /[abc4]/.test((a_1 && a_1.null || b || 5).toString()):
break;
case void 0:
var b = (c = 1 + c, void (a_1 && (a_1.in /= -2 * (22 << Infinity <= (a_1 && (a_1[(c = 1 + c,
!1 === (a_1 && (a_1[a++ + b--] += !1)))] += "number" > [ , 0 ][1])))))), brake41 = 5;
do {
c += 1;
} while ((c += 1) + void 0 && --brake41 > 0);
break;
case (c += 1) + +(a_1 && (a_1.b += (24..toString(), !0 <= ((3 != []) > 23..toString() + [])))):
c += 1;
}
}
} finally {
var a_1 = -5, a_1 = a++ + ((null >= Infinity) >>> NaN < (!0 | !1 * (2 === [ , 0 ].length)) || 4).toString()[a++ + (b + 1 - .1 - .1 - .1)], brake45 = 5;
do {
switch (a++ + {
var: --b + !0
}.Infinity) {
case a_1 && a_1.length:
(c += 1) + +b && (c += 1);
break;
case (c += 1) + a++:
var expr49 = {
var: (c = 1 + c, 0 + (2 ^ []) != (a_1 += !1))
};
for (var key49 in expr49) {
c = 1 + c;
var a_1_2 = expr49[key49];
}
for (var brake51 = 5; a++ + a++ && --brake51 > 0; ) {}
default:
var foo = a++ + (a_1_2 && a_1_2[(c = 1 + c, ("object" < 38..toString() != 24..toString() < "undefined") + 25 % 24..toString())]);
case a_1_2 && a_1_2.var:
var expr54 = --b + (a_1_2 && a_1_2.length);
for (var key54 in expr54) {
c = 1 + c;
var a_1 = expr54[key54];
c += 1;
}
}
} while ((c += 1) + {
3: --b + void 0
}.length && --brake45 > 0);
}
var a_1_2 = a++ + ++b, c_1 = !b;
if (--b + +b) {
for (var brake58 = 5; {
foo: (c += 1) + [ b++ ],
var: {
Infinity: --b + ("unknown" == typeof c_2),
0: b--
}.b,
"": a++ + ++b,
length: +((c_1 && (c_1[a] = !0 & (a_1_2 && (a_1_2.Infinity = !1)))) !== !1 < (-5 < Infinity)),
3: (c += 1) + (b += a)
}.undefined && brake58 > 0; --brake58) {
var a_1;
}
} else {
for (var brake60 = 5; (b = a) && --brake60 > 0; ) {
var expr61 = [ (c += 1) + (a_1 && a_1.b), a++ + ({
Infinity: (c = 1 + c, void 0 < (("undefined" ^ 38..toString()) !== (3 == Infinity))),
null: (c = 1 + c, !0),
c: (c = 1 + c, !0 & {} < "undefined" >= ([] < 25)),
3: (c = 1 + c, a_1 && (a_1.in = (c += 1, 25 + ((Infinity & /[a2][^e]+$/) == (a_1 <<= 23..toString() >= 5)))))
}[(c = 1 + c, c += 1, c += 1, -1)] || 5).toString()[(c += 1) + [ (c = 1 + c, c += 1,
[ , 0 ][1] >>> "undefined" >> (24..toString() - 2) / "undefined25"), (c = 1 + c,
NaN + (2 === [ , 0 ].length !== "") <= "bar22" + (3 <= 38..toString())), (c = 1 + c,
!0 + Infinity == (c += 1, !1) === (38..toString(), !1 ^ {})) ].foo], --b + {
undefined: (c = 1 + c, !1),
undefined: (c = 1 + c, 23..toString() >> 5 >> 4),
length: (c = 1 + c, 0),
NaN: (c = 1 + c, !0 !== [ , 0 ][1] & (-1 << 25 | (a_1_2 += "function"))),
b: (c = 1 + c, a_1 = 0 >> (a_1_2 = 0) >= ((foo_1 && (foo_1[(c = 1 + c, foo_1 && (foo_1["undefined" != typeof undefined_2] = (a_1 && (a_1[(c = 1 + c,
-3 <= 3 + Infinity & !0)] += -3)) - (a_1 >>= 7) < (0 == (foo_1 -= null <= 23..toString()))))] += 38..toString() <= !0)) | null * (2 === [ , 0 ].length)))
}.foo, [ , (c = 1 + c, c_1 && (c_1[--b + (b + 1 - .1 - .1 - .1)] += 26)), (c = 1 + c,
a_1 = !0 << (2 === Infinity)), (c = 1 + c, 24..toString() / (2 === [ , 0 ].length) > (c_1 = -3) <= (2 !== (a_1 && (a_1[(c = 1 + c,
!(-2 == {}) << ([] >= 2 > 1))] <<= !0 << [ , 0 ][1])))) ][b = a], 2 | "number" >>> (c_1 && (c_1[(c = 1 + c,
(c_1 += 4) || (a_1 = 1) == "foo" << {})] += !0 / (2 === [ , 0 ].length))) ][a++ + !0];
for (var key61 in expr61) {
c = 1 + c;
var foo_1 = expr61[key61];
(c += 1) + -a && (c = 1 + c, a_1 && (a_1.Infinity += ([] / !0 && "foo0") * ((a_1 && (a_1[(c = 1 + c,
NaN ^ (c_1 = (2 === [ , 0 ].length) / void 0 * 5))] = 2 | 2 === [ , 0 ].length)) === ([] ^ 2 === [ , 0 ].length))),
c = 1 + c, a_1 && (a_1.in = 1), foo_1 && (foo_1[(c = 1 + c, 0 > (c += 1, 3 + (foo_1 >>= !1)))] += -5 << 22));
}
}
}
switch (--b + ((0 > (c_1 && (c_1.NaN = .16))) - (!1 >> ([] >> "")))) {
case --b - (!1 - (0 >= (23..toString() >= !1))):
a++, a--, --b, b = ++a, --b, a++, --b, c = 1 + (c += 1), 23..toString(), 38..toString();
break;
default:
var brake69 = 5;
do {
for (var brake70 = 5; --b + a-- && --brake70 > 0; ) {
var Infinity = function(a, t, n) {
c = 1 + c, 23..toString(), c = 1 + c, 38..toString();
}((a++, b += a));
}
} while ((c += 1) + {
foo: --b + (a++ + [ (c = 1 + c, 3 % ({} !== [] ^ (a_1 && (a_1[(c = 1 + c, !0 >> (a_1 && (a_1.Infinity ^= ([ , 0 ][1] >>> NaN) / "0undefined")))] = NaN)))), (c = 1 + c,
-1) ].foo || a || 3).toString(),
undefined: --b + (-(-0 << Infinity) || (23..toString(), !0)),
0: (c += 1) + (b = a),
3: -(((a_1 += 1) | Infinity) <= -5 >> (25 === 23..toString())),
a: [ (c = 1 + c, 0), (c = 1 + c, 0) ]
}[b += a] && --brake69 > 0);
case --b + (c_1 && c_1[a++ + (foo_1 && foo_1[(c += 1) + ++a] ? --b + function() {
for (var a = 5; (c += 1) + -1 && --a > 0; ) {}
}() : a++ + [ {
undefined: (c = 1 + c, (-5 ^ 24..toString()) % (2 === [ , 0 ].length && 4) + (2 === [ , 0 ].length == void 0 === (foo_1 /= 0))),
"-2": (c = 1 + c, c_1 && (c_1[[]] = !0 - -38..toString() + (23..toString() >= "foo")))
}.c, b, --b + {
undefined: (c = 1 + c, ((a_1 && (a_1[(c = 1 + c, !1 + (-2 >> []) > (!1 <= ("undefined" != 38..toString())))] += "")) - "object-3") * ("bar" % [ , 0 ][1] % (-1 >>> (2 === [ , 0 ].length)))),
length: (c = 1 + c, (!1 | +23..toString()) + (c_1 ^= !1)),
Infinity: (c = 1 + c, (!1 ^ (a_1 = -2)) <= (!1 + (2 === [ , 0 ].length)) / (a_1 && (a_1[(c = 1 + c,
a_1 += (c += 1, !1))] = "number" <= 24..toString())))
}.a ])]):
case a++ + a:
}
}
} finally {
try {
throw (b = a) ? b = a : {
undefined: --b + (c = 1 + c, 23..toString(), foo_1 && (foo_1[(c = 1 + c, (3 != (a_1.a *= "foo" == [])) < (c_1[a_1 && a_1[(c = 1 + c,
1 / 0 & (/[a2][^e]+$/ >= {} && 3))]] = "" & 23..toString() | void 0 * Infinity))] = 2 === [ , 0 ].length ^ 4),
foo_1 += NaN, c = 1 + c, c_1 && (c_1.foo += (NaN != (c += 1, 22)) >>> 26 + (-5 === [])),
a++, a++, c = 1 + c, a_1_2 *= !1, c = 1 + c, a_1 && (a_1.undefined = 2 === [ , 0 ].length ^ "bar"),
(+(!1 >= (a_1 && (a_1[(c = 1 + c, 0 & (c += 1, 0))] = 0)) && 1 ^ [ , 0 ][1]) || 7).toString()[a++ + ((c += 1) + [ (c = 1 + c,
(!1 ^ (a_1_2 && (a_1_2.undefined += "function" << 38..toString()))) % !1), (c = 1 + c,
(a_1 && (a_1[a++ + "bar"] >>>= !1 % 23..toString() >= (-0 > Infinity))) - (NaN !== (a_1 && (a_1[(c = 1 + c,
25 + (-3 ^ 24..toString()) - (c += 1, "bar" !== (a_1 && (a_1[(c = 1 + c, null - 38..toString() >> NaN >> (foo_1 && (foo_1.b = 0)) + 25)] += NaN))))] = 24..toString() < -0)))), (c = 1 + c,
((a_1 && (a_1.c &= "bar0")) <= NaN) >> (-3 == [] || a_1 && (a_1[(c = 1 + c, ([ , 0 ][1] >= (23..toString() === 23..toString())) << (c += 1,
24..toString() - [ , 0 ][1]))] = 23..toString() >= Infinity))), (c = 1 + c, (-2 === 24..toString() || !1) < (c += 1,
2)) ][(c = 1 + c, 1 | (a_1 && (a_1[a++ + b] -= -25)))] || 7).toString()[-a]]),
null: -b
}[2];
} catch (a) {
try {
throw !1 / ({} <= void 0 == (a_1 = !1));
} catch (a) {
c += 1, --b, a && a[!function() {
c = 1 + c, ("number" << 24..toString() >>> (4 == [])) - 0 % ((2 === [ , 0 ].length) < NaN) && (c = 1 + c,
a_1 && (a_1.null %= NaN), 24..toString());
var a = 5;
do {
c = 1 + c, foo_1 && (foo_1.in -= -4);
} while (c = 1 + c, NaN & (2 === [ , 0 ].length ^ {}) ^ (-5 | Infinity) << NaN % 24..toString() && --a > 0);
}()];
}
}
!function() {
try {
for (var t = 5; --b + delete b && --t > 0; ) {
if (--b + ("crap" != typeof foo_1)) {
try {
var n = 5;
do {
return c = 1 + c, !1 / ("function" ^ 24..toString()) != ~(a_1 && (a_1[(c = 1 + c,
1 * ((foo_1.NaN += -1) == -24..toString()))] = 3 != 38..toString()));
} while (c = 1 + c, c = 1 + c, a_1 && (a_1.in /= 0), c = 1 + c, --n > 0);
} catch (t) {
try {
c = 1 + c, a_1 && (a_1[(c = 1 + c, (24..toString() == [] != (c += 1, Infinity)) <= (c += 1,
0))] = 1);
} finally {}
for (var o = 5; c = 1 + c, !1 ^ (e && (e[a++ + [ (c = 1 + c, foo_1 += (c += 1, -0 === !0 + (2 ^ 38..toString()))), , (c = 1 + c,
0 ^ (a_1 = 0) ^ {} / (2 === [ , 0 ].length) + (0 != {})) ]] = (c_1 += !0) % 4)) ^ "bar" % [ , 0 ][1] && --o > 0; ) {
c = 1 + c, 23..toString();
}
} finally {
c += 1, c += 1;
}
}
}
} catch (t) {
if (--b + ("string" != typeof undefined_2)) {
switch (a++ - (((t && (t[(c = 1 + c, (c_1 && (c_1[--b + a] /= .5)) == (c += 1, 3 != void 0 <= []))] = 5 & 2 === [ , 0 ].length)) > {} >> []) >>> ("bar" === (foo_1 && (foo_1[(c = 1 + c,
((null === []) - 4294967294) % ((foo_1 && (foo_1[(c = 1 + c, !0 >> Infinity % 2 == (c += 1,
"object" > (NaN ^ {})))] = -2 === [])) ^ 38..toString() << 24..toString()))] = {} % -3))))) {
default:
c = 1 + c;
case --b + b--:
var r = (c = 1 + c, ([ , 0 ][1] || "object") > !1 ^ {} <= [] != 0);
for (var i in r) {
c = 1 + c;
var e = r[i];
c = 1 + c;
}
break;
case a++ + {
length: (c = 1 + c, -4 * 24..toString() >>> (2 === [ , 0 ].length) - Infinity != (!0 !== [])),
var: (c = 1 + c, ((c_1 = !1) && "function") == (2 | 23..toString()) > 0),
length: (c = 1 + c, (a_1 && (a_1.foo += -2 ^ 24..toString() >= "function")) < (25 === 23..toString()) >>> !0),
a: (c = 1 + c, "function" >>> [] <= void 0 << 24..toString() | 0 != ("function" ^ Infinity)),
undefined: (c = 1 + c, (22 != 23..toString()) < (25 ^ Infinity) != ([] * [] === (2 === [ , 0 ].length && 4)))
}[--b + {
NaN: (c = 1 + c, -0 * (24..toString(), 24..toString()) || 2 | void 0 ^ {}),
a: (c = 1 + c, NaN & (-0 & {}) - -0),
in: (c = 1 + c, -0 >>> [] != 0 || -4 / -3 / !0),
1.5: (c = 1 + c, !0 * ((2 === [ , 0 ].length) - "") || NaN)
}.var]:
c = 1 + c, 23..toString();
break;
case --b + ++a:
try {
c = 1 + c, a_1 += -5;
} catch (c) {}
try {
c = 1 + c, 23..toString(), e = 3 << -3;
} finally {}
}
}
a++, /[abc4]/.test((c = 1 + c, /[a2][^e]+$/ << (c += 1, []) > !1 || b || 5).toString());
for (var _ = 5; a-- && _ > 0; --_) {
try {
c = 1 + c, e |= 5, e = NaN;
} catch (c) {}
}
var f = a++ + (c = 1 + c, -0 == ([] || -2) && !0);
for (var g in f) {
var S = (c = 1 + c, !0 * [ , 0 ][1] * !0 & (a_1 <<= !0));
for (var l in S) {
c = 1 + c;
}
}
}
}();
}
console.log(null, a, b, c);
```js
original result:
null 101 98 15
uglified result:
null 101 98 4
minify(options):
{}
Narrowed test case:
$ cat test.js
var a = 1, c = 0;
try {
} catch (e) {
a[a] = 0;
}
try {
throw a;
} catch (e) {
try {
throw 0;
} catch (a) {
(e && e[!function() {
c++;
}()]);
}
}
console.log(null, a, c);
$ cat test.js | node
null 1 1
$ uglifyjs test.js -m | node
null 1 0
$ git checkout v2.8.16
$ cat 2120.js | bin/uglifyjs -m | node
null 1 1
$ git checkout v2.8.17
$ cat 2120.js | bin/uglifyjs -m | node
null 1 0
regression introduced in 65da9acce6bd2548e5ffc7f35527ff62ff3f2fdd
screw_ie8 strikes again!
$ bin/uglifyjs -V
uglify-js 3.0.18
$ cat 2120.js | node
null 1 1
$ cat 2120.js | bin/uglifyjs -m ie8=1 | node
null 1 1
$ cat 2120.js | bin/uglifyjs -m ie8=0 | node
null 1 0
@kzc just to confirm, is 2120.js the input from ufuzz.js or my reduced test case from https://github.com/mishoo/UglifyJS2/issues/2120#issuecomment-309278747 ?
2120.js is same as test.js in https://github.com/mishoo/UglifyJS2/issues/2120#issuecomment-309278747