mishoo / UglifyJS

JavaScript parser / mangler / compressor / beautifier toolkit
http://lisperator.net/uglifyjs/
Other
13.18k stars 1.25k forks source link

ufuzz failure #5949

Closed alexlamsl closed 1 month ago

alexlamsl commented 1 month ago
// original code
// (beautified)
var _calls_ = 10, a = 100, b = 10, c = 0;

export function f0() {
    {
        var expr1 = --b + (typeof a == "function" && --_calls_ >= 0 && a(--b + new function await_2(yield, b, await_2) {
            this.value = (b += (NaN << undefined ^ "object" - this && ("function" ^ 3 && -23..toString())) !== ((this && this) >= /[a2][^e]+$/ >> "number" == +(-5 != true))) >>> ((b = {} << -1 << ([ 3n ][0] > 2 ^ 3) <= void ([] / 38..toString())) !== ((b = undefined < -2 != (b = -3 >= -3)) != ((b *= -4 >> this) ^ /[a2][^e]+$/ * 0))) ^ (b += (22 | this) % (c = c + 1, 
            NaN) ^ -22 + (NaN !== -2)) <= ((null & -4) > Infinity >>> undefined) << (-2 + -5 | 1 << 23..toString()) >= ((0 ^ 0 ^ 4 !== "object") != (yield && (yield.in = [] || undefined)) - (-2 && "bar") ^ (([ , 0 ].length === 2) / "a" + ("b" - "c")) % (yield && (yield[a++] = (0 !== "c") + 23..toString() % "")));
            this.b &= (await_2 && (await_2.set %= (null >>> null && "b" / Infinity) >>> "" + "b" - "undefined" / 24..toString() | ("object" === Infinity) - +1 ^ Infinity * 24..toString() / (Infinity > null))) >>> (b && (b[typeof await_2 == "function" && --_calls_ >= 0 && await_2("object")] = ([ , 0 ].length === 2 ^ -3) % (25 >>> this) * (c = c + 1, 
            "" || 23..toString())) || (await_2 && (await_2[a++ + (typeof f1 == "function" && --_calls_ >= 0 && f1(...[ ..."" + await_2, (c = 1 + c, 
            b && (b[yield && typeof yield.null == "function" && --_calls_ >= 0 && yield.null()] = (22 !== Infinity) / ("object" > NaN) != (-2 >> undefined) / (-5 === ""))), (c = 1 + c, 
            (b += (c = c + 1, 23..toString()) > ("bar" >= 4)) ^ (yield |= -0 >> 3) % ("undefined" != -2)) ], (c = 1 + c, 
            (("" || -2) > (0 && 2)) >>> (null >> 23..toString() >> (2 << 1)))))] = true > {} ^ -4 >> "foo"), 
            "foo" % 4 >= (3 === 23..toString()))) & (-4 <= this & ([ , 0 ].length === 2 ^ 4)) % ((4 | 1) / (null % -3)) << (delete (-1 == true) | ("object" - "c") / (3 > undefined)) === (b *= ((1 === 24..toString()) >>> (25 >= "a")) / (22 == "foo" && void 22) ^ (NaN + true && "object" & this) >>> (false * "" & 0 > -0));
            this.then = ((/[a2][^e]+$/ + ([ , 0 ].length === 2)) % (Infinity ^ "undefined") >> ((await_2 && (await_2[c = 1 + c, 
            (Infinity >= /[a2][^e]+$/) >>> Infinity * "function" << (-1 - 23..toString() > (-3 >= "foo"))] = 4 ^ 4)) <= ("" ^ 23..toString())) | ((-42n).toString() ^ "function") < (yield && (yield[c = 1 + c, 
            ("b", 25) >> (true << "undefined") >= ((-2, -1) | -0 >> "function")] += 24..toString() < "c")) >= !(25 >= 3)) <= (await_2 && (await_2[--b + ((c = 1 + c, 
            "a" * [] <= (undefined <= Infinity), c = c + 1, 25 === "a") ? (c = 1 + c, 
            ([ , 0 ].length === 2 ^ import.meta ^ "function" > "") & (NaN !== this || Number(0xdeadn << 16n | 0xbeefn) ^ [])) : (c = 1 + c, 
            ~(b = 38..toString() ^ "undefined") >> ("c" || false, b = -3 >= [ , 0 ][1]))) ? (c = c + 1) + (null in {
                foo: (c = 1 + c, "" > -2 >= (false & -1), false >> this > (b += "a" + -4)),
                async: (c = 1 + c, (Infinity | "foo") % ("foo" !== "object") >> ((b = 1 + -1) != undefined / 1))
            }) : b] = ((c = c + 1, -0) >> (5 > /[a2][^e]+$/)) + (c = c + 1, "undefined" ^ "c")) && [ , 0 ][1] - -3 > (25 ^ {}) <= (22 !== 25) % ("number" ^ this)) != ((await_2 && (await_2[c = 1 + c, 
            ((null == "number") - ("bar" ^ -4)) % (-3 >>> 23..toString() ^ NaN === [])] |= /[a2][^e]+$/ <= "bar")) >>> (b && (b[c = 1 + c, 
            c = c + 1, false > this ^ 2 == 23..toString()] >>>= ("bar", 22))) >= ("foo" ^ 4) * (false ^ -5) < 1 / {} - (await_2 && (await_2.undefined += undefined && 4)) >> (22 >>> "a" || "foo" && "number")) + (((await_2 && (await_2.undefined = 24..toString() != "undefined")) ^ "bar" >> /[a2][^e]+$/ || [ , 0 ][1] < /[a2][^e]+$/ >= -1 * Infinity) >= (yield += (/[a2][^e]+$/ || -0) << (await_2 && (await_2[c = 1 + c, 
            (null * ([ , 0 ].length === 2) || "number" ^ "number") && ((yield = this > NaN) || -1 == Infinity)] += 5 === -0)) & (yield && (yield[(c = c + 1) + a++] = (4 > NaN) * -"b"))));
            {
                var brake2 = 5;
                L37251: do {
                } while ([].set && --brake2 > 0);
            }
            {
                var brake4 = 5;
                do {
                    {
                        var expr5 = (c = c + 1) + b--;
                        for (var key5 in expr5) {
                            c = 1 + c;
                            var yield_1 = expr5[key5];
                            if (--b + key5) {
                            } else {
                                var brake8 = 5;
                                while ((c = 1 + c, (-2 == ([ , 0 ].length === 2) != ("undefined" != -4)) / (([ , 0 ][1] > undefined) - ([ , 0 ][1] >= 24..toString()))) && --brake8 > 0) {
                                    c = 1 + c, ([ , 0 ][1] || 1, b = null - 38..toString()) - ((23..toString() || 5) !== ("a" !== 0));
                                }
                            }
                        }
                    }
                } while (--b + (0 === 1 ? a : b) && --brake4 > 0);
            }
            var bar_2;
        }(23..toString())));
        L37250: for (var key1 in expr1) {
            {
                {
                    var a = function f1(arguments_1, c_1) {
                        function f2(bar_2) {}
                        var arguments = f2();
                        function f3() {
                            c = 1 + c, c = c + 1, c_1 && (c_1.Infinity /= (5 << 0) / (([ , 0 ].length === 2) <= -5));
                            c = 1 + c, arguments_1 && (arguments_1.b -= (24..toString() !== "bar") / ("object" * "") >> (38..toString() >>> [ , 0 ][1] && null !== null));
                            c = 1 + c, -0 >> -4 <= false >>> "function" | ("undefined" ^ Infinity || 2 / []);
                        }
                        var bar_1 = f3(undefined);
                    }(typeof f4 == "function" && --_calls_ >= 0 && f4());
                }
                {
                    var expr17 = --b + (b = a);
                    for (a in expr17) {
                        L37252: for (var brake18 = 5; --b + (key1 && typeof key1.then == "function" && --_calls_ >= 0 && key1.then(a++, -0)) && brake18 > 0; --brake18) {
                            if (a++) {
                                var expr20 = a++ + void ((key1 += (key1 += 5 & 4) !== (a && (a[c = 1 + c, 
                                (22 & "object") * (a && (a[c = 1 + c, key1 = (c = c + 1, 
                                -0) * ("function" !== ([ , 0 ].length === 2)) != (2 << 5) + (38..toString() <= null)] += "a" & [ , 0 ].length === 2)) >>> (null < -4 | 5 < "function")] = "b" < "undefined"))) % (a && (a[b <<= a] += (false >= 5) % (NaN / ""))));
                                for (var key20 in expr20) {
                                    c = 1 + c;
                                    var await_2 = expr20[key20];
                                    c = c + 1;
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    try {
        {
            var brake23 = 5;
            while (new function await(await) {
                this.foo /= ((([ 3n ][0] > 2) >> 0 & (null, -0), (null !== -0) - ("b" == ([ , 0 ].length === 2))) ^ (Infinity * /[a2][^e]+$/ % (await && (await[c = 1 + c, 
                (-0 << false) / (0 < "function") | "undefined" == -1 === -1 - -2] = "a" <= [])), 
                "number" >> -1 !== {} << /[a2][^e]+$/)) < (await && ([ await[typeof f2 == "function" && --_calls_ >= 0 && f2(--b, await && await[c = 1 + c, 
                a = ((a = 3 === ([ , 0 ].length === 2)) && -0 & "a") % ((await && (await.NaN = 22 ^ "b")) == -0 - 3)])] ] = [ (a = 24..toString() - null != (c = c + 1, 
                -3)) > (-2 !== 4 & "foo" % 24..toString()) || (5 !== "number") % (23..toString() >>> /[a2][^e]+$/) / (("bar" | 22) / ({} - !0o644n)) ])) == (c = c + 1, 
                ("b" !== 3) <= ("object" != -4)) < ((await && (await.c = /[a2][^e]+$/ >>> 4)) != true >> "c" && (-1 >= "b") >> (5 | NaN)) < ((0 | Infinity) < (c = c + 1, 
                "a") ^ ("" << [] ^ ("a" && [ , 0 ].length === 2)) && true >>> null !== [ , 0 ][1] * 0 & (a = (4, 
                5) << ("foo" >>> -3))) != ((0 * "function" >= (4 && {}) != (3 < -5 == 24..toString() > 5)) - (void 22 + (1 > 0) ^ ([ , 0 ].length === 2 & -1) > (-5 >= "c")) == (+(Infinity, 
                -5) == (4 > []) >> (-0 >> 2)) * ((c = c + 1, "bar" * [ , 0 ][1]) >> ("object" * "number" ^ (-1 ^ /[a2][^e]+$/))) ^ ((!([ , 0 ].length === 2) >> ([ , 0 ].length === 2 && "object")) % (c = c + 1, 
                await && (await.a = [ , 0 ].length === 2 & -1)) !== -(-0 % 0 <= (undefined, 
                [ , 0 ].length === 2))) >> ((("c", -3) | "function" * ([ , 0 ].length === 2)) ^ (23..toString() * "bar", 
                c = c + 1, /[a2][^e]+$/) ^ (c = c + 1, {}) / ("object" << 38..toString()) & (this - "c") / (5 + false)));
                this[(await && (await.next += 5 != 0 & -0 >> NaN)) in ("bar" & 3 && (a = 24..toString() != [ , 0 ][1]))] = (("function" !== undefined) % (25 || {}) % ("undefined" % NaN % ("object" < "c")) % (c = c + 1, 
                -2 <= -1, -2 !== "a") >= ((-2 | NaN) >> -5 + "c" >= ([], "number") >>> (-0 !== "")) + (((0 && 22) <= (false ^ "foo")) >>> (-4 >> "object") / (-1 == Infinity))) << ((-0 % undefined ^ [ , 0 ].length === 2 != NaN) < (c = c + 1, 
                "a") + 3 / null > ((Infinity || [ , 0 ].length === 2) > (await && (await[c = 1 + c, 
                ((false === -0) < ("" < undefined)) - (!38..toString()) ** ([ , 0 ][1] + this)] = NaN || "number")), 
                ({} && "bar") ** ([] | "a")) != ((-2 >> 23..toString() & void "object") <= (22 ^ false | 4 - 5), 
                (4 == "c" != undefined >>> NaN) >> ((null === "function") <= (24..toString() ^ "undefined")))) && ((null <= -5 ^ "" + ([ , 0 ].length === 2)) + (await && (await[[][c = 1 + c, 
                (await && (await[c = 1 + c, await && (await[(a++ + ((5 >= -1) + + -4 < ([ , 0 ][1] >= 5 != (Infinity != NaN))) || a || 3).toString()] = (4 ^ "object") % (/[a2][^e]+$/ >> 4) ^ (await && (await[await && typeof await.in == "function" && --_calls_ >= 0 && await.in("")] += await && (await[c = 1 + c, 
                ((4 & "c") == [] >= 4) >> (await[(c = c + 1) + (typeof f4 == "function" && --_calls_ >= 0 && f4(3, [], undefined))] <<= ("c" ^ [ , 0 ][1], 
                await && ({
                    "\t": await[c = 1 + c, -("c" == "foo" ^ -5 === Infinity)]
                } = {
                    "\t": null ^ [ , 0 ][1]
                })))] = 25 >= "a") && false !== this)))] = -5 || null)) % (c = c + 1, 
                {}) != false % 4 << (3 | 22)]] = (23..toString() << -5) % (22 & "undefined"))) <= (((c = c + 1, 
                -5) ^ "number" >= "c") >= 38..toString() >> "undefined" >>> (4 < -5))) * ((([ , 0 ][1] << "a" | Infinity ^ 0) ^ ([ , 0 ].length === 2 ^ 24..toString() && -1 ^ -0)) >= (1 >> -3 == delete -0 ^ (([ , 0 ].length === 2, 
                "undefined") | -1 ^ 22))) % (("undefined" !== 24..toString()) - ("a" !== "a") >>> ((await && (await.b = "bar" >= null)) & "c" > {}) !== (("a" != {}) < (false || [ , 0 ][1]) !== (38..toString() < "number") * (await && (await[c = 1 + c, 
                ((0 != "foo") <= (24..toString() <= undefined)) >>> ({} / "foo" >= "foo" >> -3)] = 25 & [ , 0 ][1]))), 
                ((2 == "undefined") + ("a" || "b") !== ("a" | "c") <= (-1 && "function")) - (({} - -3, 
                delete []) >>> (-/[a2][^e]+$/ << (1 == -3))));
            }() && --brake23 > 0) {
                return;
                delete ((undefined != /[a2][^e]+$/) << (a && (a[c = 1 + c, (a && (a[c = 1 + c, 
                (a && (a.done &= this - 22 ^ (this && -5))) == ([] * 4 != "c" >= null)] %= "b" << [])) * ("object" >= 38..toString()) > ("bar" >= "function") >>> this % -3] = [ , 0 ].length === 2 | 24..toString())) > (null - [] !== ("" & 24..toString())));
            }
        }
    } catch (a_1) {}
    {
        try {
            {
                var brake27 = 5;
                L37253: do {
                    {
                        var b = function f4(a_1) {
                            function f5(await) {
                                c = 1 + c, ~(Infinity % undefined) === (await && ({
                                    1.5: await.async
                                } = {
                                    1.5: 1 && -2
                                })) - (25 + 2);
                            }
                            var yield = f5(-1, --b + a--);
                            function f6(undefined, a_2, b_1) {
                                c = 1 + c, ((4 >= "b") >>> (3 >> "undefined")) - (c = c + 1, 
                                Infinity ^ NaN);
                                c = 1 + c, ("object" <= "a" > ("foo" < Infinity)) - (2 && -0 && 38..toString() << -4);
                            }
                            var bar_1 = f6([], (c = 1 + c, (false % "c" == (bar_1 && (bar_1.null |= NaN < 24..toString()))) % (-0 >>> /[a2][^e]+$/ != "b" + -4)));
                            function f7(a_1, yield, a_1) {
                            }
                            var yield = f7();
                            function f8(bar, a_1) {
                                c = 1 + c, ((c = c + 1, 22) && (a_1 = -0 % "number")) ^ 24..toString() * true > (undefined & 24..toString());
                            }
                            var yield_2 = f8((c = 1 + c, (yield += 5 >= 23..toString() ^ -1 + -1) >= (/[a2][^e]+$/ || false) >>> ("a" === "bar")));
                            function f9([]) {
                                c = 1 + c, void 25 >= (Infinity ^ "undefined") && /[a2][^e]+$/ !== undefined != 4 >>> -0;
                            }
                            var yield_1 = f9([ (c = 1 + c, delete (bar_1 = ("number" != /[a2][^e]+$/) << ("number" === 3))), 4, (c = 1 + c, 
                            25 > 1 ^ -1 <= 2 || ("foo" != "function") >> (c = c + 1, 
                            4)) ], (c = c + 1) + {
                                in: (c = 1 + c, -void -0 << ((yield = (-0, "")) ^ this > "")),
                                3: (c = 1 + c, yield[--b + (yield = void (("number" || 38..toString()) & -0 * "c" ^ ("bar" ^ "b") !== this < [ , 0 ][1]))] *= ((-2 == "") > {} >>> "undefined", 
                                (-5 >= 0) / (/[a2][^e]+$/ || ""))),
                                next: (c = 1 + c, ((yield[c = 1 + c, ("function" && (-42n).toString()) / (-4 === -0) == (-5, 
                                {}) * (38..toString() ^ "foo")] = "undefined" || 5) && (4 || "foo")) - ((c = c + 1, 
                                -4) == (yield && (yield[c = 1 + c, (5 / "number" || true && /[a2][^e]+$/) << (25 - 38..toString() | Infinity < [])] += "undefined" | this))))
                            }.null, 24..toString());
                        }();
                    }
                } while ((c = c + 1) + --b && --brake27 > 0);
            }
        } catch (b_2) {} finally {
            {
                var expr34 = a++ + (~(c = c + 1, (b && (b.then = 3 ^ "bar")) === (c = c + 1, 
                this)) || 9).toString()[b = a];
                L37254: for (var key34 in expr34) {
                    var b;
                }
            }
        }
        {
            var brake36 = 5;
            L37255: while (delete ((-3 <= 3 ^ 1 !== Infinity) >= (b = {} + "number" || void -1)) && --brake36 > 0) {
                var brake37 = 5;
                do {
                    {
                        var brake38 = 5;
                        while (--b + delete (b && (b.undefined += ((b && (b[c = 1 + c, 
                        (b && (b.b = false * -3 >> ("b", -3))) << (("object" ^ -2) << (false, 
                        []))] = "b" || 22)) >> (24..toString() ^ 24..toString())) + (delete "object" ^ NaN == {}))) && --brake38 > 0) {
                            c = c + 1;
                        }
                    }
                } while (b-- && --brake37 > 0);
            }
        }
    }
}

var b = f0((c = c + 1) + (a++ + ("c" in [ [][a++ + ~b] ])), 23..toString());

console.log(null, a, b, c, Infinity, NaN, undefined);
// uglified code
// (beautified)
var _calls_ = 10, a = 100, c = 0;

function f0() {
    for (var t in --g + ("function" == typeof l && 0 <= --_calls_ && l(--g + new function(t, n, i) {
        this.value = (n += (0 ^ "object" - this && -23..toString()) !== (0 <= this == 1)) >>> ((n = {} << -1 << (2 < 3n ^ 3) <= void 38..toString()) != ((n = !0) != (NaN ^ (n *= -4 >> this)))) ^ (n += (22 | this) % (c += 1, 
        NaN) ^ -21) <= !1 << (-7 | 1 << 23..toString()) >= (1 != (t && (t.in = [])) - "bar" ^ ((2 === [ , 0 ].length) / "a" + NaN) % (t && (t[l++] = !0 + 23..toString() % ""))), 
        this.b &= (i && (i.set %= 0 >>> "b" - "undefined" / 24..toString() | -1 ^ 1 / 0 * 24..toString() / !0)) >>> (n && (n["function" == typeof i && 0 <= --_calls_ && i("object")] = (2 === [ , 0 ].length ^ -3) % (25 >>> this) * (c += 1, 
        23..toString())) || (i && (i[l++ + ("function" == typeof f1 && 0 <= --_calls_ && f1(..."" + i, (c = 1 + c, 
        n && (n[t && "function" == typeof t.null && 0 <= --_calls_ && t.null()] = !0)), (c = 1 + c, 
        (n += (c += 1, !1 < 23..toString())) ^ (t |= 0) % !0), (c = 1 + c, !1 >>> (null >> 23..toString() >> 4))))] = {} < !0 ^ -4), 
        (3 === 23..toString()) <= NaN)) & (-4 <= this & (2 === [ , 0 ].length ^ 4)) % (1 / 0) << 1 == (n *= ((1 === 24..toString()) >>> !1) / !1 ^ 0), 
        this.then = ((/[a2][^e]+$/ + (2 === [ , 0 ].length)) % 0 >> ((i && (i[c = 1 + c, 
        0 << (!1 < -1 - 23..toString())] = 0)) <= ("" ^ 23..toString())) | !1 <= (("function" ^ (-42n).toString()) < (t && (t[c = 1 + c, 
        !0] += 24..toString() < "c")))) <= (i && (i[--n + (c = 1 + c, c = 1 + (c += 1), 
        ~(n = "undefined" ^ 38..toString()) >> (n = !1)) ? (c += 1) + (null in {
            foo: !1 >> this > (n += "a-4"),
            async: (c = 1 + (c = 1 + c), 0 >> (NaN != (n = 0)))
        }) : n] = (c = c + 1 + 1, 0))) != (-20 <= (i && (i[c = 1 + c, 4 % (-3 >>> 23..toString() ^ NaN === [])] |= !0)) >>> (n && (n[c = 1 + c, 
        c += 1, this < !1 ^ 2 == 23..toString()] >>>= 22)) < 1 / {} - (i && (i.undefined += void 0)) >> 22) + ((0 ^ (i && (i.undefined = "undefined" != 24..toString())) || !0) >= (t += /[a2][^e]+$/ << (i && (i[c = 1 + c, 
        null * (2 === [ , 0 ].length) ? (t = NaN < this) || !1 : 0] += !1)) & (t && (t[(c += 1) + l++] = NaN))));
        for (var o = 5; [].set && 0 < --o; ) {}
        var r = 5;
        do {
            var a, g = (c += 1) + n--;
            for (a in g) {
                c = 1 + c;
                if (!(--n + a)) {
                    for (var e = 5; c = 1 + c, (-2 == (2 === [ , 0 ].length) != 1) / (!1 - (24..toString() <= 0)) && 0 < --e; ) {
                        c = 1 + c, n = null - 38..toString(), 23..toString();
                    }
                }
            }
        } while (--n + n && 0 < --r);
    }(23..toString())))) {
        var l = function(t, n) {
            c = 1 + c, c += 1, n && (n.Infinity /= 5 / ((2 === [ , 0 ].length) <= -5)), 
            c = 1 + c, t && (t.b -= ("bar" !== 24..toString()) / NaN >> (38..toString() >>> 0 && !1)), 
            c = 1 + c;
        }("function" == typeof f4 && 0 <= --_calls_ && f4());
        for (l in --g + (g = l)) {
            for (var n = 5; --g + (t && "function" == typeof t.then && 0 <= --_calls_ && t.then(l++, -0)) && 0 < n; --n) {
                if (l++) {
                    var i, o = l++ + void (t += (t += 4) !== (l && (l[c = 1 + c, 
                    0 * (l && (l[c = 1 + c, c += 1, t = -0 * ("function" !== (2 === [ , 0 ].length)) != 64 + (38..toString() <= null)] += "a" & 2 === [ , 0 ].length)) >>> 0] = !0)), 
                    l && (l[g <<= l] += NaN));
                    for (i in o) {
                        c = 1 + c;
                        c += 1;
                    }
                }
            }
        }
    }
    try {
        var r = 5;
        if (new function(t) {
            this.foo /= (!0 - ("b" == (2 === [ , 0 ].length)) ^ (t && (t[c = 1 + c, 
            0] = "a" <= []), 0 != {} << /[a2][^e]+$/)) < (t && ([ t["function" == typeof f2 && 0 <= --_calls_ && f2(--g, t && t[c = 1 + c, 
            l = ((l = 3 === (2 === [ , 0 ].length)) && 0) % (-3 == (t && (t.NaN = 22)))])] ] = [ (l = 24..toString() - null != (c += 1, 
            -3)) > (!0 & "foo" % 24..toString()) || !0 % (23..toString() >>> /[a2][^e]+$/) / (22 / ({} - !0o644n)) ])) == (c += 1, 
            !0 < (1 != (t && (t.c = 0)) && 0) < (0 < (c += 1, "a") ^ "" << [] ^ 2 === [ , 0 ].length && !0 & (l = 5))) != (({} <= NaN != (0 == 5 < 24..toString())) - (NaN ^ !1 < (2 === [ , 0 ].length & -1)) == (-5 == ([] < 4) >> 0) * (c += 1, 
            0) ^ ((!(2 === [ , 0 ].length) >> (2 === [ , 0 ].length && "object")) % (c += 1, 
            t && (t.a = 2 === [ , 0 ].length & -1)) != -(NaN <= (2 === [ , 0 ].length))) >> ((-3 | "function" * (2 === [ , 0 ].length)) ^ (23..toString(), 
            /[a2][^e]+$/) ^ (c = c + 1 + 1, {} / ("object" << 38..toString()) & (this - "c") / 5))), 
            this[(t && (t.next += 0)) in 0] = (1 <= NaN % (c += 1, !0)) << ((NaN ^ 2 === [ , 0 ].length != NaN) < (c += 1, 
            "a" + 1 / 0) > (t && (t[c = 1 + c, !1 - (!38..toString()) ** (0 + this)] = "number"), 
            "bar" ** ("a" | [])) != (23..toString(), !1 >> (!1 <= ("undefined" ^ 24..toString())))) && ((!1 ^ "" + (2 === [ , 0 ].length)) + (t && (t[[][c = 1 + c, 
            (t && (t[c = 1 + c, t && (t[(l++ + !0 || l || 3).toString()] = NaN ^ (t && (t[t && "function" == typeof t.in && 0 <= --_calls_ && t.in("")] += t && (t[c = 1 + c, 
            (0 == 4 <= []) >> (t[(c += 1) + ("function" == typeof f4 && 0 <= --_calls_ && f4(3, [], void 0))] <<= t && ({
                "\t": t[c = 1 + c, -0]
            } = {
                "\t": 0
            }))] = !1))))] = -5)) % (c += 1, {}) != 0]] = (23..toString() << -5) % 0)) <= ((!0 ^ (c += 1, 
            -5)) >= 38..toString() >> "undefined" >>> !1)) * (-23 <= (0 ^ (2 === [ , 0 ].length ^ 24..toString() && -1))) % (24..toString(), 
            t && (t.b = !1), 38..toString(), t && (t[c = 1 + c, (!0 <= (24..toString() <= void 0)) >>> (0 <= {} / "foo")] = 0), 
            0);
        }() && 0 < --r) {
            return;
        }
    } catch (t) {}
    try {
        var a = 5;
        do {
            var g = function() {
                var t;
                --g, l--, c = 1 + c, (t = -1) && ({
                    1.5: t.async
                } = {
                    1.5: -2
                });
                c = 1 + c, n && (n.null |= NaN < 24..toString());
                var n = (c = 1 + c, void (c = 1 + (c += 1)));
                c = 1 + c, 23..toString(), c = 1 + c, c += 1, 24..toString(), 24..toString();
                c = (n = 1) + (c = 1 + (c = (c = 1 + (c = 1 + c)) + 1 + 1)), ""[--g + void 0] *= NaN, 
                c = 1 + (c = 1 + c), (-42n).toString(), 38..toString(), c += 1, 
                24..toString(), c = 1 + c;
            }();
        } while ((c += 1) + --g && 0 < --a);
    } catch (t) {} finally {
        l++, c += 1, (~((g && (g.then = 3)) === (c += 1, this)) || 9).toString()[g = l];
    }
    for (var e = 5; g = {} + "number" || void 0, 0 < --e; ) {
        var f = 5;
        do {
            for (var S = 5; --g + (g && (g.undefined += ((g && (g[c = 1 + c, (g && (g.b = 0)) << (-2 << [])] = "b")) >> (24..toString() ^ 24..toString())) + (!0 ^ NaN == {})), 
            !0) && 0 < --S; ) {
                c += 1;
            }
        } while (g-- && 0 < --f);
    }
}

var b = f0((c += 1) + (a++ + ("c" in [ [][a++ + ~(b = 10)] ])), 23..toString());

console.log(null, a, b, c, 1 / 0, NaN, void 0);

export {
    f0
};
original result:
null 102 undefined 25 Infinity NaN undefined

uglified result:
null 102 undefined 28 Infinity NaN undefined
// reduced test case (output will differ)

// (beautified)
({
    in: yield = 0,
    3: yield[yield = void 0],
    next: yield[0]
});
// output: TypeError: Cannot read property '0' of undefined
// minify: 
// options: {
//   "module": false,
//   "output": {
//     "v8": true
//   },
//   "validate": true
// }
minify(options):
{
  "module": false,
  "output": {
    "v8": true
  }
}

Suspicious compress options:
  evaluate
  pure_getters
  reduce_vars
  side_effects
  unused

Suspicious options:
  rename