Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ufuzz failure #5918

Closed
alexlamsl opened this issue Aug 13, 2024 · 0 comments · Fixed by #5920
Closed

ufuzz failure #5918

alexlamsl opened this issue Aug 13, 2024 · 0 comments · Fixed by #5920
Labels

Comments

@alexlamsl
Copy link
Collaborator

// original code
// (beautified)
var _calls_ = 10, a = 100, b = 10, c = 0;

function f0() {
    switch (([ , 0 ].length === 2) in [ (c = c + 1) + {}.then, --b + [ a++ + (a = (c = c + 1) + {} ? a++ + [ (c = 1 + c, 
    a && ([ a.NaN ] = [ (-3 << 24..toString() && -5 === false) !== ("bar" || "undefined") >= {} * -0 ])), (c = 1 + c, 
    ("bar" >> undefined ^ (null || "b")) - ((22 | 1) === 23..toString() + NaN)) ] : a), a++ + b++ ], b++, --b + (0 === 1 ? a : b), --b + void (((c = c + 1, 
    []) ?? 2 >> -0) - (a && (a[a++ + (3 in {
        static: (c = 1 + c, "function" > -4 < (/[a2][^e]+$/ ^ 38..toString()) & (-1 >= Infinity) / (true !== true))
    })] &= + -1 && 0 ^ -3))) ]) {
      case []:
        {
            var b = function f1() {
                function f2(bar, b_2, Infinity_2) {
                    {
                    }
                    {
                    }
                    {
                    }
                }
                var b_2 = f2(a++ + ((a **= "number" + "c") === [ , 0 ][1] - -0 & (5 === -1) % ([ , 0 ].length === 2 || "function")), a++ + ((([ , 0 ].length === 2) << 23..toString()) % ("a" | -0) >= (1 || 23..toString()) >>> (38..toString() == -2)));
            }(38..toString(), true, /[abc4]/.test(((--b + (a++ + (typeof await_1 === "unknown") || 8).toString()[(c = c + 1) + +(("object" | 25) != 0 << -0 ?? (0 ^ 1) <= 1 << 5)] || a || 3).toString() || b || 5).toString()));
        }
        if (a++) {
            if (--b + +function() {
                if ((c = c + 1) + {
                    next: (c = 1 + c, (this << 2 ^ -0 & 24..toString()) <= ("number" * 2 || (undefined, 
                    3)))
                }) {
                    c = c + 1;
                }
                c = c + 1;
                {
                    var brake12 = 5;
                    L19279: do {
                        return;
                    } while (b && b.Infinity && --brake12 > 0);
                }
            }()) {
                var brake14 = 5;
                L19280: while (/[abc4]/g.exec((--b + function(Infinity_1, undefined_2) {
                    var foo_1 = (c = 1 + c, (24..toString() === -2) <= ([ , 0 ][1] == 23..toString()) != (c = c + 1, 
                    24..toString() * 2));
                    {
                        var brake16 = 5;
                        L19281: do {
                            c = 1 + c, (null ^ NaN || {} - "a") / (24..toString() != "" ^ (undefined_2 && (undefined_2.NaN += 23..toString() % 5)));
                        } while ((c = 1 + c, (3 > "function" !== ("number" & "number")) - ("foo" + Infinity >>> (Infinity, 
                        ""))) && --brake16 > 0);
                    }
                } || b || 5).toString()) && --brake14 > 0) {
                    var bar = function f3(async) {
                        c = 1 + c, b && (b.var -= (b && ([ b[--b + -~((-3 & true) + (23..toString() | 22))] ] = [ (3 == NaN, 
                        0 & 25) ])) < ((0 || 3) <= ("number" <= 2)));
                        {
                            var brake20 = 5;
                            do {
                                c = 1 + c, (null === false) * ("undefined" ^ "number") - ((-3 && 24..toString()) ^ {} === 4);
                            } while ((c = 1 + c, ("function" > "b") >> "a" + {} <= (([ , 0 ].length === 2) > 5 || {} / -1)) && --brake20 > 0);
                        }
                        for (var brake22 = 5; (c = 1 + c, (delete null & 38..toString() - "number") < (b && (b[(c = c + 1) + +function() {
                        }()] += "c" << "" > (5 == "number")))) && brake22 > 0; --brake22) {
                            c = 1 + c, (null ^ "c") <= (false & this) < (-5 ^ 38..toString()) % ([ , 0 ][1] >>> 0);
                        }
                    }(23..toString());
                }
            } else if ((c = c + 1) + {
                ...bar && typeof bar.var == "function" && --_calls_ >= 0 && ((c = c + 1) + [ , 0 ][1], 
                bar.var)((c = 1 + c, (c = c + 1, [ , 0 ][1] - 24..toString()) == "a" / 0 >>> (true & {}))),
                3: typeof (a++ + (b + 1 - .1 - .1 - .1))
            }) {
                var arguments_1;
            } else {
                return (c = c + 1) + (typeof a_1 != "function");
            }
        }
        a++ + --a;
        break;

      default:
        {
            var brake28 = 5;
            L19282: do {
                c = c + 1;
            } while (--b + ((c = c + 1) + (bar && bar[(c = c + 1) + (("c" ^ -1) >>> (true >> [ , 0 ][1]), 
            "foo" <= -5 > ("b" | 23..toString()))])) && --brake28 > 0);
        }
        {
            var brake30 = 5;
            do {
                typeof b_1 == "special";
            } while (a++ + (typeof b == "function" && --_calls_ >= 0 && b(--b + (typeof bar == "function" && --_calls_ >= 0 && bar(0)))) && --brake30 > 0);
        }
        switch (a++ + +async function() {
            try {
                {
                    var expr34 = --b + (b >>= a);
                    L19283: for (let key34 in expr34) {
                        ({
                            Infinity: (c = 1 + c, (("a", false) <= (-4 > -5)) * ((key34 && (key34.var = null / 23..toString())) ?? -2 % "object"))
                        })[c = 1 + c, void (-0 > []) % (arguments_1 && (arguments_1.a = ("undefined" || "number") * (this >> [ , 0 ][1])))];
                    }
                }
            } finally {
            }
        }()) {
          default:
            ;
            var b;
            {
                var arguments_2 = function f4(yield_2) {
                    for (var brake40 = 5; (c = c + 1) + (b && b[c = 1 + c, ("number" / -0 || "object" === ([ , 0 ].length === 2)) >> (yield_2 && (yield_2[a++ + +b] = false < -3 ?? (arguments_1 *= undefined !== true)))]) && brake40 > 0; --brake40) {
                        try {
                            c = 1 + c, (-2 <= [] >= undefined / "bar") >>> (("b" ^ 3) < undefined / "bar");
                        } catch (bar_2) {
                        }
                    }
                    var bar_1;
                    {
                        var brake44 = 5;
                        L19284: do {
                            var async_1;
                        } while ((c = c + 1) + delete a && --brake44 > 0);
                    }
                }(b = bar_1 => typeof arguments != "undefined" && arguments && arguments[1], "a");
            }

          case a++ + [].then:
            break;

          case --b + --a:
            break;

          case a++ + [ /[abc4]/.test((void (("b" >> "a" || "function" ^ 25) >> (3 / -5 | (/[a2][^e]+$/, 
            "bar"))) || b || 5).toString()), b--, a++ + typeof ++a ]:
            ;
            try {
                {
                    var expr48 = {
                        length: --b + bar
                    };
                    L19285: for (const key48 in expr48) {
                        c = c + 1;
                    }
                }
            } catch (b) {
                switch ((c = c + 1) + (arguments_1 && arguments_1.Infinity)) {
                  case ((arguments_2 += "" && 5) | +1) < !([ , 0 ][1] === NaN):
                    break;

                  case typeof arguments_1 == "function" && --_calls_ >= 0 && arguments_1(..."" + arguments_2):
                    {
                        var brake51 = 5;
                        while ((c = 1 + c, (([] && "") != (bar && (bar[c = 1 + c, 
                        b && (b.b <<= ("number" >> 4) - (22 == -0) == ("b" != "a" | (NaN | {})))] = 25 / false))) > ((-2 === -2) <= {} % "c")) && --brake51 > 0) {
                            c = 1 + c, undefined <= -1 > (3 != undefined) == void (-2 & 24..toString());
                        }
                    }
                    {
                        var brake53 = 5;
                        while ((c = 1 + c, b += !38..toString() != false - [ , 0 ][1] !== (-5 == false, 
                        this - 4)) && --brake53 > 0) {
                            c = 1 + c, (bar && (bar[[ (c = 1 + c, (1 || true) & "bar" != "" || /[a2][^e]+$/ << "number" >> ("bar" > false)) ]] = Infinity + undefined === ("b" != "b"))) >= (22 - true ^ (-1 && NaN));
                        }
                    }
                    {
                        var expr55 = (c = 1 + c, ({} & 24..toString()) << (b && (b[c = 1 + c, 
                        -0 / -4 <= (b = this ?? 3) | ("a" ^ /[a2][^e]+$/) !== (Infinity && {})] = "foo" / [ , 0 ][1])) !== ((-5 && 2) === (4 === 3)));
                        for (var key55 in expr55) {
                            c = 1 + c;
                            var bar_2 = expr55[key55];
                            c = 1 + c, 0 * -5 === (b && (b.async = "object" / false)) && (bar_2 && (bar_2[{}] += (/[a2][^e]+$/ ^ -2) > (23..toString() && Infinity)));
                        }
                    }
                    break;

                  case (c = c + 1) + (b += a):
                    break;

                  case typeof bar == "function" && --_calls_ >= 0 && bar(22):
                    break;
                }
                if (bar = ((c = 1 + c, ([] < -4) % (NaN ^ -5) << (arguments_1 %= null > 4 || 2 | -1)) || 8).toString()[c = 1 + c, 
                (22, "c") >>> (24..toString() ^ 25) >= (true ^ -3, null < ([ , 0 ].length === 2))]) {
                    var expr58 = bar && bar.null;
                    for (let key58 in expr58) {
                        c = 1 + c;
                        var bar = expr58[key58];
                        var b = (c = 1 + c, b_1 && (b_1.__proto__ += (c = c + 1, 
                        Number(0xdeadn << 16n | 0xbeefn) << true) & ("function" <= [] & 5 * 23..toString()))), b_1 = (c = 1 + c, 
                        (undefined ^ 5 ^ 25 >= "undefined") - (-5 !== "b" == (/[a2][^e]+$/ ^ true)));
                    }
                } else {
                    c = 1 + c, -2 < Infinity <= 1 - /[a2][^e]+$/ >= (("foo" || "function") & 4 % -0);
                }
                for (var brake62 = 5; function() {
                    c = 1 + c, c = c + 1, -4 % 5 << (4 >> []);
                } && brake62 > 0; --brake62) {}
            } finally {
                switch (--b + (arguments_2 |= (c = c + 1) + typeof b)) {
                  case typeof undefined_1 == "boolean":
                    c = 1 + c, ((Infinity > "c") << (this <= "undefined")) % (({} !== -2) >> ("undefined" > "object"));
                    break;

                  case bar:
                    break;

                  case --b + a++:
                    break;

                  case (c = c + 1) + ++a:
                    break;
                }
            }
            bar && typeof bar.done == "function" && --_calls_ >= 0 && bar.done(a++ + (b + 1 - .1 - .1 - .1));
            break;
        }

      case b && typeof b.NaN == "function" && --_calls_ >= 0 && b.NaN(0, 3):
        c = c + 1;
        break;

      case arguments_1 && arguments_1.async:
        break;
    }
    try {
        {
            var expr70 = b;
            for (arguments_2 in expr70) {
                c = 1 + c;
                var a_1 = expr70[arguments_2];
                {
                    var b = function f5(let_1) {
                        {
                            for (var brake73 = 5; a++ + (c = 1 + c, b && (b[typeof let_1 == "function" && --_calls_ >= 0 && let_1((c = 1 + c, 
                            4 === "c" & -4 === Infinity ?? ([ , 0 ].length === 2) + true + ("" || -1)), (c = 1 + c, 
                            b = ((bar && (bar[c = 1 + c, ("undefined" != 23..toString() | (arguments_2 && ({
                                "": arguments_2[c = 1 + c, (c = c + 1, /[a2][^e]+$/ >> "undefined") << ((4 || 25) >> (1 & 1))]
                            } = {
                                "": "foo" !== "bar"
                            }))) != ((1 | -3) ^ "bar" / 23..toString())] = "b" !== 38..toString())) >> (([ , 0 ].length === 2) >= -2)) % (false === -0 && -2 >> ([ , 0 ].length === 2))), (c = 1 + c, 
                            ("" >> 5) * (4 === 3) == (("b" | {}) != "bar" >> 2)))] = (undefined < 3) / ([] !== [ , 0 ][1]) ^ ([ , 0 ].length === 2 ?? /[a2][^e]+$/) * (true, 
                            this))) && brake73 > 0; --brake73) {
                            }
                            for (var brake75 = 5; --b + (bar *= (c = 1 + c, (/[a2][^e]+$/ | -4 ?? 38..toString() != 5) - delete (this && "undefined"))) && brake75 > 0; --brake75) {
                                return;
                            }
                        }
                    }();
                }
            }
        }
    } finally {
        if ([][b + 1 - .1 - .1 - .1]) {
            c = c + 1;
        } else if (a++ + "bar") {
            var brake80 = 5;
            while (--b + (typeof b_2 != "object") && --brake80 > 0) {
                if ((c = c + 1) + (typeof arguments_1 !== "crap")) {
                    var a_2;
                } else {
                    L19286: for (var brake83 = 5; (c = c + 1) + {
                        [(c = 1 + c, (null && /[a2][^e]+$/) % ("b" << null) | (true && "number") !== (this ^ 1))]: (c = 1 + c, 
                        (c = c + 1, "a") < 22 >> {} ^ (-1 >>> 2) - (23..toString() && "undefined")),
                        foo: (c = 1 + c, a_2 && (a_2.value = (c = c + 1, "function", 
                        -4 - 23..toString()) + ((c = c + 1, NaN) !== (undefined ^ 1))))
                    }[b + 1 - .1 - .1 - .1] && brake83 > 0; --brake83) {
                        c = c + 1;
                    }
                }
            }
        } else {
            for (var brake85 = 5; /[abc4]/g.exec((--b + void setImmediate(() => bar && typeof bar.var == "function" && --_calls_ >= 0 && bar.var([ , 0 ][1], a++ + typeof (c = 1 + c, 
            (b && (b[c = 1 + c, (c = c + 1, [] >> 3) === (5 != 23..toString(), 24..toString(), 
            [ , 0 ].length === 2)] = Infinity != -4)) / (2 == -2) && ("a" === /[a2][^e]+$/) > ({} ^ "foo")), (c = c + 1) + [ ...[] ].done)) || b || 5).toString()) && brake85 > 0; --brake85) {
                var brake86 = 5;
                L19287: do {
                    if (--a) {
                        try {
                            {
                            }
                        } catch (NaN_2) {
                            c = 1 + c, (2 !== "object" === 4 << null) >= (0 ^ {}) + (false, 
                            "a");
                        }
                    }
                } while (--b + ({} in [ ..."" + bar, --b + !function bar_1() {
                }(), typeof arguments_2 == "function" && --_calls_ >= 0 && arguments_2(-5, (c = 1 + c, 
                (c = c + 1, a_2 && (a_2[c = 1 + c, (25 + 3) % (Infinity == "b") * ("object" + "function" - (2 >> 0))] += [ , 0 ].length === 2 | true)) ^ (([ , 0 ][1] || this) | "object" >>> "undefined"))) ]) && --brake86 > 0);
            }
        }
        c = c + 1;
        {
            var a_1 = function f6(bar_1, a_2 = a++ + [ --b + /[abc4]/.test((typeof arguments_1 == "function" && --_calls_ >= 0 && arguments_1((c = 1 + c, 
            (arguments_1 && (arguments_1[arguments_2 && typeof arguments_2.get == "function" && --_calls_ >= 0 && arguments_2.get(false, "a", ...[])] /= -1 % NaN >= "function" / -4)) < (arguments_2 ??= "foo" * -4 >= (24..toString() >= "function")))) || b || 5).toString()) ][a++ + (typeof b == "function" && --_calls_ >= 0 && b(a++ + -(arguments_1 && (arguments_1[--b + (typeof b == "function" && --_calls_ >= 0 && b("number"))] ^= ((23..toString() < 23..toString()) << Infinity * ([ , 0 ].length === 2)) % (("bar" ?? false) >> (bar = [] % null)))), (typeof b == "function" && --_calls_ >= 0 && b((c = 1 + c, 
            (22 >= null) / ([] | []) <= ((b && (b.static += "" != "function")) & delete this))) || a || 3).toString(), a++ + a++))]) {
                function f7(bar_1) {
                    function f8(bar_1) {
                    }
                    var async_2 = f8((c = 1 + c, ([ , 0 ][1] >> "number" <= ("a" === -1)) * (-1 % (-42n).toString() !== (2 ^ NaN))));
                    function f9(b_2, async_1, undefined_2) {
                    }
                    var b_1 = f9(1);
                }
                var foo_1 = f7(--b + (typeof arguments_1 == "function" && --_calls_ >= 0 && arguments_1()), b += a);
                function f10(b_1, foo_1, Infinity_2) {
                    {
                    }
                }
                var Infinity = f10();
                function f11(bar, b_1, a_2) {
                    function* f12(Infinity_2) {
                    }
                    var b_1 = f12("");
                    function f13(async) {
                    }
                    var yield_2 = f13`${c = 1 + c, (c = c + 1, null) & -0 << undefined | ("undefined" ^ "a") + (-3 + -3)}${c = 1 + c, 
                    25 * ([ , 0 ].length === 2) <= 3 % 4 !== 5 * 2 >= (22 != "bar")}${c = 1 + c, 
                    (0 >> -5) % (-5 != -0) && (a_2 = 0 ^ 4) ^ ~"a"}`;
                    function f14(a_2_1) {
                    }
                    var yield_2_1 = f14();
                }
                var a = f11();
                function f15(await, foo_2) {
                    function f16(bar, arguments_2) {
                    }
                    var NaN_2 = f16(1);
                    function f17() {
                    }
                    var bar_1 = f17((c = 1 + c, (c = c + 1, 2 ?? [ 3n ][0] > 2) < (arguments_2 %= ([ , 0 ][1] && "function") ?? ("a" || -1))), (c = 1 + c, 
                    ("c" & "b") != 1 / undefined !== ((this || true) == !-5)), true);
                }
                var a_2 = f15();
            }();
        }
        {
            var expr94 = a++ + !(23..toString() / "a" / (25 + -5) - (38..toString() ^ -5, 
            a_2 = -4 ^ null));
            for (var key94 in expr94) {
                c = 1 + c;
                var a_1_2 = expr94[key94];
                {
                    var brake95 = 5;
                    L19288: do {
                        c = c + 1;
                    } while ((c = c + 1) + void b && --brake95 > 0);
                }
            }
        }
    }
    --b + +a;
}

