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

Closed
alexlamsl opened this issue Oct 25, 2019 · 0 comments · Fixed by #3527
Closed

ufuzz failure #3526

alexlamsl opened this issue Oct 25, 2019 · 0 comments · Fixed by #3527
Labels

Comments

@alexlamsl
Copy link
Collaborator

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

{
    var b_2 = function f0() {
        {
            var expr2 = a++ + new function b_1() {
                this.a &= (((38..toString() | {}) == (this || {}), "a" ^ undefined && 0 !== null) | (b_1 += "b" << "function") << (c = c + 1, 
                "object") !== (NaN >> 4 | ("number" | -3)), (c = c + 1, (Infinity ^ "undefined") - (c = c + 1, 
                2)) - ((false !== -5) >>> (b_1 = null >> 1)) * (false < "b" === (true === -3))) + delete (-0 * "a" >> (this >= 25) == ("b" + "undefined" | (2 | 5)) ^ (("undefined" << {}) + (-3 != 0) && "object" % -5 << (b_1 = "a" > "bar"))) >> (((([ , 0 ].length === 2) * "foo" >>> {} + "undefined", 
                38..toString() >= "object" | {} * 23..toString()) && (true >> 5 && "foo" * "foo") << ("number" >>> 23..toString() << (25 == false))) << (("foo" > 4) + (3 >> 22) > ({} - 4) % ("" && "function")) + (("function" <= "a", 
                "a" >> "foo") > (-5 < 5) + (null >>> [])) << ((-undefined === (b_1 && (b_1.a /= 24..toString() + 4)) ^ ("foo" && 1) > (b_1 = true !== 23..toString()) | ([ , 0 ][1] << [] & Infinity == -0) - (b_1 && (b_1[typeof b_1 == "function" && --_calls_ >= 0 && b_1((c = 1 + c, 
                ((c = c + 1, {}) >= [ , 0 ][1] >>> -4) + -(Infinity * -5)))] &= (null <= -5) << (4 ^ 23..toString())))) >>> (((true | /[a2][^e]+$/) ^ ("bar" ^ -0)) << ("number" << {}) - ({} - /[a2][^e]+$/) && ((-3 === "number") + ("function" > true) && false ^ -5 ^ "object" - "number"))));
                this[b--] = ((((b_1 = 4 === "function") >>> (38..toString() >>> [ , 0 ][1])) / ((1 !== "function") % (38..toString() + "a")) != ((NaN == 25) * (null || 1) || 24..toString() >>> true ^ ([ , 0 ].length === 2, 
                "undefined"))) >> ((b_1 += ({} - 4 == (b_1 && (b_1.var -= -3 & 3))) << +(null * {})) | ([ , 0 ].length === 2 === 5 !== (undefined | [])) >> (b_1 = 22 + NaN + ~"")) >> (b_1 && (b_1[--b + b++] %= (b_1 && (b_1[(c = c + 1) + !function b() {
                    try {
                        c = 1 + c, (false & "foo") * ("c" - "number"), c = c + 1, b_1 && (b_1[(c = 1 + c, 
                        (b_1 && (b_1.Infinity += 24..toString() / "bar" & "function" << 2)) >>> (NaN >>> 23..toString() != (2 || [])))] *= 5 ^ null);
                    } catch (Infinity_2) {
                    }
                    {
                    }
                }()] /= (("c" & Infinity) < ([ , 0 ][1] != "undefined")) - (([ , 0 ].length === 2) >> NaN ^ 0 > -3) & (([ , 0 ][1] >> 25, 
                [ , 0 ][1] == "a") || ("" !== 24..toString()) >>> (undefined && -4)))) <= (2 && "c" && -3 ^ Infinity, 
                b_1 && (b_1[delete a] = (24..toString(), undefined) < (3, true))) * (~(-3 == -1) << (~true === Infinity + true)))), 
                (("" && 38..toString()) + ([], [ , 0 ].length === 2) + ((/[a2][^e]+$/ << 24..toString()) + (38..toString() | "foo"))) * ((3 && "number" && Infinity | "function") === (b_1 && (b_1.foo >>= (-0, 
                22))) + (-5 | "object")) + (c = c + 1, (/[a2][^e]+$/ + "bar" | (b_1 && (b_1.NaN = [] >> []))) !== (-1 !== "undefined") * (24..toString() | "undefined")) & ((23..toString() / 4 ^ ({} | 2)) / (-2 + -0 >> (b_1 && (b_1[(c = 1 + c, 
                ("b" <= 1) * (-4 != -4), +(([ , 0 ].length === 2) >>> "foo"))] = [ , 0 ][1] && 23..toString()))) !== (b_1 && (b_1[(c = 1 + c, 
                (b_1 += -3 === -4 & (null & this)) <= 23..toString() >> 23..toString() << "" * 5)] = /[a2][^e]+$/ | "foo")) / ("b", 
                -1) < ((b_1 |= 23..toString() + -1) ^ 0 === "number") | (c = c + 1, (-2 && {}) % (b_1 && (b_1[(c = 1 + c, 
                0 >> "bar" < (5 < "a") || "foo" == "object" && 2 <= 4)] += 5 === 25))) == ((b_1 && (b_1.Infinity = "a" !== "foo")) > "number" % "" === (c = c + 1, 
                "function") >>> ([] <= {}))));
                switch (--b + b_1) {
                  case [ , b_1, (c = c + 1) + (typeof f2 == "function" && --_calls_ >= 0 && f2()), b = a, --b + void function() {
                        c = 1 + c, (23..toString() + -4 & "c" + -4) != "undefined" - 22 << "c" / "undefined";
                        c = 1 + c, ("bar" & undefined) >> ("" >>> ([ , 0 ].length === 2)) > ((undefined & true) < (c = c + 1, 
                        null));
                        c = 1 + c, b_1 = 23..toString() + "b" >> ("a" ^ 3) > (b_1 && (b_1.c += -1 == 1)) + 1 % 0;
                    }() ][typeof c === "symbol"]:
                    ;
                    break;

                  case --b + {
                        foo: b_1
                    }.undefined:
                    {
                        return ++a;
                    }
                    {
                        var expr12 = (a++ + {
                            1.5: (c = 1 + c, ({} == 23..toString() ^ "bar" >>> [ , 0 ][1]) == ("c" <= false || 0 && {}))
                        }[(c = 1 + c, (b_1 && (b_1.undefined = true * 4)) < ("" ^ "a") != -(b_1 && (b_1.undefined += 2 < 25)))] || a || 3).toString();
                        L15418: for (var key12 in expr12) {
                            for (var brake13 = 5; --b + (b_1 && b_1.var) && brake13 > 0; --brake13) {
                                var expr14 = (c = 1 + c, ((3 ^ 3) << ("object", "")) - (0 <= this !== (0 && true)));
                                for (var key14 in expr14) {
                                    c = 1 + c, -0 > 3 === "c" / "undefined" & (1 / [ , 0 ][1] || 1 + /[a2][^e]+$/);
                                }
                            }
                        }
                    }
                    break;

                  case delete b:
                    break;

                  case b_1 += a++ + function() {
                        switch (c = 1 + c, (([ , 0 ].length === 2) << -5 == (b_1 >>= "" | "")) - (~-5 == (1 != ""))) {
                          case c = 1 + c, 2 / "bar" < (-3 === 25) && ("bar" >>> "b") - (b_1 && (b_1.b = 23..toString() || 24..toString())):
                            ;
                            break;

                          case c = 1 + c, ((-5 || "b") ^ "b" > 1) + (true < 3 ^ NaN < 1):
                            ;
                            break;

                          case c = 1 + c, c = c + 1, (-3 >> ([ , 0 ].length === 2)) / (-2 != -1):
                            ;
                            break;

                          default:
                            ;
                        }
                        return c = 1 + c, b_1 && (b_1.undefined &= ("number" === -1) * (b_1 && (b_1[(c = 1 + c, 
                        ("b" << "a" == (b_1 && (b_1.in = "function" > undefined))) >= ((-3 || NaN) >= (-1 == "foo")))] = "function" * 24..toString())) >> ((c = c + 1, 
                        38..toString()) !== (-1 || "number")));
                        {
                            var expr18 = (c = 1 + c, (c = c + 1, [] | "object") / ((b_1 && (b_1.a = 2 <= "function")) * ("number" ^ 0)));
                            for (var key18 in expr18) {
                                c = 1 + c, (24..toString() || Infinity) >>> (24..toString() <= "c") === (-3 !== "undefined") * ("" === -3);
                            }
                        }
                        c = 1 + c, (b_1 += (this < 38..toString()) >>> ("object" << "foo")) > +(-0 - []);
                    }():
                    ;
                    break;
                }
            }();
            for (var key2 in expr2) {
                c = 1 + c;
                var a = expr2[key2];
                {
                    var expr22 = a && a.var;
                    L15419: for (var key22 in expr22) {
                        c = 1 + c;
                        var parseInt = expr22[key22];
                        for (var brake23 = 5; a && brake23 > 0; --brake23) {
                            c = c + 1;
                        }
                    }
                }
            }
        }
        {
            var brake25 = 5;
            L15420: while ([ [ a, {
                0: {
                    a: (c = 1 + c, (("c" == 1) >>> (a && (a.undefined = "" | 23..toString()))) + ((/[a2][^e]+$/ && 1) << (c = c + 1, 
                    3))),
                    NaN: (c = 1 + c, (a = "foo" ^ 2 ^ ("bar", true)) >>> (c = c + 1, "c") - undefined / -0),
                    Infinity: (c = 1 + c, -([ , 0 ][1] ^ -3) || (c = c + 1, undefined / "foo")),
                    length: (c = 1 + c, (a = (a && (a.null += (38..toString(), 4))) >>> (4 > "b")) & ("" >>> 22 & ("foo", 
                    "b"))),
                    NaN: (c = 1 + c, (-3 >> 1 || "b" ^ false) >= (this >= 3) >>> (5 && true))
                }[(c = 1 + c, (a && (a[(c = 1 + c, a >>= 25 - -1 ^ "a" << [ , 0 ][1] || {} >> undefined >> (38..toString() & "number")) ? (c = 1 + c, 
                (c = c + 1, [] >= "a") << (a && (a.a = -1 <= 1) && "undefined" / "bar")) : (c = 1 + c, 
                ((a = "b" / 22) > (Infinity !== "undefined")) / ([ , 0 ][1] % ([ , 0 ].length === 2) ^ -0 < Infinity))] = this + 23..toString() >> "c" + "bar")) !== (a && (a[(c = c + 1) + [][(c = 1 + c, 
                (false ^ "bar") / (/[a2][^e]+$/ ^ -0) << (a = -2 >>> "function" & (5 & -5)))]] += ("c" ^ -5) == ("c" | []))))],
                var: --b + (1 === 1 ? a : b),
                c: delete a,
                var: !(([ , 0 ][1] !== this ^ 23..toString() == "foo") - (("" ^ {}) >= (null | "object")))
            }[[ (c = 1 + c, ("object" / 0 !== 22 * {}) * ((-3 == 2) > (NaN >= 1))), (c = 1 + c, 
            (c = c + 1, 25 >>> "a") ^ (-0 >> "object" ^ ("c" ^ "number"))), (c = 1 + c, (c = c + 1, 
            /[a2][^e]+$/) != (true, -1) && ~("number" >= {})), (c = 1 + c, (c = c + 1, Infinity) >= 38..toString() * this && (Infinity & "function") === /[a2][^e]+$/ >= "object") ].b] ], [ {
                set var(a_2) {
                    c = 1 + c, (4 >> true) + ("b" << {}) && "a" >>> "undefined" == "c" * -2;
                    this.a = (22, 4) >= (-5 == "a");
                },
                b: typeof (c = 1 + c, delete ((22 != ([ , 0 ].length === 2)) % ("undefined" !== 25))),
                var: (c = c + 1) + {
                    undefined: (c = 1 + c, (false << NaN) / (undefined <= "a") <= (a && (a[((c = 1 + c, 
                    {} + "undefined" >> 23..toString() / [ , 0 ][1] || ("undefined" | "a") - ("undefined" < "foo")) || 7).toString()[(c = 1 + c, 
                    [] << -1, "foo" < NaN, ("bar" & -5) == "c" << 0)]] += (-3 || [ , 0 ][1]) <= ("foo" ^ -0))))
                }.undefined
            }[a++ + ((Infinity - -3 ^ "bar" / 25) - (a && (a[(c = c + 1) + a++] = (22 > -0) * ("b" >> 25))))], (c = c + 1) + (a++ + (b /= a)), b = a, , (c = c + 1) + (a = b += a) ][(c = c + 1) + {
                a: a
            }], --b + (typeof arguments_2 === "unknown"), --b + typeof (--b + (0 === 1 ? a : b) || 3).toString()[(--b + a-- || 2).toString()[(c = c + 1) + (typeof f0 == "function" && --_calls_ >= 0 && f0((c = 1 + c, 
            ("a" >= null < Infinity >> [ , 0 ][1]) + (("" & "") < -2 - "object")), (c = 1 + c, 
            (false && false) % (a = /[a2][^e]+$/ + ([ , 0 ].length === 2)) | (38..toString() !== 3) >>> ("function" <= -4)), [ , 0 ].length === 2))]] ].undefined && --brake25 > 0) {
                void ((a += {} >= "function" | (this || {})) && (-5 ^ -2) >= "b" * false);
                {
                    var brake29 = 5;
                    do {
                        {
                            var brake30 = 5;
                            while ((b = a) && --brake30 > 0) {
                                try {
                                    L15421: for (var brake32 = 5; a && a[(c = 1 + c, a && (a.b ^= ({} % -1 <= 1 >>> "undefined") << (c = c + 1, 
                                    c = c + 1, 4)))] && brake32 > 0; --brake32) {
                                        for (var brake33 = 5; (c = 1 + c, (c = c + 1, 24..toString()) != "" >= -5 & (a && (a[a++ + (typeof f1 == "function" && --_calls_ >= 0 && f1("a"))] = ([] ^ "foo") >= [] >> 0))) && brake33 > 0; --brake33) {
                                            c = 1 + c, ("a" || "number") - (a && (a[(c = 1 + c, (true == Infinity ^ [ , 0 ].length === 2 !== /[a2][^e]+$/) % delete (false & "a"))] = 23..toString() <= 38..toString())) && undefined << [] < (-1 != "foo");
                                        }
                                    }
                                } catch (a_1) {
                                    {
                                        return;
                                        c = 1 + c, a_1 && (a_1.foo = (c = c + 1, "c" === false) > ("b" << -3) + (3 !== Infinity));
                                    }
                                    {
                                        var expr36 = (c = 1 + c, ((/[a2][^e]+$/ <= 38..toString()) - delete ([ , 0 ].length === 2)) * ("b" % -3 / (a_1 && (a_1[(c = 1 + c, 
                                        (3 + true === (-4 != 5)) >> (false == []) / ("number" ^ -2))] = undefined >>> "undefined"))));
                                        for (var key36 in expr36) {
                                            c = 1 + c, a_1 && (a_1.NaN += ("b" === true) + (22 <= "") ^ this >= "a" != "a" <= false);
                                        }
                                    }
                                }
                            }
                        }
                    } while (--b + (b + 1 - .1 - .1 - .1) && --brake29 > 0);
                }
                for (var brake38 = 5; (c = c + 1) + (a++ + (typeof bar_1 != "undefined")) && brake38 > 0; --brake38) {
                    return "function";
                }
            }
        }
    }();
}

