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

Closed
alexlamsl opened this issue Apr 2, 2021 · 0 comments · Fixed by #4840
Closed

ufuzz failure #4839

alexlamsl opened this issue Apr 2, 2021 · 0 comments · Fixed by #4840
Labels

Comments

@alexlamsl
Copy link
Collaborator

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

export function f0() {
    function f1() {
        {
            var expr9 = a++ + {
                var: --b + +b,
                foo: a++ + +b,
                next: (c = c + 1) + +(((c = c + 1, Infinity) | -0 * "c") ^ ("a" ^ /[a2][^e]+$/) === "function" - [])
            };
            for (var key9 in expr9) {
                switch (typeof arguments_1 == "object") {
                  case typeof (--b + ~((key9 && (key9[(c = 1 + c, ({} > true !== (key9 && (key9[c = 1 + c, 
                    ("" && [ , 0 ][1]) / (-5 & 25) != (key9 += ("" >>> []) / ("object" >= 0))] = "b" & 3))) <= ("number" != "bar") % ({} >= -3)) ? (c = 1 + c, 
                    (c = c + 1, "b") >= "c" >> ([ , 0 ].length === 2) > (22 << "" < (22 != 1))) : (c = 1 + c, 
                    -(("undefined" || 22) >= (this, -4)))] = (3 - 22) % (-5 && "object"))) % (1 > -4 & (22 & 3)))):
                    {
                        var expr11 = (c = 1 + c, (/[a2][^e]+$/ >>> -1 && "bar" > 38..toString()) == ("a" != /[a2][^e]+$/) <= (5 <= {}));
                        for (var key11 in expr11) {
                            c = 1 + c, ("c", 25) ^ "number" !== -2 | (key9 %= {} + 38..toString()) < (true & 0);
                        }
                    }
                    ;
                    break;

                  case a++ + b--:
                    try {
                        c = 1 + c, (key9 && (key9[c = 1 + c, 5 << [ , 0 ][1] && [ , 0 ][1] & "a" && "number" == ([ , 0 ].length === 2) == {} > 25] += 23..toString() & null) || 38..toString() && "c") == (key9 && (key9.Infinity = ([ , 0 ].length === 2) >>> Infinity != -2 % ""));
                    } finally {
                    }
                    break;

                  case (c = c + 1) + (--b + (typeof f2 == "function" && --_calls_ >= 0 && f2()) ? key9 && typeof key9.Infinity == "function" && --_calls_ >= 0 && (c = 1 + c, 
                    [ , 0 ][1] / 5 << (24..toString() ^ "a") && (key9 && (key9.a += [] >> false)) != (2 != 3), 
                    key9.Infinity)((c = 1 + c, key9 && (key9.done %= (-1 == {}) % (25 & [ , 0 ][1]) % ((true || 24..toString()) ^ 4 << false))), [ , 0 ][1], -2) : (c = c + 1) + void function() {
                    }()):
                    break;

                  case {
                        async: (c = 1 + c, ((2, this) ^ ("number" | 5)) >>> (-2 + -2 || 5 >= NaN)),
                        0: (c = 1 + c, ((c = c + 1, -0) >>> 1 + "object") - (this >> [] ^ "undefined" >= "")),
                        [(c = 1 + c, ("bar" || "b") / (undefined >= -4) ^ ~true + ("c" << undefined))]: (c = 1 + c, 
                        (38..toString() >>> 5 !== (key9 /= "" && false)) % ((c = c + 1, this) % (22 >= [ , 0 ][1]))),
                        set: (c = 1 + c, 22 - 23..toString() === /[a2][^e]+$/ >= "number" ^ (key9 && (key9.done = -0 >> [] <= (38..toString(), 
                        4)))),
                        value: (c = 1 + c, ("" < "a") * ("function" && 1) >= (24..toString() && 22) * (key9 && (key9.Infinity = [ , 0 ][1] | {})))
                    }:
                    {
                    }
                    if (c = 1 + c, c = c + 1, "number" % 25 & {} >> -3) {
                        c = 1 + c, (this == -2 ^ Infinity >>> 25) - ((key9 += "b" != null) ^ "" / /[a2][^e]+$/);
                    }
                    break;
                }
            }
        }
        L12692: for (var brake19 = 5; [].set && brake19 > 0; --brake19) {
            if (--b + /[abc4]/.test((--b + (a && typeof a.in == "function" && --_calls_ >= 0 && a.in()) || b || 5).toString())) {
                try {
                    switch (c = 1 + c, ({} != -1) / (-1 << 5) ^ this << "b" >> (NaN ^ -4)) {
                      case c = 1 + c, ("bar" == -3) <= "a" * "" < (undefined >>> "b" ^ (38..toString() ^ Infinity)):
                        ;
                        break;

                      default:
                        ;

                      case c = 1 + c, (a && (a[(c = c + 1) + [ (c = 1 + c, ("bar" >= -1) + (undefined << [ , 0 ][1]) === (-1 | 0) >> (a && (a.value = "" || Infinity))) ].foo] += "number" % null % ("bar" != [ , 0 ][1]))) >> ((4 == -4) >>> ("foo" >= 23..toString())):
                        ;
                        break;

                      case c = 1 + c, (this > null | 38..toString() + -2) > (-5 != "b") % ("function" & 1):
                        ;
                        break;
                    }
                } finally {
                    c = 1 + c, ("number" >> ([ , 0 ].length === 2) | Infinity != true) % ((0 - NaN) / ("object" < NaN));
                    c = 1 + c, (25 & {} ^ ("function" ^ -2)) >>> ("bar" - 1) % ("object", -5);
                }
            }
        }
    }
    var bar = f1("b", !function NaN_2() {
        {
            var brake25 = 5;
            do {
                {
                    var brake26 = 5;
                    L12693: while ((c = 1 + c, (/[a2][^e]+$/ > -0 && "c" <= null) | (false < "a") >> (undefined || undefined)) && --brake26 > 0) {
                        c = 1 + c, ("c" + 38..toString()) * (-5 / -3) / (void -3 ^ (bar %= 1 || 4));
                    }
                }
            } while (--b + [].value && --brake25 > 0);
        }
        switch (0 === 1 ? a : b) {
          case /[abc4]/.test(((c = 1 + c, (24..toString() == 2) << (Infinity != this) && (-5 && -4) / ("b" << 0)) || b || 5).toString()):
            c = 1 + c, ((bar &= "c" >= 24..toString()) > (undefined || 22)) % ((25 | "foo") & (24..toString() & -0));

          case a++ + ((c = 1 + c, bar = -3 >>> false == +[] == (/[a2][^e]+$/ === 25 ^ false == "undefined")) ? (c = 1 + c, 
            (-4 | null) >> (2 << 4) >= (false > -4 && 24..toString() >>> "a")) : (c = 1 + c, 
            bar && (bar[{}[(c = 1 + c, (bar += (bar >>>= ("foo", -3)) >= this * this) || 4 >>> -2 >> (false == 4)) ? (c = 1 + c, 
            [] >> {} !== (25 & false) ^ ([ , 0 ].length === 2) > "bar" <= (-0 || 25)) : (c = 1 + c, 
            "bar" / /[a2][^e]+$/ >> (NaN_2 && (NaN_2[c = 1 + c, (bar /= "object" & "") >>> (c = c + 1, 
            Infinity) ^ ("c" < 2) - (undefined + 4)] = -2 ^ 22)) >> (22 >= "b" >= (NaN_2 && (NaN_2[c = 1 + c, 
            (NaN_2 && (NaN_2[c = 1 + c, (Infinity ^ 23..toString()) + (24..toString() << "object"), 
            false >>> 4 ^ this >> -0] &= 4 | "b")) <= (23..toString() >= "undefined") & "foo" < "a" == 24..toString() > {}] = Infinity || "undefined"))))]] %= +(-1 + -2) + (([ , 0 ].length === 2 || -0) ^ this <= -2)))):
            c = 1 + c, bar -= -1 >>> "c" | 5 >> "a" | (4 >= "c", -4 >> true);
            break;

          case NaN_2 && typeof NaN_2.in == "function" && --_calls_ >= 0 && NaN_2.in((c = 1 + c, 
            (25 < "bar") >> ({} < 1) >= (-0 !== "c") + ("undefined" === "function"))):
            break;

          case 1 === 1 ? a : b:
            c = 1 + c, bar && ({
                0: bar.undefined
            } = {
                0: {} & NaN & (/[a2][^e]+$/ || 24..toString()) ^ (bar += 25 - "b" && (bar = -2 == 5))
            });
            break;
        }
    }(), 0);
    function f2(b_1, arguments_1) {
        try {
            {
                var brake34 = 5;
                do {
                    switch ((c = 1 + c, null - "number" == "number" >= ([ , 0 ].length === 2) && (true >> "function" || "object" > 25)) ? (c = 1 + c, 
                    b_1 += (4 + {} <= (23..toString() | 1)) + (-1 > "") / void 1) : (c = 1 + c, "object" >> [ , 0 ][1] == -3 % false, 
                    ("" > false) / (undefined >> -3))) {
                      default:
                        c = 1 + c, (23..toString() >>> -3 ^ (arguments_1 += "function" * "a")) > (Infinity, 
                        "b") % delete false;

                      case --b + arguments_1:
                        c = 1 + c, (-3 !== undefined) > null >>> Infinity ^ (1 >= this) >>> undefined / 0;
                        c = 1 + c, +"b" % delete "a" < ([ , 0 ][1] * [] ^ NaN >> ([ , 0 ].length === 2));
                        break;

                      case (c = c + 1) + (this in {
                            [(c = 1 + c, (bar && (bar[{} in {
                                a: (c = 1 + c, (c = c + 1, -5) + ("object" | true) | (c = c + 1, "" >> /[a2][^e]+$/)),
                                next: (c = 1 + c, (bar && (bar[(c = c + 1) + true] = "object" <= 4 != (3 === this))) ^ ((b_1 && (b_1.c /= NaN >>> 24..toString())) ^ (b_1 && (b_1[c = 1 + c, 
                                ([] ^ 2 | "undefined" >>> "foo") & ("foo" - /[a2][^e]+$/) % (false > 3)] += "object" >>> [ , 0 ][1])))),
                                c: (c = 1 + c, (undefined << "b" > ([ , 0 ].length === 2 ^ Infinity)) % ((b_1 && ([ b_1.Infinity ] = [ "foo" != "function" ])) - (1 > []))),
                                undefined: (c = 1 + c, bar && (bar[{
                                    ...(c = 1 + c, null * /[a2][^e]+$/ & (bar && (bar.undefined = false & "undefined")) ^ ([ , 0 ][1] < this | 1 <= 3)),
                                    value: (c = 1 + c, (0 != -0) >> (c = c + 1, "bar") != (null != "b" || (24..toString(), 
                                    NaN))),
                                    value: (c = 1 + c, (b_1 && (b_1.set += ("b" > 23..toString()) << (22 && 1))) ^ (-3 >= "undefined") >>> ("c" ^ -5))
                                }] = (bar += (22 || Infinity) != {} > 0) / ((1 || 3) / (-1 > 0)))),
                                static: (c = 1 + c, (-3 >= 24..toString() < (22 != "")) * ((/[a2][^e]+$/ !== "function") - (null && -0)))
                            }] = (arguments_1 += /[a2][^e]+$/ >> undefined) || 4 >>> 23..toString())) >= (c = c + 1, 
                            this >= 23..toString()))]: (c = 1 + c, +(bar && (bar.then = ([ , 0 ].length === 2) <= -4 && (/[a2][^e]+$/, 
                            -5))))
                        }):
                        c = 1 + c, b_1 && (b_1[typeof arguments_1 == "function" && --_calls_ >= 0 && arguments_1()] += ("c" >= false | 24..toString() != "c") > (38..toString() >= 38..toString() ^ (-0, 
                        true)));
                        c = 1 + c, (Infinity << "number" >> ("" <= 5)) + (25 > {} != "function" + 23..toString());

                      case a++ + [ (c = 1 + c, (/[a2][^e]+$/ >= "number" != [ , 0 ][1] > 22) > (c = c + 1, 
                        arguments_1 *= "a" * true)), (c = 1 + c, "foo" % [ , 0 ][1] < delete NaN >= (c = c + 1, 
                        25 ^ undefined)) ].foo:
                        break;
                    }
                } while (a++ + (b = a) && --brake34 > 0);
            }
        } catch (undefined_2) {
            if ((c = c + 1) + ((c = 1 + c, ((arguments_1 && (arguments_1[c = 1 + c, "undefined" >= 1 != "bar" % "object" & (38..toString(), 
            undefined) + ("" & undefined)] = ("a", 38..toString()))) < -5 * 4) % ((arguments_1 && (arguments_1.then = "" !== NaN)) === "c" >= undefined)) || 7).toString()[c = 1 + c, 
            bar && ([ bar.static ] = [ /[a2][^e]+$/ === "number" & (undefined_2 && (undefined_2.NaN = 23..toString() > -3)) ]) || bar && (bar[(c = c + 1) + b++] = ([ , 0 ].length === 2 ^ "c") > (25 < NaN))]) {
                try {
                    c = 1 + c, bar && (bar.in = (null != "function" && 5 != -3) & (b_1 && (b_1.set += -3 * true ^ 0 == -2)));
                } catch (b) {
                } finally {
                }
            }
            {
                var yield_1 = function f3(a, undefined_2_1, a) {
                }(NaN, (c = 1 + c, (c = c + 1, 38..toString() ^ 5) % ("b" < 2 ^ this <= "object")), (c = 1 + c, 
                NaN << -2 >> 38..toString() % undefined || void ("a" != 2)));
            }
        } finally {
            L12694: for (var brake45 = 5; b_1 && typeof b_1.static == "function" && --_calls_ >= 0 && (c = 1 + c, 
            (3 << /[a2][^e]+$/) + (c = c + 1, this) > ("number" >> this <= (25 !== 22)), b_1.static)() && brake45 > 0; --brake45) {
                L12695: for (var brake46 = 5; (c = 1 + c, (b_1 >>>= Infinity % -2 == ([ , 0 ].length === 2 == "")) + (bar && (bar[function() {
                }] ^= undefined / 5 > (/[a2][^e]+$/ !== "function")))) && brake46 > 0; --brake46) {
                    c = 1 + c, void (22 / 22) - (false % undefined != (1 & {}));
                }
            }
            c = c + 1;
        }
    }
    var yield_1 = f2();
    function f4() {
        {
            var brake49 = 5;
            do {
                var bar_1;
            } while (function bar_1_1() {
                {
                    var expr51 = (c = 1 + c, ("object" && "b") > (24..toString() ^ 4) != (bar_1 && (bar_1.Infinity += -0 != -1)) > ("number" < "foo"));
                    for (bar_1 in expr51) {
                        c = 1 + c, (c = c + 1, undefined | -0) ^ ({} <= ([ , 0 ].length === 2)) * (NaN !== /[a2][^e]+$/);
                    }
                }
            }() && --brake49 > 0);
        }
        c = c + 1;
    }
    var b_1 = f4(-4, -1);
}

