-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Closed
Labels
Description
// original code
// (beautified)
var _calls_ = 10, a = 100, b = 10, c = 0;
function f0(b_2, b_1, a_1) {
try {
{
var let_2 = function f1() {
try {
{
var brake4 = 5;
while ([ ..."" + b_1 ] && --brake4 > 0) {
var brake5 = 5;
do {
L13363: {
const arguments_1 = (c = c + 1) + ((c = 1 + c,
((b_1 && (b_1[c = 1 + c, "a" < -3 ^ [ , 0 ][1] <= "b" && ("" << 25) / (2 == ([ , 0 ].length === 2))] += -1 || "undefined")) === "function" - []) / ("object" >> ([ , 0 ].length === 2) >> (-5 < 22))) ? (c = 1 + c,
(-4 >= true) >> (Infinity != Infinity) >> (2 && 25) / ("c" % 1)) : (c = 1 + c,
b_1 && (b_1.null += (-3 == "") < (b_2 && (b_2.set = [] >> {})) >= /[a2][^e]+$/ + undefined - undefined / 38..toString())));
let arguments = delete b;
c = 1 + c, (undefined >= "c" > ("object" < "foo")) >> ("undefined" !== 4 === (a_1 /= "function" * 3));
c = 1 + c, (/[a2][^e]+$/ !== true ^ (c = c + 1,
"number")) === (a_1 += 0 >>> {} > (5 == -1));
c = 1 + c, (arguments_1 && (arguments_1.foo = (null & NaN) >> ("function" < "a"))) === -"" > (23..toString() | "c");
c = 1 + c, ((c = c + 1, 5) < (-1 >= "number")) % ("number" >>> -4,
"a" >= null);
}
} while (/[abc4]/.test(((c = c + 1) + (b_1 && typeof b_1.get == "function" && --_calls_ >= 0 && b_1.get([])) || b || 5).toString()) && --brake5 > 0);
}
}
} finally {
{
var brake11 = 5;
L13364: while (a++ + (1 === 1 ? a : b) && --brake11 > 0) {
try {
{
var brake13 = 5;
while ((c = 1 + c, (b_1 &= -5 || 4) < (-0 ^ 4) && (-5 ^ NaN) < (/[a2][^e]+$/ != 24..toString())) && --brake13 > 0) {
c = 1 + c, (true & []) >> (b_2 && (b_2.async %= "c" / -4)) || -5 >= -0 ^ this === -2;
}
}
} finally {}
}
}
}
}("b", 2);
}
} catch (c_2) {
L13365: for (var brake15 = 5; new function() {
this[-0] += ((/[a2][^e]+$/ && 24..toString()) - (Infinity, "object") > (null / -1 | ("a",
"c"))) % (([ , 0 ].length === 2 === 2) - ([ , 0 ].length === 2 == Infinity) >> (c_2 = ("number" | NaN) * (c = c + 1,
"b"))) == ((NaN != 3 != "" >> Infinity) - (b_2 && (b_2[(c = c + 1) + ((bar, c_2) => (c = 1 + c,
(bar -= (b_1 && (b_1[c = 1 + c, ((23..toString(), /[a2][^e]+$/) ^ "" << -0) / ("" > undefined,
"object" / 0)] += "" == [])) !== "b" >= 22) - (delete 2 == (25 === {}))))((c = 1 + c,
(22 === "function" & 1 !== NaN) - (-5 & 22 ^ "number" >>> -4)), 2)] = "b" - {} | "c" >= 23..toString())) === (c = c + 1,
NaN) >> (22 != []) >>> (-0 % [ , 0 ][1] || 5 === -1)) === (((([ , 0 ][1] & "a") >>> [] + null) / ("number" - 22 >> (null | 22)),
(false ^ 4) <= (true ^ -4) <= (1 % "undefined" <= undefined + 38..toString())) & (1 ^ -4 ^ -2 * 3 ^ ("bar" % [] && 38..toString() << 3)) % ((({} !== 5) - (-0 | [ , 0 ].length === 2)) / ((true | NaN) === ("function" !== 38..toString()))));
this.null = (+((("undefined" < "c") >>> void 3) - (([ , 0 ].length === 2 || {}) >> (this !== "c")) >= ((b_2 && (b_2[c = 1 + c,
(25 !== -4) < 24..toString() >> NaN & (-4 + [ , 0 ][1] & "undefined" + false)] = 23..toString() || 3)) <= this / "function" !== ("object" == "function" == /[a2][^e]+$/ / false))),
((("function" ^ true ^ 23..toString() !== true) >= (38..toString(),
[ , 0 ][1]) >> (c = c + 1, 4)) << (NaN % -5 | -5 == 23..toString()) % ((let_2 && (let_2[c = 1 + c,
!(-2 ^ 25 | -1 * undefined)] += Infinity < [ , 0 ][1])) != undefined - "b")) + (((let_2 && (let_2.null &= ("function" & "a") < [] << "bar")) <= -0 + "function" - ("number" >> -1)) + ((-4 == false | -2 >= []) & (24..toString() ^ -4) == (25 == this))));
this.NaN = (({} & -0) + (b_1 && (b_1.static = 3 ^ [ , 0 ][1])) << (b_1 && (b_1.b ^= ([] | "object") / (c = c + 1,
"a"))) < ((let_2 && ([ let_2[(c = c + 1) + (() => (c = 1 + c, ("function" >= 4 & ("a" ^ "number")) >> (25 ^ 25 && false == undefined)))()] ] = [ (c_2 = "function" < this) && 25 / [ , 0 ][1] ])) >= (!{} != 25 * {})) <= ((b_2 && (b_2.b = (Infinity >> 1 === ("object" ^ 2),
([ , 0 ][1] == Infinity) <= ("b" ^ "foo")))) != (b_2 = (b_1 && (b_1.value += (let_2 && (let_2.in = "bar" >= -2)) * (([ , 0 ].length === 2) < -3))) & (undefined & null) / ("bar" + "b")))) % (c = c + 1,
b_1 && (b_1[delete b] = -(([ , 0 ].length === 2 && this) >= ("object" || 25)) - ((3 + 5,
"object" * 24..toString()) >> (("undefined" ^ 4) < ("", "b")))));
if (typeof f2 == "function" && --_calls_ >= 0 && f2()) {
try {
} finally {
c = c + 1;
c = 1 + c, (!null, 1 === this) != (let_2 && (let_2[c = 1 + c,
("" | []) != 24..toString() <= 3 ^ ("function" < "a" ^ "object" * "bar")] |= 5 / undefined)) << (-4 < NaN);
L13366: for (var brake22 = 5; (c = 1 + c, ("" >= 4 || ("number" || "undefined")) >= ("number" >> this != -[ , 0 ][1])) && brake22 > 0; --brake22) {
c = 1 + c, 22 << "number" !== (-1 && {}) & (c = c + 1, NaN != NaN);
}
}
} else {
var bar_2 = 0 === 1 ? a : b, a_1_1 = [].done;
}
}("undefined") && brake15 > 0; --brake15) {
var brake25 = 5;
L13367: while (++b && --brake25 > 0) {
var brake26 = 5;
do {
try {
if (--b + !(("b" ^ "foo") << (25 >> ([ , 0 ].length === 2)) << (([ , 0 ][1] !== Infinity) >= -1 >> -0))) {
--b + !function() {
}();
}
} finally {
b *= a;
{
return a++;
}
}
} while ([ , 0 ][1] + "b" <= ("foo" === -1) >= (5 - "" >= +"function") && --brake26 > 0);
}
}
return;
L13368: {
L13369: {
{
var brake35 = 5;
L13370: while (a++ + (4 in [ ..."" + c_2 ] ? --b + (typeof f3 == "function" && --_calls_ >= 0 && f3`$\`${c = 1 + c,
(a_1 = (a_1 += Infinity < 2) && (let_2 && (let_2.a += [] | "undefined"))) / ((c = c + 1,
"foo") > ("object" != "a"))}${c = 1 + c, (Infinity || [ , 0 ].length === 2) >>> (-1 ^ NaN) ^ "undefined" % "number" << (4 && "foo")}tmpl${c = 1 + c,
-(let_2 && (let_2[--b + (typeof b_2_1 === "object")] = (-4 | "object") >>> 25 % this))}`) : a++ + (0 === 1 ? a : b)) && --brake35 > 0) {
var brake36 = 5;
L13371: while (((c = 1 + c, 24..toString() >> 25 != -2 > true,
(3 == 0) / (c = c + 1, -1)) || 3).toString()[c = 1 + c,
(b_1 && (b_1[--b + ((c = 1 + c, -0 < 38..toString() < (undefined < "object") != (c_2 && (c_2[c = 1 + c,
(("" || -2) << !0) / ((c = c + 1, 25) ^ ("number" || 2))] = "number" > -5)) >= 2 >> -5) || 8).toString()[c = 1 + c,
{} >>> ([ , 0 ].length === 2) >> (b_1 && (b_1[c = 1 + c,
"number" >>> Infinity > (1 === "object") < (25 & -4 & (c = c + 1,
-2))] = 5 ^ [ , 0 ].length === 2)) ^ +5 <= [ , 0 ][1] + 5]] += ("foo" + -0) % (false - this))) === (-1 <= 0 === ("b" == "a"))] && --brake36 > 0) {
L13372: {
}
}
}
}
var a_1 = void ((-1 ^ undefined) / ("object" != -2) * ((/[a2][^e]+$/ != "b") / ("c" >= "bar"))), bar_2 = --b + (a++ + [ (c = 1 + c,
c = c + 1, -"foo" && (3, 4)) ].length);
{
L13373: {
}
}
}
{
var brake41 = 5;
while ([ , 0 ][1] && --brake41 > 0) {
return;
}
}
}
} finally {
{
var a_2 = function bar_2(bar_1, async_2) {}();
}
if ("a" in [ (c = c + 1) + (/[abc4]/.test(((([ , 0 ].length === 2) >> "bar" && (c = c + 1,
24..toString())) == ("b" !== undefined ^ (undefined ^ -4)) || b || 5).toString()) || 9).toString()[a++] ]) {} else {}
if (a++ + b_2) {
var b_2 = function* b_1_1() {
{
var brake49 = 5;
do {
if (typeof f2 == "function" && --_calls_ >= 0 && f2([ , 0 ][1], (c = 1 + c,
(0 & [ , 0 ].length === 2) % (c = c + 1, {}) > (("b" == -5) > (undefined === 2))))) {
c = 1 + c, (-5, "bar") >= (undefined !== "a") === (5 - NaN ^ (a_2 && (a_2[c = 1 + c,
(-5 >>> 5 ^ -5 !== ([ , 0 ].length === 2)) <= (~0, [ , 0 ].length === 2 && -2)] = 2 / ([ , 0 ].length === 2))));
} else {
var brake52 = 5;
do {
c = 1 + c, ((a_2 += "undefined" && "c") <= (/[a2][^e]+$/ != {})) >>> ("number" + "foo" | "undefined" % -5);
} while ((c = 1 + c, (3 === [ , 0 ][1] && 38..toString() ^ /[a2][^e]+$/) > (-2 >>> -2 < ("object" != "b"))) && --brake52 > 0);
}
} while ((0 === 1 ? a : b) && --brake49 > 0);
}
}(-4).next();
} else {
var brake54 = 5;
L13374: do {
var b_2 = --b + (let_2 /= ([ , 0 ].length === 2) in [ Infinity - /[a2][^e]+$/ >>> "b" / "a" == (false || 2 || [ , 0 ].length === 2 | NaN) ]), bar_2 = --b + (b_2 = a++ + a--);
} while ("c" && --brake54 > 0);
}
}
{
var expr56 = (c = c + 1) + function b_1_2() {
{
var brake57 = 5;
L13376: while ((c = c + 1) + (typeof f3 == "function" && --_calls_ >= 0 && f3`${typeof foo != "symbol"}`) && --brake57 > 0) {
if ("undefined") {}
}
}
{
var brake61 = 5;
do {
{}
} while ((c = c + 1) + {
undefined: a++ + --b,
var: b ^= a
} && --brake61 > 0);
}
};
L13375: for (let key56 in expr56) {
c = 1 + c;
var yield_2 = expr56[key56];
c = c + 1;
}
}
{
var brake65 = 5;
L13377: while ((0 === 1 ? a : b) && --brake65 > 0) {
{
var arguments = function f2(b_2, foo_1, b_1) {
function f3(arguments, undefined_1) {
}
var let_2 = f3((c = 1 + c, (24..toString() === false) + (23..toString() <= -4) << (38..toString() ^ -5) / (4 % "b")), -1, (c = 1 + c,
(24..toString() === ([ , 0 ].length === 2)) % (1 * -4) ^ (let_2 && (let_2.get ^= 23..toString() ^ false)) * ("number" | "c")));
function f4() {
}
var a = f4(typeof (c = 1 + c, (c = c + 1, 38..toString() ^ -2) << void ([ , 0 ].length === 2) + (0 == -1)));
}();
}
}
}
}
export var undefined_1 = f0();
console.log(null, a, b, c, Infinity, NaN, undefined);// uglified code
// (beautified)
var _calls_ = 10, a = 100, b = 10, c = 0;
function f0(f, o, t) {
try {
var n = function() {
try {
for (var t = 5; 0 < --t; ) {
var n = 5;
do {
c = 1 + (c += 1), (NaN === (o && (o[c = 1 + c, 0] += -1))) / ("object" >> (2 === [ , 0 ].length) >> !0) ? c = 1 + c : (c = 1 + c,
o && (o.null += NaN <= (!1 < (f && (f.set = 0)))));
let arguments = delete b;
} while (c = 1 + (c = 1 + c), c = 1 + (c += 1), y && (y.foo = 0),
c = 1 + c, c += 1, /[abc4]/.test(((c += 1) + (o && "function" == typeof o.get && 0 <= --_calls_ && o.get([])) || b || 5).toString()) && 0 < --n);
}
} finally {
for (var e = 5; a++ + a && 0 < --e; ) {
for (var l = 5; c = 1 + c, (o &= -5) < 4 && 0 < --l; ) {
c = 1 + c, f && (f.async %= NaN);
}
}
}
}("b", 2);
} catch (t) {
for (var e = 5; new function() {
if (this[-0] += !1 % ((2 === [ , 0 ].length === 2) - (2 === [ , 0 ].length == 1 / 0) >> 0 * (c += 1,
"b")) == (!0 - (f && (f[(c += 1) + (c = 1 + (c = 1 + c), -18 - (!1 !== (o && (o[c = 1 + c,
NaN] += !0))) - !1)] = 1)) == (c += 1, 0)) === (!0 & 7 % ((!0 - (-0 | 2 === [ , 0 ].length)) / !1)),
this.null = (f && (f[c = 1 + c, 0] = "23"), ((0 >> (c += 1, 4) <= 0) << 0 % (NaN != (n && (n[c = 1 + c,
!1] += !1)))) + ((n && (n.null &= !1)) <= NaN) + (0 & -28 == (25 == this))),
this.NaN = (0 + (o && (o.static = 3)) << (o && (o.b ^= 0 / (c += 1,
"a"))) < (!0 <= (n && ([ n[(c += 1) + (c = 1 + c, 0)] ] = [ "function" < this && 1 / 0 ]))) <= ((f && (f.b = !0)) != (f = NaN & (o && (o.value += (n && (n.in = !1)) * ((2 === [ , 0 ].length) < -3)))))) % (c += 1,
o && (o[delete b] = -("object" <= (2 === [ , 0 ].length && this)))),
"function" == typeof f2 && 0 <= --_calls_ && f2()) {
c = 1 + (c += 1), n && (n[c = 1 + c, 0] |= NaN);
for (var t = 5; c = 1 + c, ("number" >> this != -0) <= "number" && 0 < t; --t) {
c = 1 + c, c += 1;
}
}
}() && 0 < e; --e) {
for (var l = 5; ++b && 0 < --l; ) {
var r = 5;
do {
try {
--b + !(0 << (25 >> (2 === [ , 0 ].length)) << !0) && --b;
} finally {
return b *= a, a++;
}
} while (0 < --r);
}
}
return;
} finally {
var i = void 0;
if (c += 1, (/[abc4]/.test((-3 == ((2 === [ , 0 ].length) >> "bar" && (c += 1,
"24")) || b || 5).toString()) || 9).toString()[a++], a++ + f) {
f = function*() {
for (var t = 5; "function" == typeof f2 && 0 <= --_calls_ && f2(0, (c = 1 + c,
!1 < (0 & 2 === [ , 0 ].length) % (c += 1, {}))) ? (c = 1 + c, i && (i[c = 1 + c,
(-5 >>> 5 ^ -5 !== (2 === [ , 0 ].length)) <= (2 === [ , 0 ].length && -2)] = 2 / (2 === [ , 0 ].length))) : (i += "c",
c = 1 + (c = 1 + c)), b && 0 < --t; ) {}
}().next();
} else {
for (var h = 5; f = --b + (n /= (2 === [ , 0 ].length) in [ !1 ]), --b,
f = a++ + a--, 0 < --h; ) {}
}
}
for (var u in (c += 1) + function() {
for (var t = 5; (c += 1) + ("function" == typeof f3 && 0 <= --_calls_ && f3`${"symbol" != typeof foo}`) && 0 < --t; ) {}
for (var n = 5; (c += 1) + {
undefined: a++ + --b,
var: b ^= a
} && 0 < --n; ) {}
}) {
c = 1 + c, c += 1;
}
for (var v = 5; b && 0 < --v; ) {
c = 1 + (c = 1 + (c = 1 + c)), c += 1;
}
}
var undefined_1 = f0();
console.log(null, a, b, c, 1 / 0, NaN, void 0);
export {
undefined_1
};original result:
null 107 0 107 Infinity NaN undefined
uglified result:
null 108 945 59 Infinity NaN undefined
// reduced test case (output will differ)
// (beautified)
try {
(function f1() {
do {
{
const arguments_1 = console.log();
let arguments;
console.log(arguments_1);
}
} while (brake5);
})();
} catch (c_2) {}
// output:
// undefined
//
// minify:
//
// options: {
// "compress": {
// "passes": 1000000,
// "sequences": 1000000,
// "unsafe": true,
// "unsafe_Function": true,
// "unsafe_math": true,
// "unsafe_proto": true,
// "unsafe_regexp": true
// },
// "module": false,
// "mangle": {
// "v8": true
// },
// "output": {
// "v8": true
// },
// "validate": true
// }minify(options):
{
"compress": {
"passes": 1000000,
"sequences": 1000000,
"unsafe": true,
"unsafe_Function": true,
"unsafe_math": true,
"unsafe_proto": true,
"unsafe_regexp": true
},
"module": false,
"mangle": {
"v8": true
},
"output": {
"v8": true
}
}
Suspicious compress options:
join_vars
loops
passes
reduce_vars
unused
varify