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 #5882

Closed
alexlamsl opened this issue Jul 14, 2024 · 0 comments · Fixed by #5883
Closed

ufuzz failure #5882

alexlamsl opened this issue Jul 14, 2024 · 0 comments · Fixed by #5883
Labels

Comments

@alexlamsl
Copy link
Collaborator

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

try {
    {
        var brake2 = 5;
        while (--b + [ ..."" + a, a++ + (a && a[--b + "object"]) ].a && --brake2 > 0) {
            new function bar_1(foo_2, c_1) {
                this.var += ((((2 == "bar" | (this && true)) % (-5 >= "number" && (foo_2 && (foo_2.undefined = 5 - "foo"))) << (foo_2 && (foo_2.in /= (foo_2 && (foo_2.foo *= -0 * 4)) ** (c = c + 1, 
                "foo") < (c_1 /= (undefined, "a") && -2 | this))) || (c = c + 1, 
                (4 * {} || (c_1 -= true / undefined)) && ((-42n).toString(), -3) < !/[a2][^e]+$/)) !== (("undefined" + -3 & 3 % this) >>> ((undefined ^ -5) == "b" + ([ , 0 ].length === 2)) == delete (c = c + 1, 
                "foo" && -2) != (void ((foo_2 && (foo_2.value |= 25 >= 5)) <= NaN / /[a2][^e]+$/) === ((-1 || "function") | 0 !== ([ , 0 ].length === 2)) >> (3 || -2) / (null && NaN)))) >>> (foo_2 && (foo_2[foo_2 = {
                    done: a++ + [ (c = 1 + c, c = c + 1, ("foo" ^ -1) !== (c_1 %= "bar" / "object")) ].undefined,
                    0: --b + new function a_1() {
                        this[c = 1 + c, (c = c + 1, void "foo") && +"a" % ("foo" || /[a2][^e]+$/)] |= -2 <= 2;
                        this[c = 1 + c, (foo_2 && ([ foo_2[--b + (typeof f0 == "function" && --_calls_ >= 0 && f0((c = 1 + c, 
                        ("a" - 38..toString()) % (/[a2][^e]+$/ == "undefined") >> ((c = c + 1, 
                        !0o644n) | {} / ""))))] ] = [ Infinity & 23..toString() || ("object", 
                        undefined) ])) - ({} - [] == (foo_2 += "c" == -0))] |= 38..toString() !== "a";
                        this[c = 1 + c, (a_1 && (a_1.done = (-3, 1) / (25 <= 0))) != ((-1 & "function") !== ("foo" === 5))] = 2 + "a";
                    }()
                }[b++]] %= -((c_1 && (c_1.static |= "" << 0) && (c = c + 1, 0)) & Infinity % Infinity === ({} == -4)) - ((1 * -2 & "object" === "object") >>> (c_1 && (c_1[c = 1 + c, 
                ("c" || -0) <= -null >= (-2 | undefined | 4 < {})] /= 24..toString() > 25), 
                -5 + NaN) >>> ((foo_2 = -0 | -5) != ([ , 0 ].length === 2 | true) || 23..toString() + /[a2][^e]+$/ ^ "foo" << -5)))) * ((24..toString() - 25, 
                "bar" != 4) * (c = c + 1, -4 >>> 2) > ((NaN == "number") >= ("a" <= Infinity) < ("foo" ^ "function" ^ -1 > 3)) != ((true, 
                {}) % ({} < /[a2][^e]+$/) > (("b" || 38..toString()) >= ({} === "number")) === (null != "b" === -1 << "bar" && (c_1 = (c_1 && (c_1[c = 1 + c, 
                bar_1 && (bar_1[c_1 && c_1.static] = (c_1 += "a" >= -2) >>> "function" * "a" || 3 > this ^ "" >> NaN)] |= /[a2][^e]+$/ && [ , 0 ][1])) == (c = c + 1, 
                -5)))))) * ((c_1 = +((undefined == 5 | null == this) / ({} >>> "function" && 24..toString() != "c") << ((2 < 22) + (4 ^ {})) % ((-2 ^ -3) >= (3 > undefined))) != (((this & "c" ^ true <= -2) < "function" + -5 >> (0 !== -5) || (-5 >>> /[a2][^e]+$/ && 25 + 22) != (foo_2 = 2 % NaN) % (2 & [ , 0 ].length === 2)) && ("function" << "a" << -3 >>> -(false > NaN)) / (c_1 = (c = c + 1, 
                "foo") != null >>> 38..toString() !== ("" << Infinity) * (undefined | 24..toString())))) ^ ~(((this ^ false) << (bar_1 && (bar_1[c = 1 + c, 
                (23..toString() ^ "foo") % (-1 >>> "number") <= ("object" < "object") - (-0 && "c")] += -2 ^ NaN))) / (foo_2 && (foo_2[a++ + (typeof c_1_2 == "undefined")] &= undefined >> {} !== [ , 0 ][1] < /[a2][^e]+$/))) % (bar_1 && (bar_1.get /= (1, 
                undefined) >> (23..toString() || 0) > (22 >= ([ , 0 ].length === 2)) * (38..toString() === true) != (bar_1 && (bar_1.set += ([ , 0 ].length === 2) << 25 >= 22 >> {} ^ (c = c + 1, 
                [ , 0 ][1] + "a"))))) + (c = c + 1, (c_1 && (c_1.next *= true >= true < ~"object")) / (false ** -4 !== 38..toString() <= "undefined"), 
                bar_1 && (bar_1[typeof f1 == "function" && --_calls_ >= 0 && f1()] *= ((bar_1 && (bar_1.then += NaN + -5 ^ (c = c + 1, 
                Infinity))) % ((bar_1 && (bar_1[c = 1 + c, (bar_1 && (bar_1[c = 1 + c, 
                ("" && "bar" || undefined + "c") >= (/[a2][^e]+$/ && "number" && [ , 0 ][1] == "foo")] = ("object", 
                "undefined"))) | void 5 && (c_1 |= (-2 ^ [ , 0 ][1]) <= null + this)] += "c" >= "c")) << ("foo" >= NaN)), 
                ([ , 0 ][1] | this) - (foo_2 = "" > "a") >> ((3 || 38..toString()) >>> (2 | 23..toString()))))));
                {
                    var b_1 = function f0(b_1, Infinity_2, NaN) {
                        function f1(a_1) {
                            c = 1 + c, (b_1 && (b_1.c += -1 - true & (c = c + 1, 
                            3))) >>> (("function" != "b") << (c_1 = 0 > ([ , 0 ].length === 2)));
                            c = 1 + c, (0 << ([ , 0 ].length === 2)) + -"b" > ([ , 0 ][1] !== -2 & {} >> [ , 0 ][1]);
                        }
                        var bar = f1((c = 1 + c, ("foo" >>> "c") - (true || "foo") - (null > 5 || 1 | 0)));
                        function f2(Infinity_1, Infinity_1, bar_1_1) {
                            c = 1 + c, (NaN && ({
                                "-2": NaN.undefined
                            } = {
                                "-2": (null && undefined) << ([ , 0 ].length === 2 || !0o644n)
                            })) >>> (c = c + 1, 23..toString() < /[a2][^e]+$/);
                        }
                        var foo = f2((c = 1 + c, (0 >>> "function") - (b_1 && (b_1.a |= "b" + -2)) && 24..toString() << -3 !== "a" > 2), (c = 1 + c, 
                        (-3 | 3) == 0 >>> "a" | (foo_2 && (foo_2[c = 1 + c, (bar_1 && (bar_1[[ (c = 1 + c, 
                        25 ^ "undefined" || 25 % this || "function" % [ , 0 ][1] >>> (NaN && (NaN[c = 1 + c, 
                        ("number" / 25, "" || "bar") - (3 * 2 <= ("a", "undefined"))] = undefined !== {}))) ]] = void 0 ^ 22 >= -1)) != (1 == /[a2][^e]+$/ ^ (bar_1 && (bar_1.then -= -5 && 22)))] %= this != Infinity)) - ("bar" >>> "")));
                    }([ a-- ], a++ + ([] in []));
                }
            }(b++);
        }
    }
} catch (a) {
} finally {}