var Infinity = f0({
    b: 1 in {},
    [(c = c + 1) + (typeof f2 == "function" && --_calls_ >= 0 && f2(..."" + a, 38..toString()))]: [ --b + +b, a && a[1 === 1 ? a : b], --b + a ],
    next: (c = c + 1) + (a++ + [ a++ + /[abc4]/.test(((c = c + 1) + new function Infinity_1(b_1, foo_1) {
        this[typeof f1 == "function" && --_calls_ >= 0 && f1(NaN, -2)] %= ((c = c + 1, NaN) << ("a" || {}) || (c = c + 1, 
        [ , 0 ][1] ^ undefined)) * (("object" != 38..toString()) >= null >> "" !== (-2 === 5) / +[ , 0 ][1]);
        this[(c = c + 1) + (typeof f1 == "function" && --_calls_ >= 0 && f1(((c = 1 + c, 
        c = c + 1, 4 | 4 || Infinity_1 && (Infinity_1.null <<= 0 << -4)) || 4).toString()[c = 1 + c, 
        (-4 ^ -1) != ([] && 23..toString()) ^ "foo" + -4 == "undefined" >>> "number"], []))] &= ("b" % 38..toString() < (38..toString() != "b")) / ("c" < 0 !== (Infinity || "a")) === ((5 < 25 ^ (Infinity_1 && (Infinity_1[c = 1 + c, 
        ("bar" && "a") * (1 & "function") - (0 << "undefined" <= {} % 1)] = -1 >> -2))) & (Infinity - "number" || this == "undefined"));
        this[{
            null: --b + (b = a),
            var: (c = 1 + c, Infinity_1 && (Infinity_1.NaN += (foo_1 && (foo_1.a = "" << "number" < (1 || true))) ^ 38..toString() >> "bar" & -2 !== "c")),
            "-2": a++ + {
                undefined: (c = 1 + c, (b_1 = [] % false !== (-4 ^ "bar")) % (5 * 38..toString() % ("foo" / true))),
                get then() {
                    c = 1 + c, (3 <= "a" ^ "" >> this) + (Infinity - true) / (-0 >= null);
                },
                1.5: (c = 1 + c, ([] < "number") >>> void -0 <= (24..toString() === ([ , 0 ].length === 2) === 22 <= -3))
            }
        }] = (b_1 && (b_1.value += ((false | undefined) > ("bar" != 22)) * ((foo_1 += "c" << [ , 0 ][1]) <= (b_1 && (b_1.foo += (24..toString(), 
        "number")))))) > ((5 !== "") >>> ("foo" ^ "c") ^ (foo_1 && (foo_1.next = 3 & 5)) == (-5 | -5));
        for (var brake2 = 5; (c = c + 1) + -3 && brake2 > 0; --brake2) {
            var expr3 = (c = 1 + c, (-5 << 4 | "undefined" <= "function") === (-2 >> {} || (foo_1 = "number" & "undefined")));
            L12690: for (var key3 in expr3) {
                c = 1 + c;
                var yield_2 = expr3[key3];
                c = 1 + c, (/[a2][^e]+$/ || 25) >> (1 !== "") & (25 <= false) >>> (-2 < this);
            }
        }
        {
            var expr5 = b = a;
            for (var b_1 in expr5) {
                c = 1 + c;
                var yield = expr5[b_1];
                {
                }
            }
        }
    }() || b || 5).toString()), (c = c + 1) + (typeof a == "function" && --_calls_ >= 0 && a(-0)), a && typeof a.static == "function" && --_calls_ >= 0 && a.static(null, --b + ((a && ([ a[--b + b--] ] = [ this % "undefined" ^ ({} ^ -3) ])) !== ((c = c + 1, 
    -2) === 2 > [])), a++ + (0 === 1 ? a : b)), ...[ (false >>> undefined && (3 || "object")) == (-4 + [], 
    "" / "c"), ++b, (c = c + 1) + void function() {
        {
            var expr7 = ((b_2, await_1) => (c = 1 + c, await_1 && (await_1.foo /= (4 & -3) + (-1 === 23..toString()) >> ((b_2 && ([ b_2[c = 1 + c, 
            void true + (b_2 && (b_2.Infinity += "number" - Infinity)) >= (false * 25 < -2 >>> "bar")] ] = [ 0 >> 2 ])) === 1 + 1))))("a");
            L12691: for (var key7 in expr7) {
                var c_1 = (c = 1 + c, ("" & 22) > (-0 < "undefined") & (true || 25) !== this >= "foo"), yield = (c = 1 + c, 
                ("function" * -3 && "undefined" >>> "a") < ("foo" >> -1 < this + NaN));
            }
        }
    }(), --b + ((a && (a.a = 4 <= -1 !== 25 + 2)) !== (22 << "a") - (undefined === 23..toString())) ] ].c || 5).toString()["foo"]
}[--b + (a && typeof a.static == "function" && --_calls_ >= 0 && a.static())], 38..toString(), undefined);

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