var a_2 = f0({}, (c = c + 1) + a--, (c = c + 1) + (0 === 1 ? a : b));

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

function f0() {
    switch ((2 === [ , 0 ].length) in [ (c += 1) + {}.then, --o + [ a++ + (a = (c += 1) + {} ? a++ + [ (c = 1 + c, 
    a && ([ a.NaN ] = [ !1 ])), (c = 1 + c, 0) ] : a), a++ + o++ ], o++, --o + o, --o + (c += 1, 
    void (a && (a[a++ + (3 in {
        static: (c = 1 + c, 0)
    })] &= -3))) ]) {
      case []:
        ((--o + ("" + (a++ + ("unknown" == typeof await_1) || 8))[(c += 1) + 1] || a || 3).toString() || o || 5).toString(), 
        a++, a **= "numberc";
        var t, o = void a++;
        if (a++) {
            if (--o + +function() {
                (c += 1) + {
                    next: (c = 1 + c, (this << 2 ^ 0) <= 3)
                } && (c += 1), c += 1;
                var a = 5;
                do {
                    return;
                } while (o && o.Infinity && 0 < --a);
            }()) {
                for (var n = 5; /[abc4]/g.exec((--o + function(a, n) {
                    c = 1 + c, c += 1;
                    for (var t = 5; c = 1 + c, n && (n.NaN += 3), c = 1 + c, 0 < --t; ) {}
                } || o || 5).toString()) && 0 < --n; ) {
                    var e = function() {
                        c = 1 + c, o && (o.var -= (o && ([ o[25 + --o] ] = [ 0 ])) < !1);
                        for (var a = 5; c = 1 + (c = 1 + c), 1 <= (5 < (2 === [ , 0 ].length) || NaN) && 0 < --a; ) {}
                        for (var n = 5; c = 1 + c, 0 < (o && (o[(c += 1) + NaN] += !1)) && 0 < n; --n) {
                            c = 1 + c;
                        }
                    }();
                }
            } else if (!((c += 1) + {
                ...e && "function" == typeof e.var && 0 <= --_calls_ && (c += 1, 
                e.var)((c = 1 + c, 0 == (c += 1, -24))),
                3: typeof (a++ + (o + 1 - .3))
            })) {
                return (c += 1) + ("function" != typeof d);
            }
        }
        a++, --a;
        break;

      default:
        for (var f = 5; --o + ((c = c + 1 + 1) + (e && e[(c += 1) + !1])) && 0 < --f; ) {}
        for (var r = 5; a++ + ("function" == typeof o && 0 <= --_calls_ && o(--o + ("function" == typeof e && 0 <= --_calls_ && e(0)))) && 0 < --r; ) {}
        switch (a++ + +async function() {
            for (var n in --o + (o >>= a)) {
                c = 1 + c, n && (n.var = 0), c = 1 + c, t && (t.a = "undefined" * (this >> 0));
            }
        }()) {
          default:
            var i = function() {
                for (var n = 5; (c += 1) + (o && o[c = 1 + c, ("object" === (2 === [ , 0 ].length)) >> (a++, 
                !1)]) && 0 < n; --n) {
                    try {
                        c = 1 + c;
                    } catch (c) {}
                }
                for (var t = 5; (c += 1) + delete a && 0 < --t; ) {}
            }(o = c => void 0 !== arguments && arguments && arguments[1]);

          case a++ + [].then:
          case --o + --a:
            break;

          case a++ + [ /[abc4]/.test((o || 5).toString()), o--, a++ + typeof ++a ]:
            try {
                for (const $ in {
                    length: --o + e
                }) {
                    c += 1;
                }
            } catch (o) {
                switch ((c += 1) + (t && t.Infinity)) {
                  case (1 | (i += "")) < !0:
                    break;

                  case "function" == typeof t && 0 <= --_calls_ && t(..."" + i):
                    for (var l = 5; c = 1 + c, !1 < ("" != (e && (e[c = 1 + c, o && (o.b <<= !1)] = 1 / 0))) && 0 < --l; ) {
                        c = 1 + c;
                    }
                    for (var s = 5; c = 1 + c, (o += !1 !== this - 4) && 0 < --s; ) {
                        c = 1 + c, e && (e[[ (c = 1 + c, 1) ]] = !1);
                    }
                    c = 1 + c;
                    var v, u = 0 << (o && (o[c = 1 + c, 0 <= (o = this ?? 3) | !0] = NaN)) !== !1;
                    for (v in u) {
                        c = 1 + c;
                        var _ = u[v];
                        c = 1 + c, -0 === (o && (o.async = NaN)) && _ && (_[{}] += !1);
                    }
                    break;

                  case (c += 1) + (o += a):
                  case "function" == typeof e && 0 <= --_calls_ && e(22):
                }
                if (e = ("" + (0 << (t %= -1) || 8))[c = 1 + (c = 1 + c), null < (2 === [ , 0 ].length) <= 0]) {
                    var y, N = e && e.null;
                    for (y in N) {
                        c = 1 + c;
                        var e = N[y], o = (c = 1 + c, h && (h.__proto__ += 0 & (c += 1, 
                        +("" + (0xdeadn << 16n | 0xbeefn)) << !0))), h = (c = 1 + c, 
                        4);
                    }
                } else {
                    c = 1 + c;
                }
                for (var p = 5; 0 < p; --p) {}
            } finally {
                switch (--o + (i |= (c += 1) + typeof o)) {
                  case "boolean" == typeof undefined_1:
                    c = 1 + c;
                    break;

                  case e:
                  case --o + a++:
                  case (c += 1) + ++a:
                }
            }
            e && "function" == typeof e.done && 0 <= --_calls_ && e.done(a++ + (o + 1 - .3));
        }

      case o && "function" == typeof o.NaN && 0 <= --_calls_ && o.NaN(0, 3):
        c += 1;
        break;

      case t && t.async:
    }
    try {
        var b = o;
        for (i in b) {
            c = 1 + c;
            var d = b[i], o = function() {
                for (var n = 5; a++ + (c = 1 + c, o && (o[!1] = 0 ^ (2 === [ , 0 ].length ?? /[a2][^e]+$/) * this)) && 0 < n; --n) {}
                --o, e *= (c = 1 + c, -5);
            }();
        }
    } finally {
        if ([][o + 1 - .3]) {
            c += 1;
        } else {
            a++;
            for (var g, k = 5; --o + ("object" != typeof b_2) && 0 < --k; ) {
                if (!((c += 1) + ("crap" != typeof t))) {
                    for (var w = 5; (c += 1) + {
                        [NaN | "number" !== (1 ^ this)]: (c = 1 + (c = 1 + c), 0),
                        foo: (c = 1 + (c += 1), g && (g.value = -27 + (1 !== (c = c + 1 + 1, 
                        NaN))))
                    }[o + 1 - .3] && 0 < w; --w) {
                        c += 1;
                    }
                }
            }
        }
        c += 1, a++, --o, ("function" == typeof t && 0 <= --_calls_ && t((c = 1 + c, 
        (t && (t[i && "function" == typeof i.get && 0 <= --_calls_ && i.get(!1, "a")] /= !1)) < (i ??= !1))) || o || 5).toString(), 
        a++, "function" == typeof o && 0 <= --_calls_ && o(a++ - (t && (t[--o + ("function" == typeof o && 0 <= --_calls_ && o("number"))] ^= (!1 << 1 / 0 * (2 === [ , 0 ].length)) % ("bar" >> (e = NaN)))), ("function" == typeof o && 0 <= --_calls_ && o((c = 1 + c, 
        1 / 0 <= (!0 & (o && (o.static += !0))))) || a || 3).toString(), a++ + a++), 
        --o, "function" == typeof t && 0 <= --_calls_ && t(), o += void 0, function(c) {}`${c = 1 + (c = 1 + c), 
        0 & (c += 1, null) | -6}${c = 1 + c, 25 * (2 === [ , 0 ].length) <= 3 != 1}${c = 1 + c, 
        0}`, c = 1 + c, i %= 0;
        var S, d = void (c = 1 + (c += 1));
        for (S in a++ + !(NaN - (g = -4))) {
            c = 1 + c;
            for (var x = 5; (c = c + 1 + 1) + void 0 && 0 < --x; ) {}
        }
    }
    --o;
}

var a_2 = f0({}, (c += 1) + a--, (c += 1) + b);

console.log(null, a, b, c, 1 / 0, NaN, void 0);
original result:
null NaN 10 29 Infinity NaN undefined

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

// (beautified)
(function f4(yield_2) {
    yield_2[0] = 0;
})(b = () => arguments);

var expr70 = b;

for (arguments_2 in expr70) {
    0();
}
// output: TypeError: 0 is not a function
// minify: 
// options: {
//   "compress": {
//     "passes": 1000000,
//     "sequences": 1000000,
//     "unsafe": true,
//     "unsafe_Function": true,
//     "unsafe_math": true,
//     "unsafe_proto": true,
//     "unsafe_regexp": true
//   },
//   "module": false,
//   "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,
  "output": {
    "v8": true
  }
}

Suspicious compress options:
  evaluate
  passes
  pure_getters
  reduce_vars
  side_effects
  unused
@alexlamsl alexlamsl added the bug label Aug 13, 2024
alexlamsl added a commit to alexlamsl/UglifyJS that referenced this issue Aug 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant