Closed
Description
// original code
// (beautified)
var _calls_ = 10, a = 100, b = 10, c = 0;
typeof a == "function" && --_calls_ >= 0 && a(a && (a.done %= ([ , 0 ][1] ^ 25) >>> (c = c + 1,
/[a2][^e]+$/) == (a = (a = -3 ^ "bar") != "b" + [])));
{
var b_2 = function f0() {
async function* f1(b_1, yield_1, a_2) {
switch ([ {
"": (c = 1 + c, ((yield_1 -= NaN + "undefined") ^ (yield_1 && (yield_1.then = "object" % -2))) <= ((-4,
-4) == "undefined" % []))
}, -3 ][(c = c + 1) + +(([ , 0 ].length === 2) - -3 || "c" > "c" || yield_1 && (yield_1[--b + (typeof f2 == "function" && --_calls_ >= 0 && f2(23..toString(), ..."" + yield_1))] = +"bar" + ("object" > Infinity)))]) {
default:
case new function a_2() {
this[b--] = (c = c + 1, [ , 0 ][1] + "function") != (5 !== -1 & (a_2 && (a_2[c = 1 + c,
(Infinity >= 24..toString()) - "number" % false, b_1 |= -1 !== "bar" !== NaN * "c"] <<= this >= "function")));
this.get += -1 >>> -5 >>> (-2 >> /[a2][^e]+$/) != ((yield_1 |= "" ^ -1) | 38..toString() / false);
{
}
}():
{
c = 1 + c, yield_1 *= ("foo" + "" >>> (-5 === 22)) * ((-2 <= [ , 0 ][1]) * ({} <= NaN));
}
break;
case (c = c + 1) + (b_1 && b_1[("object" == 24..toString() ^ (/[a2][^e]+$/ | -0)) & ((3 ^ "undefined") & 5 > "a")]):
return;
c = c + 1;
break;
case function await_1(a) {}:
break;
break;
}
if (b = a) {
try {
for (var brake13 = 5; a++ + (typeof a_2 == "function" && --_calls_ >= 0 && a_2("c", (c = 1 + c,
(undefined >= this) % ("function" % "foo") || 1 !== -5 == false <= -3))) && brake13 > 0; --brake13) {
return c = 1 + c, void (("foo" < null) * (-5 ^ -1));
}
} catch (c) {
c = c + 1;
var b_1;
} finally {
L12638: {
}
if (c = 1 + c, b_1 += (false < "" || NaN >>> 1) >= ("object" == ([ , 0 ].length === 2)) >> (2 < 38..toString())) {
c = 1 + c, -2 < true == "a" % Infinity === (-0 === 25) < (undefined != undefined);
} else {
c = 1 + c, !(c = c + 1, 23..toString() !== "bar");
}
{
var expr21 = (c = 1 + c, ("undefined" >= [] ?? /[a2][^e]+$/ !== 0) > (5 + ([ , 0 ].length === 2)) * (-5 >>> -5));
L12639: for (var [ key21 ] in expr21) {
c = 1 + c;
var bar_1 = expr21[key21];
c = 1 + c, ~((2 ?? 22) !== (yield_1 && (yield_1.set = "bar" < Infinity)));
}
}
}
}
}
var NaN_2 = f1((c = c + 1) + -((-1 ?? 3) / (0 << "object") + (NaN_2 && (NaN_2.foo = (null && "a") | 1 / Infinity)))).next();
function f2() {
var b = --b + void function a_2() {
{
}
var b_2;
{
var brake26 = 5;
do {
c = 1 + c, -1 % "object" < (c = c + 1, 5) != (null ^ 0 ^ [ , 0 ][1] - -2);
} while ((c = 1 + c, (b && (b[--b + void function() {
}()] >>= (38..toString() << true) / ("bar" ^ 1))) / (5 - 38..toString() == -"bar")) && --brake26 > 0);
}
{
var brake28 = 5;
do {
c = 1 + c, b && (b[(c = c + 1) + (0 in [ , (c = 1 + c, (-4 !== 5) <= (3 < "number") > (b && (b.var |= -5 << "function" >= (b && (b.async = NaN + undefined))))), (c = 1 + c,
a_2 && ([ a_2.set ] = [ (23..toString() ?? 38..toString()) >>> ("function" | null) && (({},
3) && "object" >= undefined) ])), , (c = 1 + c, ((a_2 && (a_2.async = ("bar",
false))) > "undefined" * false) << (b &= 38..toString() ^ "object") * (/[a2][^e]+$/ == "object")) ])] += (c = c + 1,
NaN && [ , 0 ].length === 2) != (("bar", "") !== 5 >>> /[a2][^e]+$/));
} while ((c = 1 + c, (this == "function") >= (c = c + 1, "function") & (/[a2][^e]+$/ - -4) % (-5 >> undefined)) && --brake28 > 0);
}
{
}
}();
{
{
var expr32 = a++ + ([] in []);
for (var key32 in expr32) {
c = 1 + c;
var arguments_1 = expr32[key32];
{
}
}
}
for (var brake34 = 5; a++ + ((c = 1 + c, false >= Infinity <= NaN >> "",
~([] || false)) || 6).toString()[c = 1 + c, ((Infinity, -5) && null !== 3) >>> (38..toString(),
24..toString()) * (24..toString() == 3)] && brake34 > 0; --brake34) {
var expr35 = (c = 1 + c, 22 - 23..toString() <= 5 / "function" < (null >> "bar" & NaN >= []));
L12640: for (var key35 in expr35) {
c = 1 + c, key35 && (key35.static /= ("b" ^ "foo") != ("" || 25) != (("c",
NaN) == 0 >>> ([ , 0 ].length === 2)));
}
}
try {
var NaN_1;
} finally {
c = 1 + c, 23..toString() << -2 < (-4 <= -3) == (NaN_1 && (NaN_1[/[abc4]/.test(((c = 1 + c,
(NaN_2 = [] > this | 22 != 3) <= ("foo" < "b" >= ({} != -2))) || b || 5).toString())] = (-3 != [ , 0 ][1]) < ("number" === "bar")));
}
}
return b + 1 - .1 - .1 - .1;
}
var a_2 = f2();
function f3({
c: NaN_2_2,
foo: bar
}, a_2, {
NaN: b_1,
[a++]: a_1
}) {
if ((c = c + 1) + (NaN_2 && NaN_2[bar && bar[/[abc4]/.test(((c = 1 + c,
3 >> "a" !== null + Infinity & ({} & true ^ (4, "a"))) || b || 5).toString())]])) {
var brake42 = 5;
L12641: while ([] && --brake42 > 0) {
c = 1 + c, /[a2][^e]+$/ - [] ^ 23..toString() >> /[a2][^e]+$/ ^ (-42n).toString() !== {} == (null == "undefined");
}
} else {
switch (/[abc4]/g.exec((--b + ("c" in [ (c = 1 + c, (b_1 = (a_2 && (a_2[c = 1 + c,
((a_2 ??= "number" >> 4) < (a_1 && ([ a_1[c = 1 + c, ("number" ^ 23..toString() && (1 || "c")) ^ ({} && 5) !== -3 >>> "object"] ] = [ [ , 0 ][1] >> -0 ]))) * ((/[a2][^e]+$/ && 4) >> ([] ^ "bar"))] += 22 >= 23..toString())) <= (-1 > 0)) >= (a_2 && (a_2.value += 5 + -1 === (undefined ^ -5)))) ]) || b || 5).toString())) {
case --b + !function() {
c = 1 + c, (true | 22) + (-2 ^ "object") > (c = c + 1, "" && this);
c = 1 + c, (NaN_2 && (NaN_2.var = -1 === "") || NaN >= "bar") === (-3 < "" != "number" * {});
c = 1 + c, ((c = c + 1, -5) == ([ , 0 ].length === 2 != 3)) * (null - -5 ^ 24..toString() - "bar");
}():
switch (c = 1 + c, "a" !== /[a2][^e]+$/ != ("" !== 3) == (NaN_2 && (NaN_2[a++ + (b_1 && typeof b_1.foo == "function" && --_calls_ >= 0 && b_1.foo((c = 1 + c,
(NaN_2 *= "bar" !== Number(0xdeadn << 16n | 0xbeefn)) << (3 << -0) == ((23..toString() && -1) | -3 !== 22)), "object", 3))] ^= (NaN_2 && (NaN_2.undefined += "b" - /[a2][^e]+$/)) & (a_2 = false == 2)))) {
case c = 1 + c, "c" >>> 25 != -3 << /[a2][^e]+$/ ?? ([ , 0 ].length === 2) << NaN != null < -3:
;
break;
default:
;
case c = 1 + c, c = c + 1, (-1 ^ 4) + (-3 ^ 3):
;
break;
case c = 1 + c, a_2 = ((c = c + 1, "function") & 1 / [ , 0 ][1]) > (2 && 38..toString()) << (23..toString() === {}):
;
break;
}
{
var expr50 = (c = 1 + c, (-2 & undefined | -5 / "c") != ("function" >= 38..toString() ^ ("",
true)));
L12642: for (var key50 in expr50) {
c = 1 + c;
var a_1_1 = expr50[key50];
c = 1 + c, ("b" | "number", c = c + 1, !0o644n) * (c = c + 1,
Infinity >= Infinity);
}
}
break;
case --b + 1:
;
case /[abc4]/g.exec((-0 || b || 5).toString()):
{
return c = 1 + c, ((/[a2][^e]+$/ && "foo") ^ "undefined" >> "") & (2 << NaN) * (0 || []);
}
var NaN_2_2 = (c = 1 + c, void "bar" % -"foo" >> ("" > this !== (b_1 += null === "")));
L12643: {
}
case typeof f2 == "function" && --_calls_ >= 0 && f2((c = 1 + c,
(("a" === /[a2][^e]+$/) >= (22 < "bar")) % ((1 & "") * (this | "b")))):
var bar_2;
if (c = 1 + c, NaN >= "foo" > void "object" & (c = c + 1, 4) * (4 === 5)) {
c = 1 + c, c = c + 1, (([ , 0 ].length === 2) >= 3) + (1 | [ , 0 ].length === 2);
} else {
c = 1 + c, ("bar", "undefined") << (-0 & false) < !(-2 ^ 0);
}
for (var brake60 = 5; (c = 1 + c, ("function" * this > (2 > {})) - ((NaN_2_2 && (NaN_2_2[c = 1 + c,
c = c + 1, a_2 && (a_2.__proto__ += undefined >= 22) || 24..toString() == null] = "bar" == -0)) > (-3 ^ "object"))) && brake60 > 0; --brake60) {
c = 1 + c, (false == 3) - (1 <= "foo") ^ (22 !== 2 && 2 === "foo");
}
break;
}
}
{
var brake62 = 5;
while ([ a++ + {
then: (c = 1 + c, (NaN_2_2 && (NaN_2_2.in &&= ("c" && -4) == (this != NaN))) ^ (a_1 = this * -4 > ({} >= -2))),
1.5: (c = 1 + c, c = c + 1, a_2 && (a_2[[ ..."" + NaN_2_2, (c = 1 + c,
(a_2 = "" + (-42n).toString()) < ("bar" == 1) !== (0 && "b") <= 38..toString() - true) ].done] += 23..toString() >> ([ , 0 ].length === 2) << ([ , 0 ][1] & 1))),
[(c = 1 + c, ((bar && (bar.a = "function" % false)) & (undefined && {})) < (([ , 0 ].length === 2) <= "a") * (null >> "number"))]: (c = 1 + c,
(2 == this) / +"bar" === (-5 && "c") <= (NaN_2_2 && (NaN_2_2[c = 1 + c,
(false | 0) >>> (-4 !== NaN) == ((a_2 += /[a2][^e]+$/ <= false) & (NaN || 3))] **= (4,
"function")))),
undefined: (c = 1 + c, (("" || undefined) ^ ([ , 0 ].length === 2) * 0) == ("number",
"object") >= (25 <= "c")),
foo: (c = 1 + c, (4 != [ , 0 ][1] ^ Infinity << 3) % (("foo" >= 4) << ([] >> -1)))
}[c = 1 + c, 25 == "undefined" || "object" % NaN, (undefined ^ "") == (22 ?? {})] ] && --brake62 > 0) {
"object";
}
}
}
var bar_2 = f3({}, --b + (typeof f1 == "function" && --_calls_ >= 0 && f1()), {
NaN: "object"
});
}(this);
}
console.log(null, a, b, c, Infinity, NaN, undefined);
// uglified code
// (beautified)
var _calls_ = 10, a = 100, b = 10, c = 0, b_2 = ("function" == typeof a && 0 <= --_calls_ && a(a && (a.done %= 25 >>> (c += 1,
/[a2][^e]+$/) == (a = -3 != "b" + []))), function() {
async function* f1(b_1, yield_1, a_2) {
switch ([ {
"": (c = 1 + c, ((yield_1 -= "NaNundefined") ^ (yield_1 && (yield_1.then = NaN))) <= (-4 == "undefined" % []))
}, -3 ][(c += 1) + +((2 === [ , 0 ].length) - -3 || yield_1 && (yield_1[--b + (0 <= --_calls_ && f2(23..toString(), ..."" + yield_1))] = NaN))]) {
default:
case new function a_2() {
this[b--] = (c += 1, "0function" != (!0 & (a_2 && (a_2[c = 1 + c,
24..toString(), b_1 |= !0] <<= "function" <= this)))), this.get += 0 != ((yield_1 |= -1) | 38..toString() / !1);
}():
c = 1 + c, yield_1 *= !0 * ({} <= NaN) * 0;
break;
case (c += 1) + (b_1 && b_1[0 & ("object" == 24..toString() ^ 0)]):
return;
case function(a) {}:
}
if (b = a) {
try {
var brake13 = 5;
a++ + ("function" == typeof a_2 && 0 <= --_calls_ && a_2("c", (c = 1 + c,
(this <= void 0) % NaN || !1))) && 0 < brake13 && (c = 1 + c);
} catch (c) {
0;
} finally {
c = 1 + c, (b_1 += ("object" == (2 === [ , 0 ].length)) >> (2 < 38..toString()) <= 0) ? c = 1 + c : (c = 1 + c,
c += 1, 23..toString());
c = 1 + c;
var key21, a_2 = 31 * (5 + (2 === [ , 0 ].length)) < ([] <= "undefined" ?? !0);
for ([ key21 ] in a_2) {
c = 1 + c;
c = 1 + c, yield_1 && (yield_1.set = !1);
}
}
}
}
var NaN_2 = f1((c += 1) + -(-1 / 0 + (NaN_2 && (NaN_2.foo = 0)))).next();
function f2() {
var key32, b = --b + void function a_2() {
for (var brake26 = 5; c = 1 + c, c = 1 + (c += 1), (b && (b[--b + void 0] >>= 38..toString() << !0)) / (5 - 38..toString() == NaN) && 0 < --brake26; ) {}
for (var brake28 = 5; c = 1 + c, b && (b[(c += 1) + (0 in [ , (c = 1 + c,
(b && (b.var |= (b && (b.async = NaN)) <= -5)) < !1), (c = 1 + c, a_2 && ([ a_2.set ] = [ (23..toString() ?? 38..toString()) >>> 0 && !1 ])), , (c = 1 + c,
(NaN < (a_2 && (a_2.async = !1))) << !1 * (b &= "object" ^ 38..toString())) ])] += 1 != (c += 1,
NaN)), c = 1 + c, ("function" == this) >= (c += 1, "function") & NaN && 0 < --brake28; ) {}
}(), expr32 = a++ + ([] in []);
for (key32 in expr32) {
c = 1 + c;
}
for (var key35, brake34 = 5; a++ + (c = 1 + c, (~[] || 6).toString()[c = 1 + c,
!0 >>> (38..toString(), 24..toString() * (3 == 24..toString()))]) && 0 < brake34; --brake34) {
for (key35 in c = 1 + c, 22 - 23..toString() <= NaN < (0 & [] <= NaN)) {
c = 1 + c, key35 && (key35.static /= 1 != (NaN == 0 >>> (2 === [ , 0 ].length)));
}
}
return c = 1 + c, 23..toString(), b + 1 - .1 - .1 - .1;
}
f2();
!function({
c: NaN_2_2,
foo: bar
}, a_2, {
NaN: b_1,
[a++]: a_1
}) {
if ((c += 1) + (NaN_2 && NaN_2[bar && bar[/[abc4]/.test((c = 1 + c, (!0 & (!0 & {} ^ "a") || b || 5).toString()))]])) {
for (var brake42 = 5; 0 < --brake42; ) {
c = 1 + c, 23..toString(), (-42n).toString();
}
} else {
switch (/[abc4]/g.exec((--b + ("c" in [ (c = 1 + c, (b_1 = (a_2 && (a_2[c = 1 + c,
((a_2 ??= 0) < (a_1 && ([ a_1[c = 1 + c, !0 ^ ("number" ^ 23..toString() && 1)] ] = [ 0 ]))) * (4 >> ("bar" ^ []))] += 23..toString() <= 22)) <= !1) >= (a_2 && (a_2.value += !1))) ]) || b || 5).toString())) {
case --b + (c = 1 + c, c = 1 + (c += 1), NaN_2 && (NaN_2.var = !1),
c = 1 + c, c += 1, !void 24..toString()):
switch (c = 1 + c, 0 == (NaN_2 && (NaN_2[a++ + (b_1 && "function" == typeof b_1.foo && 0 <= --_calls_ && b_1.foo((c = 1 + c,
(NaN_2 *= "bar" !== Number(0xdeadn << 16n | 0xbeefn)) << 3 == (!0 | (23..toString() && -1))), "object", 3))] ^= (NaN_2 && (NaN_2.undefined += NaN)) & (a_2 = !1)))) {
case c = 1 + c, !0:
break;
default:
case c = 1 + c, c += 1, -7:
case c = 1 + c, c += 1, a_2 = 38..toString() << (23..toString() === {}) < 0:
}
c = 1 + c;
var key50, expr50 = 0 != (38..toString() <= "function" ^ !0);
for (key50 in expr50) {
c = 1 + c;
c = (c = 1 + c) + 1 + 1;
}
break;
case 1 + --b:
case /[abc4]/g.exec((b || 5).toString()):
return c = 1 + c;
case 0 <= --_calls_ && f2(c = 1 + c):
c = 1 + c, c = 1 + (c += 1);
for (var brake60 = 5; c = 1 + c, ({} < 2 < "function" * this) - (-3 < (NaN_2_2 && (NaN_2_2[c = 1 + c,
c += 1, a_2 && (a_2.__proto__ += !1) || null == 24..toString()] = !1))) && 0 < brake60; --brake60) {
c = 1 + c;
}
}
}
for (var brake62 = 5; a++, c = 1 + c, NaN_2_2 && (NaN_2_2.in &&= -4 == (NaN != this)),
a_1 = -2 <= {} < -4 * this, c = 1 + c, c += 1, a_2 && (a_2[[ ..."" + NaN_2_2, (c = 1 + c,
(a_2 = "" + (-42n).toString()) < !1 != 0 <= 38..toString() - !0) ].done] += 23..toString() >> (2 === [ , 0 ].length) << 0),
c = 1 + c, bar && (bar.a = NaN), c = 1 + c, NaN_2_2 && (NaN_2_2[c = 1 + c,
0 == (3 & (a_2 += !1))] **= "function"), c = 1 + (c = 1 + (c = 1 + c)),
0 < --brake62; ) {}
}({}, --b + (0 <= --_calls_ && f1()), {
NaN: "object"
});
}());
console.log(null, a, b, c, 1 / 0, NaN, void 0);
original result:
null 109 96 41 Infinity NaN undefined
uglified result:
null 109 96 44 Infinity NaN undefined
// reduced test case (output will differ)
// (beautified)
async function* f1() {
try {
for (var brake13 = 5; brake13; --brake13) {
return void 0;
}
} finally {
console.log();
}
}
f1().next();
console.log(undefined);
// output: undefined
//
//
// minify:
// undefined
//
// options: {
// "mangle": false,
// "module": false,
// "output": {
// "v8": true
// },
// "validate": true
// }
minify(options):
{
"mangle": false,
"module": false,
"output": {
"v8": true
}
}
Suspicious compress options:
dead_code
if_return
loops