function f0() {
    var f;
    function f2(t, i) {
        var n, e, a;
        try {
            n = 5;
            do {
                switch (u = 1 + u, NaN == (2 === [ , 0 ].length) <= "number" ? (u = 1 + u, t += NaN) : (u = 1 + u, 
                NaN)) {
                  default:
                    u = 1 + u, i += NaN;

                  case --s + i:
                    u = 1 + (u = 1 + u);
                    break;

                  case (u += 1) + (this in {
                        [(u = 1 + u, (f && (f[{} in {
                            a: (u = 1 + u, u += 1, -4),
                            next: (u = 1 + (u += 1), (f && (f[(u += 1) + !0] = 0 != (3 === this))) ^ ((t && (t.c /= 0)) ^ (t && (t[u = 1 + u, 
                            0] += 0)))),
                            c: (u = 1 + u, ((2 === [ , 0 ].length ^ o) < 0) % ((t && ([ t.Infinity ] = [ !0 ])) - !0)),
                            undefined: (u = 1 + u, f && (f[{
                                ...(u = 1 + u, NaN & (f && (f.undefined = 0)) ^ (0 < this | !0)),
                                value: (u = 1 + u, !0),
                                value: (u = 1 + (u += 1), 0 ^ (t && (t.set += 2)))
                            }] = (f += !0) / (1 / !1))),
                            static: (u = 1 + u, 1)
                        }] = (i += 0) || 0)) >= ("23" <= this))]: (u = 1 + (u += 1), +(f && (f.then = (2 === [ , 0 ].length) <= -4 && -5)))
                    }):
                    u = 1 + u, t && (t["function" == typeof i && 0 <= --c && i()] += !0), u = 1 + u;

                  case N++ + [ (u = 1 + u, (i *= NaN) < !1), (u = 1 + (u += 1), NaN < delete NaN >= (u += 1, 
                    25)) ].foo:
                }
            } while (N++ + (s = N) && 0 < --n);
        } catch (n) {
            if ((u += 1) + (u = 1 + u, ("" + (((i && (i[u = 1 + u, 0] = "38")) < -20) % (!1 === (i && (i.then = !0))) || 7))[u = 1 + u, 
            f ? ([ f.static ] = [ !1 & (n && (n.NaN = !0)) ]) : f && (f[(u += 1) + s++] = !1 < (2 === [ , 0 ].length ^ "c"))])) {
                try {
                    u = 1 + u, f && (f.in = !0 & (t && (t.set += -3)));
                } catch (n) {}
            }
            u = 1 + u, u = 1 + (u += 1);
        } finally {
            for (e = 5; t && "function" == typeof t.static && 0 <= --c && (u = 1 + u, u += 1, 
            t.static)() && 0 < e; --e) {
                for (a = 5; u = 1 + u, (t >>>= o % -2 == (2 === [ , 0 ].length == "")) + (f && (f[function() {}] ^= !1)) && 0 < a; --a) {
                    u = 1 + u;
                }
            }
            u += 1;
        }
    }
    f = function f1() {
        var n, t, i;
        for (n in N++ + {
            var: --s + +s,
            foo: N++ + +s,
            next: (u += 1) + +(!1 ^ (NaN | (u += 1, o)))
        }) {
            switch ("object" == typeof arguments_1) {
              case typeof (--s + ~((n && (n[u = 1 + u, (!1 !== (n && (n[u = 1 + u, 0 != (n += NaN)] = 0))) <= NaN ? (u = 1 + u, 
                u += 1, !1 < ("c" >> (2 === [ , 0 ].length) <= "b")) : (u = 1 + u, -0)] = NaN)) % 0)):
                for (t in u = 1 + u, !0) {
                    u = 1 + u, n %= {} + "38";
                }
                break;

              case N++ + s--:
                u = 1 + u, n && (n[u = 1 + u, 0] += 0), n && (n.Infinity = (2 === [ , 0 ].length) >>> o != NaN);
                break;

              case (u += 1) + (--s + (0 <= --c && f2()) ? n && "function" == typeof n.Infinity && 0 <= --c && (u = 1 + u, 
                n.Infinity)((u = 1 + u, n && (n.done %= NaN)), 0, -2) : (u += 1) + void 0):
                break;

              case {
                    async: (5 ^ this) >>> -4,
                    0: (u = 1 + (1 + u), 0 - (this >> [] ^ !0)),
                    "-2": (u = 1 + (1 + (u + 1)), (1 != (n /= "")) % (this % !0)),
                    set: (u = 1 + (u + 1), !1 ^ (n && (n.done = !0))),
                    value: (u = 1 + u, 22 * (n && (n.Infinity = 0)) <= 1)
                }:
                u = 1 + u, u += 1;
            }
        }
        for (i = 5; [].set && 0 < i; --i) {
            if (--s + /[abc4]/.test((--s + (N && "function" == typeof N.in && 0 <= --c && N.in()) || s || 5).toString())) {
                try {
                    switch (!0 / -32 ^ this << "b" >> -4) {
                      case u = 1 + (u = 1 + u), !1 < (38 ^ o):
                        break;

                      default:
                      case u = 1 + u, (N && (N[(u += 1) + [ (u = 1 + u, 0 == -1 >> (N && (N.value = o))) ].foo] += NaN)) >> 0:
                      case u = 1 + u, NaN < (null < this | "38-2"):
                    }
                } finally {
                    u = 1 + (u = 1 + u);
                }
            }
        }
    }(function NaN_2() {
        for (var n = 5; u = 1 + u, --s + [].value && 0 < --n; ) {}
        switch (s) {
          case /[abc4]/.test((u = 1 + u, ((!1 << (o != this) ? -4 / 0 : s) || 5).toString())):
            u = 1 + u, f &= !0;

          case N++ + (u = 1 + (1 + u), !(f = !0)):
            u = 1 + u, f -= -1;
            break;

          case NaN_2 && "function" == typeof NaN_2.in && 0 <= --c && NaN_2.in((u = 1 + u, !1)):
            break;

          case N:
            u = 1 + u, f && ({
                0: f.undefined
            } = {
                0: 0 ^ (f += NaN)
            });
        }
    }()), f2(), function f4() {
        var n;
        (function bar_1_1() {
            for (n in u = 1 + u, 0 != !1 < (n && (n.Infinity += !0))) {
                u = 1 + u, u += 1;
            }
        })(), u += 1;
    }();
}