{
    var expr40 = [ a++ + b_2, (c = c + 1) + ((-0 < {} || 1 != 23..toString()) != (Infinity && 3 || (b_2 >>>= 24..toString() << 22))) ].c;
    for (var key40 in expr40) {
        c = 1 + c;
        var b_2 = expr40[key40];
        try {
            for (var brake42 = 5; (c = c + 1) + !function() {}() && brake42 > 0; --brake42) {
                {
                    var a_2 = function Infinity_2(a) {
                        {
                            {
                            }
                        }
                        {
                            var brake47 = 5;
                            while ((NaN / 5 || -0 | "undefined") & (null <= "b") - !-2 && --brake47 > 0) {
                                return;
                                a++ + --b;
                            }
                        }
                    }(void function() {
                        {
                            var brake49 = 5;
                            while ((c = 1 + c, ("c" <= true == "function" * true) << ((b_2 && (b_2[(c = 1 + c, 
                            a_2 && (a_2.undefined += (a_2 /= 5 == {}) % ("undefined" != "c") - ([] >> "a" !== (22 == true))))] = 5 ^ /[a2][^e]+$/)) | -2 != false)) && --brake49 > 0) {
                                c = 1 + c, (4 <= this ^ -0 / 23..toString()) > (b_2 && (b_2[(c = 1 + c, "b" > 22 === -4 - true ^ (b_2 && (b_2.var = (-4 & 5) <= "number" - null)))] += ("function", 
                                3))) * ("undefined" ^ 38..toString());
                            }
                        }
                        switch (c = 1 + c, (b_2 += ([ , 0 ].length === 2) % "number" - ("number" | NaN)) || b_2 && (b_2.in += (4 ^ "undefined") === "foo" >= [ , 0 ][1])) {
                          case c = 1 + c, (23..toString() ^ undefined) * (-1 / 3) != (-2 == 25) <= 3 - -3:
                            ;
                            break;

                          default:
                            ;

                          case c = 1 + c, b_2 && (b_2["bar"] = ("function" - Infinity ^ (c = c + 1, "number")) > (("undefined" == this) >= (-2 < -3))):
                            ;
                            break;

                          case c = 1 + c, ~(-4 | true) <= (undefined / "bar" ^ "a" !== "number"):
                            ;
                            break;
                        }
                        {
                            var brake52 = 5;
                            L15422: while ((c = 1 + c, (24..toString() + false) % ~0 ^ -4 - "foo" > ("b" & -2)) && --brake52 > 0) {
                                c = 1 + c, NaN + null >>> (23..toString() >>> "a") ^ /[a2][^e]+$/ - 22 == ("bar" & 25);
                            }
                        }
                    }(), "object");
                }
            }
        } catch (a_2_1) {
            {
                var brake54 = 5;
                L15423: while ([ a--, +a ][b++] && --brake54 > 0) {
                    typeof f1 == "function" && --_calls_ >= 0 && f1(--b + [][((c = 1 + c, (({} >> "function") - (/[a2][^e]+$/ == -3)) / ((23..toString() == 0) * void undefined)) || a || 3).toString()]);
                    {
                        var expr57 = --b + (a-- || 8).toString()[!function a_1() {
                            for (var brake58 = 5; (c = 1 + c, (a_2_1 <<= (Infinity, 24..toString()) > (a_2 && (a_2[(c = 1 + c, 
                            ({} !== "foo") + (-0 != 23..toString()) + (-4 + -0) * (false * -2))] += false / -1))) !== (("a", 
                            "b") || 25 << NaN)) && brake58 > 0; --brake58) {
                                c = 1 + c, ((a_2_1 && (a_2_1[(c = 1 + c, false - undefined | "number" !== true | "" % "" <= (false > 3))] = 2 || Infinity)) > (b_2 && (b_2[(c = 1 + c, 
                                a_1 && (a_1[(24..toString() >= Infinity === -0 * "foo") / ((a_2_1 && (a_2_1[(c = 1 + c, 
                                c = c + 1, ("" == 22) - ("a" !== -1))] += "number" << 0)) << (a_2_1 = 24..toString() + true))] *= (25 * -2 || a_2 && (a_2.a >>>= -2 && Infinity)) <= (void 23..toString() !== 3 * 4)))] = -2 << "c"))) >> ([] === -3 === (a_2_1 = 24..toString() << false));
                            }
                            {
                                var brake61 = 5;
                                while ((c = 1 + c, (a_1 && (a_1[(c = 1 + c, (c = c + 1, "bar") | "b" >= "bar" | /[a2][^e]+$/ !== "object" ^ (3 && "foo"))] = 2 === "foo") && 23..toString() ^ 0) % (~38..toString() >>> (b_2 = this % ""))) && --brake61 > 0) {
                                    c = 1 + c, (-3 >> [ , 0 ][1]) / (/[a2][^e]+$/ == false) * (5 != "object" ^ Infinity < -5);
                                }
                            }
                        }()];
                        for (var key57 in expr57) {
                            {
                                var expr63 = a++ + ((b_2 && (b_2.b += -5 >= ([ , 0 ].length === 2)) && "undefined" % 4) >> ((24..toString() | -5) >>> ("" < "a")));
                                for (var key63 in expr63) {
                                    c = c + 1;
                                }
                            }
                        }
                    }
                    +a ? b = a : a--;
                }
            }
            0;
        } finally {
            {
                var brake67 = 5;
                do {
                    L15424: for (var brake68 = 5; (c = c + 1) + (b_2 && b_2.length) && brake68 > 0; --brake68) {
                        if (typeof f0 == "function" && --_calls_ >= 0 && f0(typeof f1 == "function" && --_calls_ >= 0 && f1("bar"), 2)) {
                            c = c + 1;
                        } else {
                            var brake71 = 5;
                            do {
                                var a = (c = c + 1) + (b ^= a), bar_1 = a++ + void function NaN() {
                                    if (c = 1 + c, (-3 + 23..toString() ^ 23..toString() + "") >>> (true <= [ , 0 ][1] < (c = c + 1, 
                                    Infinity))) {
                                        c = 1 + c, (c = c + 1, Infinity) % ("number" ^ -2) ^ (-3 === "number") + (-1 < -2);
                                    } else {
                                        c = 1 + c, (b_2 && (b_2.b = ("c" | "bar") != (a_2 && (a_2.var += "function" ^ 5)))) <= ((NaN !== null) >= (c = c + 1, 
                                        3));
                                    }
                                }();
                            } while ((c = c + 1) + [ a++ + (0 === 1 ? a : b), a++ + !(("a" * -2 == ("number" != 24..toString())) - (/[a2][^e]+$/ & 0 || (c = c + 1, 
                            22))), (b_2 = (c = 1 + c, b_2 && (b_2.in >>= void (24..toString() && /[a2][^e]+$/) == (23..toString() !== /[a2][^e]+$/) >> (5 < this)))) ? typeof bar_1 == "function" && --_calls_ >= 0 && bar_1() : {}[(c = 1 + c, 
                            (38..toString() !== "function") << (null >> "number") == ("bar" === 25 || "b" | "b"))], a++ + (typeof a == "crap" || 7).toString()[(c = 1 + c, 
                            (a_2 && (a_2[a++ + typeof (c = 1 + c, ("object" ^ -0) / (false ^ {}) !== (-1 != {}) <= (this && -4))] += (2 - -3, 
                            "c" >= []))) & (a_2 && (a_2.foo = true / "function" / (38..toString() >> "function"))))], a++ + (typeof a_2 == "function" && --_calls_ >= 0 && a_2((c = 1 + c, 
                            (b_2 && (b_2[(c = c + 1) + (typeof f2 == "function" && --_calls_ >= 0 && f2((c = 1 + c, 
                            c = c + 1, 24..toString() === -2 === ("undefined" ^ "undefined")), 22))] |= [ , 0 ].length === 2 !== 22 === -5 > "b")) - ((this && [ , 0 ][1]) > (-0 >= "number"))))) ][(c = c + 1) + b--] && --brake71 > 0);
                        }
                    }
                } while (--b + {}[[ a++ + typeof (1 === 1 ? a : b), a_2 += ({
                    NaN: (c = 1 + c, (b_2 = "foo" ^ 38..toString() && "a" - null) & ("undefined" & 23..toString()) >>> ("undefined" === -5))
                }[(c = c + 1) + {
                    b: (c = 1 + c, ("b" >> null) % ("function" > []) & (23..toString() != -1) * ("b" & /[a2][^e]+$/)),
                    in: (c = 1 + c, ((a_2 = ([ , 0 ].length === 2, "undefined")) ^ 22 != true) & -5 >> 23..toString() >>> (25 <= Infinity))
                }] || 2).toString()[(c = c + 1) + b--], --b + b_2, 25 ]] && --brake67 > 0);
            }
            L15425: for (var brake76 = 5; -1 && brake76 > 0; --brake76) {
                (c = c + 1) + (typeof f0 == "function" && --_calls_ >= 0 && f0());
            }
        }
    }
}