try {
    L10339: {
        a++ + void a;
        {
            var brake12 = 5;
            while (23..toString() && --brake12 > 0) {}
        }
        if (a++ + (void function bar() {}() ? --b + "c" : --b + ((!-3, [ , 0 ][1] && NaN) + ((a += "c" & "undefined") ^ 5 % "foo")))) {
            var brake15 = 5;
            do {
                switch (typeof bar_2) {
                  default:
                    c = c + 1;
                    {
                        var expr18 = (c = c + 1) + new function(await_2) {
                            this[(c = c + 1) + "b"] = (([ , 0 ].length === 2) + -1) % (22 + -5) >= (22 && -5) % (/[a2][^e]+$/ && 1);
                            switch (c = 1 + c, "function" != /[a2][^e]+$/ && -0 - true, 
                            delete (await_2.static = -3 / "c")) {
                              case c = 1 + c, (await_2 && (await_2[c = 1 + c, (null + ([ , 0 ].length === 2), 
                                22 % -1) >>> ((24..toString(), [ , 0 ][1]) != (-2 == NaN))] /= 2 ^ -1)) * ({} & false) && (true & "undefined") << ("number" || ""):
                                ;
                                break;

                              case c = 1 + c, (22 ^ false) !== 2 < "number" | [] !== -1 == "a" - -0:
                                ;
                                break;

                              case c = 1 + c, ([] & 25) / (-2 && 5) < (true & [ , 0 ].length === 2) + ("a" - "number"):
                                ;
                                break;

                              case c = 1 + c, (await_2 = false >>> 5 < ("a" & true)) !== ({} == "bar" ^ 22 > []):
                                ;
                                break;
                            }
                            {
                                var brake20 = 5;
                                L10340: while ((c = 1 + c, ((-1 | "a") ^ undefined ** /[a2][^e]+$/) * (c = c + 1, 
                                -0 && 3)) && --brake20 > 0) {
                                    c = 1 + c, [] / 1 * (5 ^ "bar") > (-4 >= "number" < (1 >= NaN));
                                }
                            }
                        }(22);
                        for (var a in expr18) {
                            c = 1 + c;
                            var undefined_2 = expr18[a];
                            c = c + 1;
                        }
                    }
                    {
                        var brake23 = 5;
                        while ((c = c + 1) + --b && --brake23 > 0) {
                            L10341: {
                                var bar_2;
                                c = 1 + c, (-4 << "a") % (this > 5) >>> (bar_2 && (bar_2.next = (bar_2 += /[a2][^e]+$/ === "a") << ([ , 0 ][1] != 24..toString())));
                            }
                        }
                    }

                  case new function foo() {
                        this[(c = c + 1) + "c"] = (/[a2][^e]+$/ - 0) % (([ , 0 ].length === 2) > 23..toString()) >> (4 >= []) * ((-42n).toString() < []) >= (("c" != "undefined" || 3 << /[a2][^e]+$/) && (null != NaN) <= "bar" << {}) <= (25 | "c" | -3 < "a") - (a = ("c" ^ "number") > -3 + this) - (([ , 0 ][1] * 1 != ("b" ^ "function")) >= (-1 != -3) >> ("c" >>> false));
                        {
                            var arguments_2 = function f3() {
                            }();
                        }
                        for (var brake28 = 5; (c = c + 1) + (typeof f5 == "function" && --_calls_ >= 0 && f5()) && brake28 > 0; --brake28) {
                            try {
                                switch (c = 1 + c, ({} || "c") < delete {} === (arguments_2 |= "function" || [ , 0 ][1]) < (4 ^ "a")) {
                                  case c = 1 + c, (arguments_2[a++ + foo] *= !Infinity | (arguments_2 && (arguments_2.foo >>>= 1 + 5))) == 5 >>> "object" >> ({} ^ "c"):
                                    ;
                                    break;

                                  case c = 1 + c, arguments_2 && (arguments_2[!function() {
                                        c = 1 + c, ((arguments_2 = -2 ^ -3) && 3 === ([ , 0 ].length === 2)) + (arguments_2 = null * "foo" > "b" / Infinity);
                                    }()] &= (arguments_2 += ({} ^ 25) - [ , 0 ][1] * "bar") & (arguments_2 && (arguments_2[c = 1 + c, 
                                    false == 4 & "bar" < ([ , 0 ].length === 2) && undefined < "function" !== 22 >>> 25] += 38..toString() & 24..toString())) >> (arguments_2 <<= 22 | "bar")):
                                    ;
                                    break;

                                  case c = 1 + c, (5 !== -0) * (c = c + 1, this) > (NaN | "" && null != undefined):
                                    ;
                                    break;

                                  default:
                                    ;
                                }
                            } catch (foo) {
                                c = 1 + c, ("c" | false) << (4 == "c") > NaN % 25 + ("bar", 
                                23..toString());
                            } finally {}
                        }
                    }("undefined"):
                    {
                        var brake33 = 5;
                        do {
                            try {
                                {
                                    var brake35 = 5;
                                    do {
                                        {
                                            var expr36 = (c = 1 + c, /[a2][^e]+$/ / 3 * ("undefined", 
                                            2) && ([ 3n ][0] > 2, -0) > (1 & 24..toString()));
                                            for (var [ key36 ] in expr36) {
                                                c = 1 + c;
                                                var yield = expr36[key36];
                                                c = 1 + c, ("b" || -4) ^ "function" < NaN ^ (yield += ("bar" && -3) == "bar" * "bar");
                                            }
                                        }
                                    } while ((c = c + 1) + (typeof a != "special") && --brake35 > 0);
                                }
                            } catch (a_1) {} finally {
                                switch (c = 1 + c, (([ , 0 ].length === 2) * !0o644n != [ , 0 ][1] << -1) >= 22 << 2 >> (this >>> null)) {
                                  case c = 1 + c, (-3 ^ 3) / ("number" < "undefined") >> ((a && (a[c = 1 + c, 
                                    c = c + 1, void "bar" && 2 & [ , 0 ].length === 2] <<= "function" === 2)) === -2 < -2):
                                    ;
                                    break;

                                  case c = 1 + c, 5 & -3 && this >>> !0o644n && "a" << -2 >= (23..toString() > true):
                                    ;
                                    break;

                                  default:
                                    ;

                                  case c = 1 + c, a && (a[a] = ((null && "a") >> false + -4) - ("a" + "undefined" + (25 - {}))):
                                    ;
                                    break;
                                }
                            }
                        } while (void +(3 * null >>> ("c" ^ [ , 0 ].length === 2)) && --brake33 > 0);
                    }
                    break;

                  case [ --b + +a, ..."" + a, (a || 9).toString()[(c = c + 1) + (a += 1 === 1 ? a : b)], (c = c + 1) + (a && a[--b + ((a += 25 / false >> -3 / "c") === (-3 < null == (a && (a[c = 1 + c, 
                    /[a2][^e]+$/ >> "foo" == (-0 && -3) != (a += "function" <= 25) << (this === "")] = 23..toString() << 38..toString()))))]), typeof (a++ + delete b) ]:
                    break;

                  case (c = c + 1) + ++a:
                    try {
                        {
                            var expr40 = void (4 * -5 + ([ 3n ][0] > 2 >= "a") >= +"foo" * ("a" >>> 24..toString()));
                            for (var key40 in expr40) {
                                break L10339;
                            }
                        }
                    } catch (b) {
                        try {
                            c = c + 1;
                        } finally {
                            c = 1 + c, (c = c + 1, Infinity * /[a2][^e]+$/) << (38..toString() == NaN ^ undefined - "number");
                            c = 1 + c, 38..toString() >>> [] < /[a2][^e]+$/ - [] ^ (-1 & -4) / (b += "object" && -5);
                            c = 1 + c, c = c + 1, 5 != "b" && (null && "foo");
                        }
                        {
                            var brake47 = 5;
                            L10342: do {
                                c = c + 1;
                            } while (a++ + (typeof b == "function" && --_calls_ >= 0 && b((c = 1 + c, 
                            (-1 === /[a2][^e]+$/ & (b && (b.NaN += "a" << 1))) / ([] / 2 % (24..toString() / true))), (c = 1 + c, 
                            ("bar" != -4 && 23..toString() / "c") !== delete ("c" >= undefined)), (c = 1 + c, 
                            (b && (b[a++ + (1 === 1 ? a : b)] += Infinity !== "number" !== {} >>> "function")) ^ NaN >= "undefined" >= ("object" === 22)))) && --brake47 > 0);
                        }
                        c = c + 1;
                    } finally {
                        a++ + {
                            c: (c = 1 + c, (NaN == -0) > (a && (a.value = "function" >> [ , 0 ][1])) >= - -3 - 38..toString() * "object")
                        }.null;
                    }
                    break;
                }
            } while ((c = c + 1) + !a && --brake15 > 0);
        }
    }
} catch (async_1) {
    {
        var brake51 = 5;
        L10343: do {
            {
                var brake52 = 5;
                while ("object" && --brake52 > 0) {
                    for (var brake53 = 5; [] && brake53 > 0; --brake53) {
                        async_1 && async_1[--b + ((void "foo" || 25 - -4) | (5 | 23..toString()) << (3 === [ , 0 ][1]))];
                    }
                }
            }
        } while (/[abc4]/g.exec((a++ + async_1 || b || 5).toString()) && --brake51 > 0);
    }
} finally {
    typeof a == "function" && --_calls_ >= 0 && a(typeof ((c = c + 1) + (a += --b)));
}

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