o = f0((u += 1, "function" == typeof f2 && 0 <= --c && f2(..."" + N, "38"), --s, 
N && N[N], --s, u += 1, N++, N++, ((u += 1) + new function Infinity_1(n, t) {
    var i, e, a;
    for (this["function" == typeof f1 && 0 <= --c && f1(NaN, -2)] %= !0 * (u += 1, u += 1, 
    0), this[(u += 1) + ("function" == typeof f1 && 0 <= --c && f1("4"[u = 1 + ((u = 1 + u) + 1), 
    1], []))] &= !1 / (!1 !== (o || "a")) == ((!0 ^ (Infinity_1 && (Infinity_1[u = 1 + u, 
    NaN] = -1))) & (o - "number" || "undefined" == this)), this[{
        null: --s + (s = N),
        var: (u = 1 + u, Infinity_1 && (Infinity_1.NaN += 0 ^ (t && (t.a = !0)))),
        "-2": N++ + {
            undefined: (u = 1 + u, (n = !0) % NaN),
            get then() {
                u = 1 + u;
            },
            1.5: (u = 1 + u, 1 <= ("24" === (2 === [ , 0 ].length) == 0))
        }
    }] = (n && (n.value += !1 * ((t += 0) <= (n && (n.foo += "number"))))) > (1 ^ -5 == (t && (t.next = 1))), 
    i = 5; (u += 1) + -3 && 0 < i; --i) {
        for (e in u = 1 + u, !1) {
            u = 1 + (1 + u);
        }
    }
    for (n in a = s = N) {
        u = 1 + u, a[n];
    }
}() || s || 5).toString(), u += 1, "function" == typeof N && 0 <= --c && N(-0), 
N && "function" == typeof N.static && 0 <= --c && N.static(null, --s + ((N && ([ N[--s + s--] ] = [ this % "undefined" ^ -3 ])) !== (!0 === (u += 1, 
-2))), N++ + s), ++s, u += 1, function() {
    for (var n in u = 1 + u, "a") {
        u = 1 + (1 + u);
    }
}(), --s, N && (N.a = !0), --s, N && "function" == typeof N.static && 0 <= --c && N.static())), 
console.log(null, N, s, u, o, NaN, void 0);