console.log(null, a, b, c, Infinity, NaN, undefined);
// uglified code
// (beautified)
var _calls_ = 10, a = 100, b = 10, c = 0, expr40 = [ a++ + (b_2 = function a() {
    var r = f++ + new function a() {
        switch (this.a &= (c += 1, c += 1, 0 - (c += 1, 2) - 1 + !0 >> (0 << ((NaN === (a && (a.a /= "244")) ^ !1 | 0 - (a && (a["function" == typeof a && 0 <= --_calls_ && a((c = 1 + c, 
        c += 1, 1 / 0))] &= 0))) >>> 0))), this[b--] = (a && (a.var -= 1), a && (a[--b + b++] %= (a && (a[(c += 1) + !function() {
            try {
                c = 1 + c, c += 1, a && (a[(c = 1 + c, (a && (a.Infinity += 0)) >>> !0)] *= 5);
            } catch (c) {}
        }()] /= 1)) <= -1 * (a && (a[delete f] = !1))), "true38" * (0 === (a && (a.foo >>= 22)) + -5) + (c += 1, 
        24 != ("/[a2][^e]+$/bar" | (a && (a.NaN = 0)))) & (7 / (-2 >> (a && (a[(c = 1 + c, 
        1)] = 0))) !== (a && (a[(c = 1 + c, a + (0 & this) <= 0)] = 0)) / -1 < (!1 ^ ("23-1" | a)) | (c += 1, 
        {} % (a && (a[(c = 1 + c, !1)] += !1)) == (NaN < (a && (a.Infinity = !0)) === (c += 1, 
        0))))), --b + a) {
          case [ , a, (c += 1) + ("function" == typeof f2 && 0 <= --_calls_ && f2()), b = f, --b + (c = 1 + (c = 1 + c), 
            c = 1 + (c += 1), void (a && (a.c += !1))) ]["symbol" == typeof c]:
            break;

          case --b + {
                foo: a
            }.undefined:
            return ++f;

          case delete b:
          case a + (f++ + function() {
                switch (c = 1 + c, (!0 << -5 == (a >>= 0)) - !1) {
                  case c = 1 + c, !1:
                  case c = 1 + c, -4:
                  case c = 1 + c, c += 1, -2:
                }
                return c = 1 + c, a && (a.undefined &= !1 * (a && (a[(c = 1 + c, !1 <= (0 == (a && (a.in = !1))))] = NaN)) >> (-1 !== (c += 1, 
                "38")));
            }()):
        }
    }();
    for (var e in r) {
        c = 1 + c;
        var f = r[e], n = f && f.var;
        for (var _ in n) {
            c = 1 + c, n[_];
            for (var t = 5; f && 0 < t; --t) {
                c += 1;
            }
        }
    }
    for (var o = 5; [ [ f, {
        0: {
            a: (c = 1 + c, (!1 >>> (f && (f.undefined = 23))) + (1 << (c += 1, 3))),
            NaN: (c = 1 + c, (f = 3) >>> (c += 1, NaN)),
            Infinity: (c = 1 + c, 3),
            length: (c = 1 + c, 0 & (f = (f && (f.null += 4)) >>> !1)),
            NaN: (c = 1 + c, (3 <= this) >>> !0 <= -2)
        }[(c = 1 + c, (f && (f[(c = 1 + c, (f >>= 26) ? (c = 1 + c, c += 1, !1 << (f && (f.a = !0) && NaN)) : (c = 1 + c, 
        (!0 < (f = NaN)) / 1))] = this + "23" >> "cbar")) !== (f && (f[(c += 1) + [][(c = 1 + c, 
        NaN << (f = 0))]] += !1)))],
        var: --b + f,
        c: delete f,
        var: !((0 !== this ^ !1) - !0)
    }[[ (c = 1 + c, 0), (c = 1 + c, 0 ^ (c += 1, 25)), (c = 1 + c, -1 != (c += 1, /[a2][^e]+$/) && -2), (c = 1 + c, 
    c += 1, "38" * this <= 1 / 0 && !1) ].b] ], [ {
        set var(a) {
            c = 1 + c, this.a = !0;
        },
        b: (c = 1 + c, typeof !0),
        var: (c += 1) + (c = 1 + c, NaN <= (f && (f[("" + (c = 1 + c, 7))[(c = 1 + c, !0)]] += !0)))
    }[f++ + (0 - (f && (f[(c += 1) + f++] = 0)))], (c += 1) + (f++ + (b /= f)), b = f, , (c += 1) + (f = b += f) ][(c += 1) + {
        a: f
    }], --b + ("unknown" == typeof arguments_2), --b + typeof ("" + (--b + b || 3))[("" + (--b + f-- || 2))[(c += 1) + (0 <= --_calls_ && a(c = 1 + c, (c = 1 + c, 
    f = /[a2][^e]+$/ + !0)))]] ].undefined && 0 < --o; ) {
        f += !1 | (this || {});
        var i = 5;
        do {
            for (var l = 5; (b = f) && 0 < --l; ) {
                try {
                    for (var s = 5; f && f[(c = 1 + c, f && (f.b ^= !1 << (c += 1, c += 1, 4)))] && 0 < s; --s) {
                        for (var v = 5; c = 1 + c, 1 != (c += 1, "24") & (f && (f[f++ + ("function" == typeof f1 && 0 <= --_calls_ && f1("a"))] = !0)) && 0 < v; --v) {
                            c = 1 + c, f && (f[(c = 1 + c, 0)] = !0);
                        }
                    }
                } catch (c) {
                    return;
                }
            }
        } while (--b + (b + 1 - .1 - .1 - .1) && 0 < --i);
        for (var N = 5; (c += 1) + (f++ + (void 0 !== bar_1)) && 0 < N; --N) {
            return "function";
        }
    }
}()), (c += 1) + !0 ].c;