try {
    for (var brake2 = 5; --b + [ ..."" + a, a++ + (a && a[--b + "object"]) ].a && 0 < --brake2; ) {
        new function bar_1(foo_2, c_1) {
            this.var += ((((!1 | (this && !0)) % !1 << (foo_2 && (foo_2.in /= (foo_2 && (foo_2.foo *= -0)) ** (c += 1, 
            "foo") < (c_1 /= -2 | this))) || (c += 1, (4 * {} || (c_1 -= NaN)) && ((-42n).toString(), 
            !0))) !== (("undefined-3" & 3 % this) >>> (-5 == "b" + (2 === [ , 0 ].length)) == (c += 1, 
            !0) != (void (foo_2 && (foo_2.value |= !0)) === (-1 | 0 !== (2 === [ , 0 ].length)) >> 1 / 0))) >>> (foo_2 && (foo_2[foo_2 = {
                done: a++ + [ (c = 1 + c, c += 1, -1 != (c_1 %= NaN)) ].undefined,
                0: --b + new function a_1() {
                    this[c = 1 + c, void (c += 1)] |= !0, this[c = 1 + c, (foo_2 && ([ foo_2[--b + ("function" == typeof f0 && 0 <= --_calls_ && f0((c = 1 + c, 
                    ("a" - 38..toString()) % !1 >> (c += 1, !0o644n | {} / ""))))] ] = [ 1 / 0 & 23..toString() || void 0 ])) - ({} - [] == (foo_2 += !1))] |= "a" !== 38..toString(), 
                    this[c = 1 + c, 1 != (a_1 && (a_1.done = 1 / 0))] = "2a";
                }()
            }[b++]] %= -((c_1 && (c_1.static |= 0) && (c += 1, 0)) & NaN === (-4 == {})) - (0 >>> (c_1 && (c_1[c = 1 + c, 
            (-2 | 4 < {}) <= !1] /= 25 < 24..toString()), NaN) >>> ((foo_2 = -5) != (2 === [ , 0 ].length | !0) || 23..toString() + /[a2][^e]+$/ ^ 0)))) * (24..toString(), 
            !1 < !0 * (c += 1, -4 >>> 2) != (("number" === {}) <= "b" < {} % ({} < /[a2][^e]+$/) == !1))) * ((c_1 = (!1 | null == this) / ({} >>> "function" && "c" != 24..toString()) << (!0 + (4 ^ {})) % !0 != ((("c" & this ^ !1) < 0 || 47 != (foo_2 = NaN) % (2 & 2 === [ , 0 ].length)) && 0 / (c += 1, 
            "foo" != null >>> 38..toString() !== 0 * (void 0 | 24..toString())))) ^ ~(((!1 ^ this) << (bar_1 && (bar_1[c = 1 + c, 
            ("foo" ^ 23..toString()) % 4294967295 <= 0] += -2))) / (foo_2 && (foo_2[a++ + ("undefined" == typeof c_1_2)] &= void 0 >> {} !== !1))) % (bar_1 && (bar_1.get /= void 0 >> (23..toString() || 0) > ((2 === [ , 0 ].length) <= 22) * (!0 === 38..toString()) != (bar_1 && (bar_1.set += 22 >> {} <= (2 === [ , 0 ].length) << 25 ^ (c += 1, 
            "0a"))))) + (c += 1, c_1 && (c_1.next *= !1), 38..toString(), bar_1 && (bar_1["function" == typeof f1 && 0 <= --_calls_ && f1()] *= (bar_1 && (bar_1.then += NaN ^ (c += 1, 
            1 / 0)), bar_1 && (bar_1[c = 1 + c, void 0 | (bar_1 && (bar_1[c = 1 + c, 
            !1] = "undefined")) && (c_1 |= -2 <= null + this)] += !0), (0 | this) - (foo_2 = !1) >> (3 >>> (2 | 23..toString()))))));
            (function(b_1, NaN) {
                c = 1 + (c = 1 + c), b_1 && (b_1.c += -2 & (c += 1, 3)), c_1 = (2 === [ , 0 ].length) < 0, 
                c = 1 + c;
                c = 1 + c, 0 - (b_1 && (b_1.a |= "b-2")) && 24..toString(), c = 1 + c, 
                foo_2 && (foo_2[c = 1 + c, (bar_1 && (bar_1[[ (c = 1 + c, 25) ]] = 1)) != (!1 ^ (bar_1 && (bar_1.then -= 22)))] %= this != 1 / 0), 
                c = 1 + c, NaN && ({
                    "-2": NaN.undefined
                } = {
                    "-2": null << (2 === [ , 0 ].length || !0o644n)
                }), c += 1, 23..toString();
            })([ a-- ], void a++);
        }(b++);
    }
} catch (a) {}