export {
    f0
};
original result:
null 234 234 1584 undefined NaN undefined

uglified result:
null 234 234 1586 undefined NaN undefined
// reduced test case (output will differ)

// (beautified)
var expr7 = ((b_2, await_1) => await_1 && await_1)("a");

for (var key7 in expr7) {
    0();
}
// output: 
// minify: TypeError: 0 is not a function
// options: {
//   "compress": {
//     "hoist_vars": true,
//     "keep_infinity": true,
//     "passes": 1000000,
//     "unsafe": true
//   },
//   "keep_fnames": true,
//   "toplevel": true,
//   "mangle": {
//     "v8": true
//   },
//   "output": {
//     "v8": true
//   },
//   "validate": true
// }
minify(options):
{
  "compress": {
    "hoist_vars": true,
    "keep_infinity": true,
    "passes": 1000000,
    "unsafe": true
  },
  "keep_fnames": true,
  "toplevel": true,
  "mangle": {
    "v8": true
  },
  "output": {
    "v8": true
  }
}

Suspicious compress options:
  evaluate
  hoist_vars
  keep_fargs
  reduce_vars
  unused

Suspicious options:
  rename
@alexlamsl alexlamsl added the bug label Apr 2, 2021
alexlamsl added a commit to alexlamsl/UglifyJS that referenced this issue Apr 3, 2021
alexlamsl added a commit that referenced this issue Apr 3, 2021
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