for (var key40 in expr40) {
    c = 1 + c;
    var b_2 = expr40[key40];
    try {
        for (var brake42 = 5; (c += 1) + !0 && 0 < brake42; --brake42) {
            var a_2 = void function() {
                for (var a = 5; c = 1 + c, !1 << (!0 | (b_2 && (b_2[(c = 1 + c, a_2 && (a_2.undefined += (a_2 /= !1) % !0 - !0))] = 5))) && 0 < --a; ) {
                    c = 1 + c, b_2 && (b_2[(c = 1 + c, !1 ^ (b_2 && (b_2.var = !1)))] += 3);
                }
                switch (c = 1 + c, (b_2 += NaN) || b_2 && (b_2.in += !1)) {
                  case c = 1 + c, !0:
                    break;

                  default:
                  case c = 1 + c, b_2 && (b_2.bar = (NaN ^ (c += 1, "number")) > (!1 <= ("undefined" == this))):
                  case c = 1 + c, !1:
                }
                c = 1 + c;
            }();
        }
    } catch (f) {
        for (var brake54 = 5; [ a--, +a ][b++] && 0 < --brake54; ) {
            "function" == typeof f1 && 0 <= --_calls_ && f1(--b + []["" + (c = 1 + c, a || 3)]);
            var expr57 = --b + ("" + (a-- || 8))[!function a() {
                for (var r = 5; c = 1 + c, "b" !== (f <<= (a_2 && (a_2[(c = 1 + c, 2)] += -0)) < "24") && 0 < r; --r) {
                    c = 1 + c, f && (f[(c = 1 + c, 1)] = 2), b_2 && (b_2[(c = 1 + c, a[!1 / ((f && (f[(c = 1 + c, 
                    c += 1, -1)] += 0)) << (f = "24" + !0))] *= !0)] = -2), f = 24;
                }
                for (var e = 5; ((a[(c = 1 + (c = 1 + c), !1 | (c += 1, "bar") | 1)] = !1) && 23) % (-39 >>> (b_2 = this % "")) && 0 < --e; ) {
                    c = 1 + c;
                }
            }()];
            for (var key57 in expr57) {
                var expr63 = a++ + ((b_2 && (b_2.b += !1) && NaN) >> (-5 >>> !0));
                for (var key63 in expr63) {
                    c += 1;
                }
            }
            +a ? b = a : a--;
        }
    } finally {
        var brake67 = 5;
        do {
            for (var brake68 = 5; (c += 1) + (b_2 && b_2.length) && 0 < brake68; --brake68) {
                if ("function" == typeof f0 && 0 <= --_calls_ && f0("function" == typeof f1 && 0 <= --_calls_ && f1("bar"), 2)) {
                    c += 1;
                } else {
                    var brake71 = 5;
                    do {
                        a = (c += 1) + (b ^= a);
                        var bar_1 = a++ + (c = 1 + c, -342 >>> (!1 < (c += 1, 1 / 0)) ? c = 1 + c : (c = 1 + c, 
                        b_2 && (b_2.b = 0 != (a_2 && (a_2.var += 5)))), void (c += 1));
                    } while ((c += 1) + [ a++ + b, a++ + !(!1 - (c += 1, 22)), (c = 1 + c, (b_2 = b_2 && (b_2.in >>= null == !0 >> (5 < this))) ? "function" == typeof bar_1 && 0 <= --_calls_ && bar_1() : {}[(c = 1 + c, 
                    !1)]), a++ + ("" + ("crap" == typeof a || 7))[(c = 1 + c, (a_2 && (a_2[a++ + (c = 1 + c, 
                    typeof (NaN !== !0 <= (this && -4)))] += !0)) & (a_2 && (a_2.foo = NaN)))], a++ + ("function" == typeof a_2 && 0 <= --_calls_ && a_2((c = 1 + c, 
                    (b_2 && (b_2[(c += 1) + ("function" == typeof f2 && 0 <= --_calls_ && f2((c = 1 + c, 
                    c += 1, !1), 22))] |= !1)) - (!1 < (this && 0))))) ][(c += 1) + b--] && 0 < --brake71);
                }
            }
        } while (--b + {}[[ a++ + typeof a, a_2 += ("" + ({
            NaN: (c = 1 + c, 0 & (b_2 = NaN))
        }[(c += 1) + {
            b: (c = 1 + c, 0),
            in: (c = 1 + c, (!0 ^ (a_2 = "undefined")) & -1 >>> !0)
        }] || 2))[(c += 1) + b--], --b + b_2, 25 ]] && 0 < --brake67);
        for (var brake76 = 5; 0 < brake76; --brake76) {
            c += 1, "function" == typeof f0 && 0 <= --_calls_ && f0();
        }
    }
}

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

uglified result:
null 100 2 348 Infinity NaN undefined

minify(options):
{
  "compress": {
    "keep_fargs": false,
    "passes": 1000000,
    "sequences": 1000000,
    "unsafe": true,
    "unsafe_Function": true,
    "unsafe_math": true,
    "unsafe_proto": true,
    "unsafe_regexp": true
  }
}
@alexlamsl alexlamsl added the bug label Oct 25, 2019
alexlamsl added a commit to alexlamsl/UglifyJS that referenced this issue Oct 25, 2019
alexlamsl added a commit that referenced this issue Oct 25, 2019
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