try {
    L10339: {
        a++;
        for (var brake12 = 5; 23..toString() && 0 < --brake12; ) {}
        if (a++ + (--b + (NaN ^ (a += 0)))) {
            var brake15 = 5;
            do {
                switch (typeof bar_2) {
                  default:
                    var expr18 = (c = c + 1 + 1) + new function(await_2) {
                        switch (this[(c += 1) + "b"] = -0 <= ((2 === [ , 0 ].length) + -1) % 17, 
                        delete NaN) {
                          case (22[c = 1 + (c = 1 + (c = 1 + c)), 0 >>> (0 != (24..toString(), 
                            0))] /= -3) * (!1 & {}) && 0:
                          case c = 1 + c, !0 | -1 !== [] == NaN:
                          case c = 1 + c, (25 & []) / 5 < (!0 & 2 === [ , 0 ].length) + NaN:
                          case c = 1 + c, !1 !== ("bar" == {} ^ [] < 22):
                        }
                        c = 1 + c, c += 1;
                    }();
                    for (a in expr18) {
                        var c = 1 + c, undefined_2 = expr18[a];
                        c += 1;
                    }
                    for (var bar_2, brake23 = 5; (c += 1) + --b && 0 < --brake23; ) {
                        c = 1 + c, bar_2 && (bar_2.next = (bar_2 += !1) << (0 != 24..toString()));
                    }

                  case new function foo() {
                        this[(c += 1) + "c"] = NaN % ((2 === [ , 0 ].length) > 23..toString()) >> ([] <= 4) * ((-42n).toString() < []) >= (!0 <= "bar" << {}) <= 25 - (a = -3 + this < 0) - !1;
                        for (var arguments_2 = void 0, brake28 = 5; (c += 1) + ("function" == typeof f5 && 0 <= --_calls_ && f5()) && 0 < brake28; --brake28) {
                            try {
                                switch ({} < !0 == (arguments_2 |= "function") < 4) {
                                  case c = 1 + (c = 1 + c), (arguments_2[a++ + foo] *= !1 | (arguments_2 && (arguments_2.foo >>>= 6))) == 5 >> ("c" ^ {}):
                                  case c = 1 + c, arguments_2 && (arguments_2[c = 1 + c, 
                                    !void (arguments_2 = !(arguments_2 = 3))] &= (arguments_2 += (25 ^ {}) - NaN) & (arguments_2 && (arguments_2[c = 1 + c, 
                                    !1 & "bar" < (2 === [ , 0 ].length) && !0] += 38..toString() & 24..toString())) >> (arguments_2 <<= 22)):
                                  case c = 1 + c, 0 < !0 * (c += 1, this):
                                }
                            } catch (foo) {
                                c = 1 + c, 23..toString();
                            }
                        }
                    }():
                    var brake33 = 5;
                    try {
                        var brake35 = 5;
                        do {
                            c = 1 + c;
                            var key36, expr36 = NaN;
                            for ([ key36 ] in expr36) {
                                c = 1 + c;
                                var yield = expr36[key36];
                                c = 1 + c, yield += !1;
                            }
                        } while ((c += 1) + ("special" != typeof a) && 0 < --brake35);
                    } catch (a_1) {} finally {
                        switch (c = 1 + c, 88 >> (this >>> null) <= (!0o644n * (2 === [ , 0 ].length) != 0)) {
                          case c = 1 + c, -2 >> (!1 === (a && (a[c = 1 + c, void (c += 1)] <<= !1))):
                          case c = 1 + c, this >>> !0o644n && !0 < 23..toString() <= 0:
                            break;

                          default:
                          case c = 1 + c, a && (a[a] = 0 - ("aundefined" + (25 - {}))):
                        }
                    }
                    break;

                  case [ --b + +a, ..."" + a, (a || 9).toString()[(c += 1) + (a += a)], (c += 1) + (a && a[--b + ((a += 0) === (1 == (a && (a[c = 1 + c, 
                    1 != (a += !1) << ("" === this)] = 23..toString() << 38..toString()))))]), typeof (a++ + delete b) ]:
                    break;

                  case (c += 1) + ++a:
                    try {
                        var key40, expr40 = void 24..toString();
                        for (key40 in expr40) {
                            break L10339;
                        }
                    } catch (b) {
                        try {
                            c += 1;
                        } finally {
                            c = 1 + c, c += 1, 38..toString(), c = 1 + c, 38..toString(), 
                            b += -5, c = 1 + c, c += 1;
                        }
                        for (var brake47 = 5; c += 1, a++ + ("function" == typeof b && 0 <= --_calls_ && b((c = 1 + c, 
                        (!1 & (b && (b.NaN += 0))) / ([] / 2 % (24..toString() / !0))), (c = 1 + c, 
                        23..toString() / "c" !== !0), (c = 1 + c, !0 ^ (b && (b[a++ + a] += !0 !== {} >>> "function"))))) && 0 < --brake47; ) {}
                        c += 1;
                    } finally {
                        c = 1 + c, ++a && (a.value = 0), 38..toString();
                    }
                }
            } while ((c += 1) + !a && 0 < --brake15);
        }
    }
} catch (async_1) {
    var brake51 = 5;
    do {
        for (var brake52 = 5; 0 < --brake52; ) {
            for (var brake53 = 5; 0 < brake53; --brake53) {
                async_1 && async_1[--b + (29 | (5 | 23..toString()) << !1)];
            }
        }
    } while (/[abc4]/g.exec((a++ + async_1 || b || 5).toString()) && 0 < --brake51);
} finally {
    "function" == typeof a && 0 <= --_calls_ && a(typeof ((c += 1) + (a += --b)));
}

console.log(null, a, b, c, 1 / 0, NaN, void 0);
original result:
null 17 -28 468 Infinity NaN undefined

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

// (beautified)
switch (delete (0..static = 0 / 0)) {
  case 0 < 0:
  case 0():
}
// output: TypeError: 0 is not a function
// minify: 
// options: {
//   "mangle": false,
//   "module": false,
//   "output": {
//     "v8": true
//   },
//   "validate": true
// }
minify(options):
{
  "mangle": false,
  "module": false,
  "output": {
    "v8": true
  }
}

Suspicious compress options:
  dead_code
  evaluate
  pure_getters
  reduce_vars
@alexlamsl alexlamsl added the bug label Jul 14, 2024
alexlamsl added a commit to alexlamsl/UglifyJS that referenced this issue Jul 14, 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