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

Closed
alexlamsl opened this issue May 29, 2019 · 0 comments · Fixed by #3430
Closed

ufuzz failure #3429

alexlamsl opened this issue May 29, 2019 · 0 comments · Fixed by #3430
Labels

Comments

@alexlamsl
Copy link
Collaborator

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

{
    c = c + 1;
    {
        var brake3 = 5;
        do {
            if (0 === 1 ? a : b) {} else {
                var brake6 = 5;
                do {
                    {
                        var brake7 = 5;
                        do {
                            for (var brake8 = 5; -(/[a2][^e]+$/ === [] ^ 25 % /[a2][^e]+$/, +[ , 0 ][1] == ("foo" | "number")) && brake8 > 0; --brake8) {
                                var b_2;
                            }
                        } while (delete ((2 | 22) >>> (c = c + 1, 38..toString()) ^ (b_2 += (25 || true) ^ 3 !== Infinity)) && --brake7 > 0);
                    }
                } while ([ b_2 && b_2[b += a] ].in && --brake6 > 0);
            }
        } while (--b && --brake3 > 0);
    }
    try {
        {
            throw b_2;
        }
    } catch (bar_1) {
        {
            var expr12 = (c = c + 1) + +function() {}();
            L113527: for (var key12 in expr12) {
            }
        }
        switch (b = a) {
          case --b + ((5 === "b" | Infinity >= []) >= ((22 !== 25) < ("bar" <= 4))):
            if (a++ + (typeof bar_1_1 != "boolean")) {
                var brake16 = 5;
                L113528: while ((c = c + 1) + [ (c = c + 1) + ((c = 1 + c, (false & 24..toString()) === ("c" ^ "object") | (-4 ^ 22) > (bar_1 && (bar_1[(c = 1 + c, 
                this >> "" <= {} << "function" ^ (1 ^ null || (NaN || 3)))] >>= "bar" && 0))) || a || 3).toString(), a++, --b + ((c = 1 + c, 
                (c = c + 1, 2 - "object") ^ -1 < 22 !== false + "b") ? (c = 1 + c, (25 === -5 | this * 38..toString()) >= (3 % this === (0 | -1))) : (c = 1 + c, 
                (c = c + 1, bar_1 && (bar_1.b >>>= undefined - "c")) * ("a" >>> 22 > delete NaN))) ][a++ + (bar_1 && bar_1.c)] && --brake16 > 0) {
                    switch (--b + {}) {
                      case --b + b_2:
                        var a_2 = (c = 1 + c, (false === {} & (-3 || "a")) << (5 != 24..toString() || (3 || "c")));
                        break;

                      case (c = c + 1) + a--:
                        {
                            var expr19 = (c = 1 + c, ("undefined" ^ NaN) <= -3 + 24..toString() !== (0 >>> 2 === - -5));
                            L113529: for (var key19 in expr19) {
                                c = 1 + c;
                                var foo_1 = expr19[key19];
                                c = 1 + c, delete (-1 * true) ^ (-5 >= "c" || (undefined || false));
                            }
                        }
                        ;
                        break;

                      case foo_1 && foo_1.in:
                        for (var brake22 = 5; (c = 1 + c, (22 << "c" && null === "a") | ("bar" === 38..toString()) + ("bar" << undefined)) && brake22 > 0; --brake22) {
                            c = 1 + c, -4 < Infinity < (bar_1 = 24..toString() ^ 22) | ("foo" && undefined) / (this << "function");
                        }
                        break;

                      case --b:
                        break;
                    }
                }
            }
            break;

          case b_2:
            !function b_2() {
                {}
            }();
            b += a;
            break;

          case "":
            L113530: for (var brake27 = 5; --b + !b && brake27 > 0; --brake27) {
                switch ((c = c + 1) + [ (c = c + 1) + (b -= a), (a_2 += ("undefined" !== "a") % (24..toString() & 25)) % (foo_1 = (38..toString() & /[a2][^e]+$/) === ([] !== 38..toString())), b_2 ].c) {
                  case (c = c + 1) + (b = a):
                    (c = c + 1) + void function a_2() {
                    }();
                    switch (a++ + b_2) {
                      case --b + (typeof f1 == "function" && --_calls_ >= 0 && f1((c = 1 + c, (24..toString() != Infinity ^ "bar" << "undefined") == (24..toString() - ([ , 0 ].length === 2) && 0 & -4)))):
                        break;

                      case --b + void function() {
                        }():
                        c = 1 + c, ~((22, -0) != ("" | 3));

                      case {
                            3: (c = 1 + c, foo_1 += (bar_1 && (bar_1[(c = 1 + c, b_2 &= 23..toString() === 5 ^ 2 % 1 || b_2 && (b_2[foo_1 += "function" % 1 % (25 >= -3) > (-0 >>> "function" | -5 * "a")] = 4 ^ 0 && ("", 
                            1)))] += false >> {}), "foo" >= -2) % ((foo_1 = 2 ^ {}) | "object" >> [])),
                            0: (c = 1 + c, ((undefined ^ 2) <= (a_2 = Infinity / {})) >>> void ("foo" / this)),
                            "-2": (c = 1 + c, {} - "function" <= "" - "b" | (bar_1 += undefined <= false == "function" >> "function")),
                            in: (c = 1 + c, (false != true) < ([ , 0 ].length === 2 != 22) ^ (foo_1 && (foo_1[!((delete true ^ ("foo" && /[a2][^e]+$/)) >> -2 % 23..toString() * ("bar" ^ "a"))] %= (-2 | "undefined") == (-4 & "b")))),
                            null: (c = 1 + c, "object" << -2 << (foo_1 = -2 | "function") && (23..toString() ^ 4) === (foo_1 -= 2 + "bar"))
                        }.a:
                        c = 1 + c, foo_1 && (foo_1[(typeof bar === "object" || a || 3).toString()] ^= ((b_2 && (b_2.c = 0 == "b")) ^ 38..toString() > 3) >> (foo_1 += 23..toString() << -2 !== ("" == [])));
                        break;

                      case {
                            null: (c = 1 + c, ({} ^ [ , 0 ].length === 2 ^ ("bar", "b")) >> (0 >> 2 & 1 != false)),
                            0: (c = 1 + c, ("number" >= "foo") << (foo_1 && (foo_1.a = 23..toString() >> -5)) >= (~Infinity !== (bar_1 && (bar_1.foo = this + ""))))
                        }[(c = 1 + c, ("" >> -1 | -2 != -1) == (c = c + 1, undefined > "undefined"))]:
                        c = 1 + c, "" !== "a" ^ (c = c + 1, -2) ^ (4 ^ -0) % (0 >> -4);
                        c = 1 + c, bar_1 && (bar_1.foo += ("foo" > 22) >>> (b_2 = 22 + 3) >>> ((38..toString() && 1) != (-0 != {})));
                        break;
                    }
                    break;

                  case typeof parseInt_1:
                    break;

                  default:
                    try {
                        {
                            var brake36 = 5;
                            L113531: do {
                                c = 1 + c, c = c + 1, "a" % "b" | [] % "number";
                            } while ((c = 1 + c, (false > "number" | (a_2 && (a_2[(c = 1 + c, +5 << ("a", 1) >> ("a" + -2 && (a_2 && (a_2[(c = 1 + c, 
                            -2 >>> -4 > false + 22 || ("c" <= this) >> ("undefined" | "c"))] = Infinity >= "b"))))] = 3 < "undefined"))) <= ([ , 0 ][1] == 24..toString() == (c = c + 1, 
                            0))) && --brake36 > 0);
                        }
                    } catch (NaN_2) {
                        c = 1 + c, [] << "b" != ([ , 0 ][1] !== -5) === (null < true) + (3, "function");
                        c = 1 + c, (-1 && 3 && [] == 24..toString()) ^ (-3 > "undefined" || [] & {});
                    } finally {
                        c = 1 + c, ("c" < -3) % (24..toString() === Infinity) > (("b", -4) === 22 - NaN);
                        c = 1 + c, (24..toString() !== 24..toString()) * (b_2 && (b_2.NaN += -2 && -1)) && ("" >>> "function") + ("b" > Infinity);
                    }
                    switch (a++ + (0 === 1 ? a : b)) {
                      case ((c = 1 + c, ([ , 0 ].length === 2) % "bar" >>> ("c" || {}) | (25 | [ , 0 ].length === 2) ^ (c = c + 1, 
                        0)) || a || 3).toString():
                        break;

                      case c = 1 + c, (-3 << 22) / (undefined, 4) & ([] != /[a2][^e]+$/ && (b_2 && (b_2.null = "bar" < false))):
                        c = 1 + c, (("function" && "object") > (foo_1 && (foo_1[(c = 1 + c, bar_1 >>>= ("object" ^ undefined) < ("a" | 25) & (b_2 && (b_2[--b + (0 === 1 ? a : b)] = "a" + 0 && "function" | undefined)))] <<= [ , 0 ][1] < /[a2][^e]+$/))) >>> (undefined >> 0 != true % "c");
                        c = 1 + c, ((22 && -4) ^ "c" >>> 3) > (bar_1 += -4 << -0 ^ "c" * "foo");
                        break;

                      case (c = c + 1) + +((a_2 && (a_2.foo += 2 - "c")) << (22 || "number") != (a_2 && (a_2.a = "" - null)) > -true):
                        break;

                      default:
                        c = 1 + c, (-3 < 0 & "bar" - this) - (bar_1 && (bar_1.null = (c = c + 1, 24..toString()) ^ (c = c + 1, 
                        "number")));
                        c = 1 + c, (/[a2][^e]+$/ <= this) * (38..toString() - NaN) & 1 * null != "function" * [];
                    }

                  case b--:
                    (c = c + 1) + ((c = 1 + c, void ([ , 0 ].length === 2 | 0 && "c" ^ NaN)) || a || 3).toString();
                    ;
                    break;
                }
            }
            c = c + 1;
            break;

          case {
                foo: (c = c + 1) + -5,
                get undefined() {
                    switch (--b + foo_1) {
                      case a++ + (b = a):
                        break;

                      default:
                      case --b + (typeof a_1 === "unknown"):
                        {
                            var brake51 = 5;
                            L113532: do {
                                c = 1 + c, ((25, "c") || (25, 22)) >>> (24..toString() > -5 >= ("bar" == "undefined"));
                            } while ((c = 1 + c, (c = c + 1, "undefined" * 1) > (c = c + 1, 4) >> (null << 24..toString())) && --brake51 > 0);
                        }
                        c = c + 1;
                        break;

                      case /[abc4]/.test((a++ + a-- || b || 5).toString()):
                        for (var brake54 = 5; (c = 1 + c, ({} >> [] !== ("bar" != -5)) - ((c = c + 1, 4) ^ this & 2)) && brake54 > 0; --brake54) {
                            c = 1 + c, bar_1 = (-1 > 38..toString() >= (c = c + 1, [ , 0 ].length === 2), (-3 && -1) < this % /[a2][^e]+$/);
                        }
                        break;
                    }
                    return;
                },
                in: b += a,
                b: a++ + ((a++ + {
                    var: (c = 1 + c, (Infinity >>> -4 | (c = c + 1, [ , 0 ].length === 2)) <= -(undefined >>> ([ , 0 ].length === 2))),
                    1.5: (c = 1 + c, ([ , 0 ].length === 2 != null) > -1 + -3 !== ((22 && Infinity) != ("function" && -3))),
                    Infinity: (c = 1 + c, ((3 | "function") >= (4 ^ 1)) << ([] < undefined) % (5 <= 4)),
                    c: (c = 1 + c, ("number" / "number" || null <= -4) >>> ((25 != "foo") >= (bar_1 += 24..toString() & ""))),
                    var: (c = 1 + c, ((bar_1 && (bar_1[(c = 1 + c, -1 == -2 ^ this << -1 ^ [ , 0 ][1] % "a" <= (5 <= 4))] = "b" >> -0)) >>> "number" * NaN) * ((-0 >= 22) >>> /[a2][^e]+$/ / -4))
                } ? a++ + [ (c = 1 + c, ("undefined" > 5) << (a_2 && (a_2[(c = 1 + c, (0 == 22) % ("c" !== "undefined") ^ {} + false <= (5 ^ []))] = 24..toString() - -2)) <= +(foo_1 += /[a2][^e]+$/ % "")), (c = 1 + c, 
                ("number" >= 2) >>> ("undefined" | true) || -1 >>> true <= "function" >> 5), (c = 1 + c, 
                (-4 ^ "undefined") + (b_2 && (b_2[(c = 1 + c, Infinity * -4 << (foo_1 && (foo_1.c = true === 4)) != (([ , 0 ][1] || 4) ^ (c = c + 1, 
                "c")))] = /[a2][^e]+$/ % 23..toString())) ^ (foo_1 && (foo_1.Infinity &= (-3 > -3) - (-1 !== "function")))), (c = 1 + c, 
                (-1 == 0 ^ (22 ^ false)) * (1 - "" !== -2 < 24..toString())), (c = 1 + c, ((bar_1 && (bar_1.Infinity += {} > -2)) !== /[a2][^e]+$/ < "foo") >> ("a" & 5, 
                +"a")) ][a++ + {
                    foo: (c = 1 + c, ((/[a2][^e]+$/ && [ , 0 ].length === 2) != 22 <= NaN) >> ({} >> undefined) * (undefined % [])),
                    1.5: (c = 1 + c, (([], 38..toString()) === "b" + "foo") >= ((a_2 && (a_2[(c = 1 + c, 
                    "" < Infinity == ([ , 0 ].length === 2 & "bar"), 5 >> [ , 0 ][1] < (c = c + 1, -1))] += (undefined, 
                    38..toString()))) <= ([ , 0 ].length === 2) % false)),
                    in: (c = 1 + c, (4 && "b") % void 25 / (("a" == Infinity) / ("" <= [ , 0 ][1])))
                }] : (c = c + 1) + (((c = 1 + c, void [] == "" / 23..toString() == (b_2 && (b_2[--b + ((c = 1 + c, 
                {} * -3 > ("undefined" !== Infinity) < (false <= /[a2][^e]+$/ !== "foo" + 24..toString())) ? (c = 1 + c, 
                !((b_2 = [ , 0 ][1] >>> "foo") != (false !== 38..toString()))) : (c = 1 + c, (0 !== -4 != [] > /[a2][^e]+$/) + ((2, 
                "a") && "undefined" & Infinity)))] = (2 & [ , 0 ][1]) != ("foo" ^ 3)))) ? (c = 1 + c, 
                ([] > "a" && "a" == 0) + ([] >= "number" ^ -0 & this)) : (c = 1 + c, +((1 != "c") <= (38..toString() & [])))) || a || 3).toString()) || a || 3).toString(),
                null: (c = c + 1) + (0 === 1 ? a : b)
            }:
            break;
        }
    }
    {
        var bar_2;
        switch (a++ + b++) {
          default:
            {
                var expr60 = this;
                L113533: for (var key60 in expr60) {
                    c = 1 + c;
                    var b_2 = expr60[key60];
                    try {
                        switch ((c = c + 1) + (-2 <= 3 === true - 23..toString() & (undefined >> 23..toString()) * ("c" == null))) {
                          default:
                            {
                                var brake63 = 5;
                                do {
                                    c = 1 + c, (c = c + 1, -4) << (-4 == "number") !== (-3 & -2 | 38..toString() & [ , 0 ][1]);
                                } while ((c = 1 + c, (25 < ([ , 0 ].length === 2) & null <= /[a2][^e]+$/) << (-1 == "c" ^ "a" >= [])) && --brake63 > 0);
                            }
                            {
                                throw c = 1 + c, (null << "foo" || - -3) ^ (a_2 = (b_2 && (b_2[(c = 1 + c, "b" / "b" % (b_2 && (b_2.foo |= false < -4)) ^ ("foo" != "b") <= (false !== "bar"))] = "c" >> [ , 0 ][1])) | "b" + 4);
                            }

                          case a++ + [ (c = 1 + c, null < undefined <= ("a" | "a") !== ("a" >= {} == "undefined" <= "bar")), (c = 1 + c, 
                            ("c" === []) - (-2 | 24..toString()) && (-3 << 1) / ("number" <= "foo")), (c = 1 + c, 
                            ("function" - "object" & (foo_1 && (foo_1[(c = 1 + c, !(this > 4 ^ ~"c"))] = -5 - [ , 0 ][1]))) > (-1 + "function" < (null == ""))), (c = 1 + c, 
                            ("c" || -3) - (22 ^ {}) - (true / [ , 0 ][1] | false > NaN)) ]:
                            break;

                          case Infinity:
                            var b_2 = (c = 1 + c, ([] === 22 && NaN << 4) & "c" / "number" - (2 >>> 4));
                            break;

                          case bar_2:
                            {
                                var expr67 = (c = 1 + c, "a" % 5 % ("a" | Infinity) / ((25 <= true) >> ("bar" & "object")));
                                for (var key67 in expr67) {
                                    c = 1 + c;
                                    var a_2 = expr67[key67];
                                    c = 1 + c, foo_1 && (foo_1.undefined = -2 >= -0 || 38..toString() > 38..toString()), 
                                    (-1 && true) << (NaN | undefined);
                                }
                            }
                            {
                                var expr69 = (c = 1 + c, (c = c + 1, null > "undefined") == 4 <= 23..toString() >= (25 & "foo"));
                                for (var key69 in expr69) {
                                    c = 1 + c, (c = c + 1, "function" < -0) >> ({} != -2 & 38..toString() >= Infinity);
                                }
                            }
                            break;
                        }
                    } catch (a) {
                        switch (b = a) {
                          case (c = 1 + c, (("number" ^ 25) <= /[a2][^e]+$/ / 3) * ((c = c + 1, undefined) | 24..toString() ^ 24..toString())) ? (c = 1 + c, 
                            0 * null >>> ("b" >> [ , 0 ][1]) !== (25 && "function") > (true || this)) : (c = 1 + c, 
                            a_2 = ((0 & 4) >> (23..toString() ^ {})) * (("" >= -5) + (25 && -0))):
                            c = 1 + c, (c = c + 1, "b") / (2 * 23..toString()) > ((-0 | -2) >= (0 < false));
                            break;

                          case -(~("undefined" != 1) || 2 + 25 >= (true && [])):
                            break;

                          case --b + (1 === 1 ? a : b):
                            c = 1 + c, ([] >= -3 === (22 || NaN)) + ((0 && []) & (this, false));
                            c = 1 + c, (-5 ^ 22) - (-0 - "number") | ("" | /[a2][^e]+$/) ^ "undefined" - ([ , 0 ].length === 2);

                          case function() {
                            }:
                            c = 1 + c, "" != this !== (22 !== 24..toString()) && ([] >= 22) / (b_2 += [ , 0 ][1] ^ -2);
                            c = 1 + c, "foo" / "function" === "bar" / 3 || delete ~24..toString();
                        }
                        try {
                            try {
                                c = 1 + c, a_2 += (a_2.undefined *= "undefined" - Infinity) % (null != [ , 0 ][1]) || (/[a2][^e]+$/ == undefined) - "b" % -5;
                            } catch (undefined_2) {
                            }
                        } catch (b) {
                            c = 1 + c, (b_2 += ([] != "") < ("" < 24..toString())) <= 3 - 24..toString() >> ("c" >>> 24..toString());
                            c = 1 + c, (5 ^ /[a2][^e]+$/, undefined >= null) ^ (true ^ 25) & -5 >= 24..toString();
                        } finally {
                            c = 1 + c, (a_2 && (a_2.c -= "function" ^ 22 ^ "a" % [])) * (({} && 23..toString()) <= (NaN >= this));
                            c = 1 + c, ((5 || -1) && "c" == "function") | (b_2 && (b_2[(c = 1 + c, undefined != -0 != ("undefined" !== {}) && void ([ , 0 ].length === 2) < 5 - null)] = true ^ 1)) << (0 <= "");
                        }
                    }
                }
            }

          case {
                c: (c = c + 1) + (0 === 1 ? a : b),
                NaN: ~((b_2 && (b_2[(c = 1 + c, (-5 + true || /[a2][^e]+$/ != -4) ^ 4 <= "object" >= ([ , 0 ].length === 2 == 38..toString()))] = -2 >>> "object")) << (-0 <= "object") << (-0 && "object" && 5 % this)),
                NaN: (c = c + 1) + (foo_1 && foo_1[typeof f1 == "function" && --_calls_ >= 0 && f1([ (c = 1 + c, 
                (0 > "b") << (-4 < -5) != (24..toString() <= 4 ^ undefined >>> "c")), (c = 1 + c, 
                ("c" | 24..toString()) < (b_2 && (b_2.null = -5 > undefined)) ^ -22 % ("object" >> /[a2][^e]+$/)) ][(c = 1 + c, 
                Infinity + "undefined" == -0 % false && (a_2 && (a_2.c ^= "bar" == true & "a" != Infinity)))])]),
                foo: (c = c + 1) + {}.undefined
            }:
            L113534: for (var brake84 = 5; {
                null: --b + foo_1,
                "": --b + (typeof f1 == "function" && --_calls_ >= 0 && f1(23..toString(), (c = 1 + c, 
                ("foo" === []) >> ("bar" | "a") != null % -1 > ([ , 0 ][1] !== "c")), 5)),
                1.5: (foo_1 = ("number" === 24..toString()) > (foo_1 && (foo_1[(c = 1 + c, ("a" == 23..toString()) / (foo_1 && (foo_1.undefined += ([ , 0 ].length === 2) % 38..toString())) === ([ , 0 ].length === 2) + 22 << ([] > 24..toString()))] = /[a2][^e]+$/ != ""))) && null == "a" == ("object" ^ "undefined")
            }.var && brake84 > 0; --brake84) {
                var brake85 = 5;
                while (--a && --brake85 > 0) {
                    if (foo_1 && foo_1.length) {
                        0 === 1 ? a : b;
                    }
                }
            }
            {
                switch (a--) {
                  default:
                  case ((1 === 1 ? a : b) || a || 3).toString():
                    break;

                  case a_2:
                    break;

                  case b_2:
                    switch (c = 1 + c, +(/[a2][^e]+$/ * 0 >= (true | -4))) {
                      case c = 1 + c, (c = c + 1, 23..toString() >> undefined) + (bar_2 &= /[a2][^e]+$/ > -2 | -1 << 5):
                        ;

                      case c = 1 + c, (4 << 23..toString()) - ("a" & null) + (25 >> /[a2][^e]+$/) * (5 >>> true):
                        ;
                        break;

                      case c = 1 + c, ("" ^ 38..toString()) * ("" << 0) ^ (bar_2 += null >> 2) / ("function" == "function"):
                        ;

                      case c = 1 + c, b_2 && (b_2[a++ + "number"] = (([ , 0 ][1] | 1) == ("b" ^ -4)) / (!this === -1 / 22)):
                        ;
                        break;
                    }
                    break;
                }
                {
                    var brake91 = 5;
                    do {
                        {
                            var brake92 = 5;
                            L113535: while (--b + (1 === 1 ? a : b) && --brake92 > 0) {
                            }
                        }
                    } while ((c = c + 1) + (typeof a_2 == "function" && --_calls_ >= 0 && a_2("a", (c = 1 + c, 
                    -3 + null ^ (true | this) && (-3 & [ , 0 ][1]) <= ("foo" <= [])))) && --brake91 > 0);
                }
                if (bar_2 && bar_2.length) {
                    var brake95 = 5;
                    do {
                        try {
                            c = 1 + c, b_2 && (b_2[typeof f0 == "function" && --_calls_ >= 0 && f0(25)] = (-3, 
                            25) % (this !== 22) && (b_2 && (b_2.a = ("function" && true) >>> (undefined || "foo"))));
                        } catch (a_2_1) {
                        } finally {
                        }
                    } while (((c = 1 + c, a_2 && (a_2[(c = c + 1) + /[abc4]/.test((typeof f1 == "function" && --_calls_ >= 0 && f1((c = 1 + c, 
                    ("bar" > false) * (undefined || 3) || 3 % 2 == ("function" ^ -0)), -3, (c = 1 + c, 
                    (a_2 && (a_2[(c = 1 + c, delete (5 * "undefined" * ("bar" != [ , 0 ][1])))] += /[a2][^e]+$/ >> null)) === ("c", 
                    22) !== delete 1 << (a_2 && (a_2.a = "object" << false)))) || b || 5).toString())] += (a_2 = (38..toString() >= false) << (-4 >>> 23..toString())) << ("c" > "undefined" < (false & /[a2][^e]+$/)))) || 3).toString()[(c = 1 + c, 
                    ((b_2 += 24..toString() - 1) <= (a_2 && (a_2.undefined = "function" != "undefined"))) << ((2 ^ this) !== ("c" !== -3)))] && --brake95 > 0);
                }
            }

          case b = a:
            var bar;
            break;

          case 0 === 1 ? a : b:
            switch ((c = c + 1) + (typeof f1 == "function" && --_calls_ >= 0 && f1(--b + !function a_2_2() {
                c = 1 + c, ((0 | 3) >> (a_2_2 = [] > -5)) + Infinity % undefined * (-4 <= 2);
                c = 1 + c, (("bar" | null) ^ [ , 0 ][1] + "b") - ([] && 22 || /[a2][^e]+$/ * 5);
            }(), true, !b))) {
              case (c = c + 1) + (typeof f0 == "function" && --_calls_ >= 0 && f0([][a++ + --b], "number", {})):
                {}
                break;

              case a++ + typeof (--b + -2):
                break;
                [ (c = 1 + c, (25 > "bar" ^ {} / true) >>> (4 > 22 == NaN >= this)), (c = 1 + c, 
                ~-0 >= (-3 ^ {}) != ("object" | 1) >= "" << 4), (c = 1 + c, (3 < -3 | "foo" == NaN) >= (c = c + 1, 
                "" == -4)), (c = 1 + c, (4 < 0 === (-3 === 23..toString())) % (("object" || -1) != -0 <= /[a2][^e]+$/)) ];
                break;

              case a++ + a_2:
                a++ + (typeof f1 == "function" && --_calls_ >= 0 && f1(false, 38..toString(), (c = 1 + c, 
                ((bar_2 && (bar_2[(c = 1 + c, foo_1 && (foo_1[(c = c + 1) + (--b + ++a ? -1 << 4 <= (Infinity <= "b") >= (foo_1 && (foo_1[(c = 1 + c, 
                (-4 + true & [] == "function") <= (~"function" == "foo" * undefined))] += "object" == "function") && "function" ^ -1) : a++ + b_2)] += -("" || this) >= (-"a" && (0, 
                22))))] &= 0 ^ {})) | 25 >>> ([ , 0 ].length === 2)) !== (/[a2][^e]+$/ + "object" || "c" && "number"))));
                {
                    var expr106 = (c = c + 1) + (bar_2 && bar_2.undefined);
                    L113536: for (var key106 in expr106) {
                        {
                            var expr107 = ((c = 1 + c, b_2 && (b_2.NaN = ([ , 0 ].length === 2) % true / ("" ^ false)) || (NaN >>> "object") - 24..toString() / {}) || 3).toString()[(c = 1 + c, 
                            ((b_2 && (b_2.b += 0 / Infinity)) | (0 || 38..toString())) > "number" - Infinity >>> [ , 0 ][1] % {})];
                            for (var key107 in expr107) {
                                {
                                }
                            }
                        }
                    }
                }
                break;

              case a++ + (b = a):
                {
                    var brake109 = 5;
                    do {
                    } while (new function() {
                        this[(c = c + 1) + {
                            3: (c = 1 + c, (c = c + 1, true) << (/[a2][^e]+$/ != 25) >= (false || [ , 0 ].length === 2) + (c = c + 1, 
                            this))
                        }.NaN] |= undefined ^ "object" | 38..toString() == 24..toString();
                        this[--b] >>>= (a_2 && (a_2.NaN = (24..toString(), -1))) * ("" > []);
                        c = 1 + c, void +"bar" % ((NaN <= 5) - (Infinity > -5));
                        c = 1 + c, bar_2 ^= (-1 || -0 || 4 - "undefined") % ((2 || -5) >>> (-0 == "b"));
                        c = 1 + c, ("undefined" || "object", !false) > 1 << "foo" << 4 + true;
                        c = 1 + c, b_2 && (b_2.undefined %= (4 === 0) % (a_2 && (a_2.undefined ^= 25 >= [])) === (3 << Infinity) % (-0 & -1));
                    }() && --brake109 > 0);
                }
                {
                    var brake115 = 5;
                    while (a++ + function() {
                        c = 1 + c, (Infinity ^ "object") >> 3 / 2 != (-5 ^ 1) % (4 % 23..toString());
                    }() && --brake115 > 0) {
                        try {
                            c = 1 + c, (NaN + 5 == ("a" ^ 2)) / ((a_2 *= "c" == 5) === 3 * ([ , 0 ].length === 2));
                        } catch (a_2_1) {
                            c = 1 + c, ("c" <= -2 === "function" < -0) - (("undefined" ^ "function") !== ("function" || "a"));
                            c = 1 + c, (38..toString() ^ 3) & (true || "foo"), 5 % "object" >> "c" % 5;
                        }
                    }
                }
                break;
            }
            break;
        }
        ({
            "\t": (b_2 && (b_2.null /= (5 && "c") % (24..toString(), [ , 0 ].length === 2))) != ("bar" >= "a") * (-1 || 22)
        });
        {
            var brake122 = 5;
            while (--b + (0 === 1 ? a : b) && --brake122 > 0) {
                c = c + 1;
            }
        }
    }
}

for (var brake124 = 5; function bar_2_2() {
    {
        var brake125 = 5;
        do {
            try {
                {
                    var Math = function f0(Infinity_1, parseInt_2) {
                        {
                            return a++ + (typeof f1 == "function" && --_calls_ >= 0 && f1((c = 1 + c, +("b" - this) / (2 === true ^ "object" % ""))));
                        }
                        var bar_2_1;
                    }(a++ + --b, a--);
                }
            } catch (arguments_1) {
                switch (a_2 && a_2[(c = c + 1) + {
                    b: (c = c + 1) + (bar_2 = (c = 1 + c, ("foo" & 4, "object" | 22) * ("function" >>> Infinity <= (c = c + 1, 
                    "number")))),
                    0: (c = c + 1) + ((c = 1 + c, (-5 + 25 != "c" >= 24..toString()) >> ((c = c + 1, 
                    -2) >>> 24..toString() - 24..toString())) || 1).toString()[(c = 1 + c, (b_2 && (b_2[(c = 1 + c, 
                    a_2 /= true < 2 !== [] * [] ^ 1 < -4 & 22 !== [ , 0 ][1])] = 0 ^ -4) && 38..toString() >>> 22) * (("bar" >= "foo") / (-0, 
                    -2)))],
                    1.5: 1 === 1 ? a : b
                }]) {
                  case --b + +function() {
                        if ((c = c + 1) + a--) {
                            switch (c = 1 + c, ((this && [ , 0 ][1]) !== 38..toString() % "undefined") >>> delete (b_2 = -4 >> "")) {
                              default:
                                ;

                              case c = 1 + c, (-5 ^ 0) - (null >= "foo") == ("c" == 4) <= (38..toString() && 22):
                                ;
                                break;

                              case c = 1 + c, (("c" ^ "bar") == "bar" % "bar") > ("object" != false) % (/[a2][^e]+$/ > "bar"):
                                ;
                                break;

                              case c = 1 + c, (+ -2 | ([ , 0 ].length === 2) - null) * ((5 >= null) >>> (-0 != 3)):
                                ;
                                break;
                            }
                        } else {}
                        c = c + 1;
                        c = c + 1;
                        {
                            var brake136 = 5;
                            while ((c = c + 1) + b-- && --brake136 > 0) {
                                c = 1 + c, ("function" + [ , 0 ][1]) / (b_2 |= 2 & 3) << ((/[a2][^e]+$/ !== []) > -5 * 3);
                            }
                        }
                    }():
                    {
                        var expr138 = void function() {
                            c = 1 + c, (-2 == false | (arguments_1 && (arguments_1.null = undefined | "number"))) <= (-2 + 0 > -1 - "b");
                            c = 1 + c, ((this || 25) <= ("b" ^ Infinity)) - (23..toString() > true <= 22 >>> 2);
                            c = 1 + c, (1 <= undefined) / (true * null) == ("number" | -5 | (0 && true));
                        }();
                        for (var key138 in expr138) {
                            c = 1 + c;
                            var a = expr138[key138];
                            {
                                c = 1 + c, (-1 !== 23..toString()) % (-0 && "a") !== ("bar" > -4 & "b" >> 2);
                                c = 1 + c, arguments_1 && (arguments_1.in = ("object" ^ "function") == /[a2][^e]+$/ * 4 !== 22 >> -5 >> -2 * false);
                                c = 1 + c, (-2 && 5, -3 || [ , 0 ].length === 2) && (this == "function" || Infinity + "");
                                c = 1 + c, 24..toString() << -2 < (/[a2][^e]+$/ != 22) ^ (foo_1 = ("undefined" || 0, 
                                a_2 && (a_2.foo = (23..toString(), ""))));
                            }
                        }
                    }
                    break;

                  case --b + "foo":
                    {
                        return --b + delete a;
                    }
                    break;

                  case a++ + b--:
                    {
                        var brake148 = 5;
                        do {
                            {
                                var expr149 = a++ + 23..toString();
                                L113537: for (var key149 in expr149) {
                                    c = 1 + c;
                                    var b_2_1 = expr149[key149];
                                    var Infinity_1 = (c = 1 + c, ("bar" != []) % (2 ^ 25) >> (("function" ^ Infinity) >= "object" >> -4)), Infinity_1_2 = (c = 1 + c, 
                                    this === /[a2][^e]+$/ == (-2 ^ [ , 0 ][1]) != (({} ^ 2) == (null === 23..toString())));
                                }
                            }
                        } while ((c = c + 1) + {
                            b: (c = 1 + c, b_2 && (b_2[a++ + [ , (c = 1 + c, void -0 >> (Infinity_1_2 && (Infinity_1_2.var = false / 1)) != ("undefined" <= []) + (22 ^ 5)), (c = 1 + c, 
                            ([] % ([ , 0 ].length === 2) === (null == -1)) >= ("bar" % "c" || {} - "b")) ].a] ^= {} == 24..toString() ^ ([ , 0 ].length === 2) + 22 ^ void ("" == null)))
                        }.NaN && --brake148 > 0);
                    }
                    break;

                  default:
                }
                c = c + 1;
            } finally {
                {
                    var brake152 = 5;
                    do {
                        try {
                            --b + ((/[a2][^e]+$/ << "foo") / (c = c + 1, {}) && (a_2 && (a_2[(c = c + 1) + this] += ("undefined", 
                            Infinity) - ("bar" != 24..toString()))));
                        } catch (Math_1) {
                            (c = c + 1) + [ (c = 1 + c, (2 == [ , 0 ][1] ^ (Infinity_1 && (Infinity_1.NaN |= 3 <= /[a2][^e]+$/))) >> (({}, 
                            true) ^ -2 > -2)), (c = 1 + c, (4 ^ -2) / (-0, "a") | "bar" ^ "c" ^ -3), (c = 1 + c, 
                            (("undefined" || 3) <= (c = c + 1, 0)) >> (25 != true | (Infinity_1_2 && (Infinity_1_2[(c = 1 + c, 
                            {} >= -3 > (foo_1 && (foo_1.null = "number" >>> 22)) >= (([ , 0 ].length === 2) >> undefined) * (2 <= 24..toString()))] = "c" >= true)))) ].undefined;
                            {
                                return a++ + (b <<= a);
                            }
                        } finally {
                            a++ + a_2;
                            for (var brake158 = 5; --b + ((c = 1 + c, ("undefined", "c") == (-0 && -1) || (this || /[a2][^e]+$/) && 38..toString() >>> 4) || 2).toString()[(c = 1 + c, 
                            24..toString() <= true >= ([ , 0 ].length === 2 == /[a2][^e]+$/) >= (23..toString() && -3) << (-1 && "c"))] && brake158 > 0; --brake158) {
                                var brake159 = 5;
                                while ((c = 1 + c, "function" <= [ , 0 ][1] < (38..toString(), "function"), (Infinity == -5) < (5 < null)) && --brake159 > 0) {
                                    c = 1 + c, ((Infinity, {}) && ([ , 0 ].length === 2) * -2) - (foo_1 && (foo_1[--b + -a] -= (c = c + 1, 
                                    /[a2][^e]+$/) | "c" - -5));
                                }
                            }
                        }
                    } while (b++ && --brake152 > 0);
                }
                {
                    var expr161 = typeof b == "symbol";
                    for (var key161 in expr161) {
                        c = 1 + c;
                        var arguments_1 = expr161[key161];
                        {
                            return a++ + (typeof f2 == "function" && --_calls_ >= 0 && f2((c = c + 1) + {}[(c = 1 + c, 
                            ((-1 && Infinity) != +this) >= (0 == this ^ 0 * -1))], 23..toString(), Infinity));
                        }
                    }
                }
            }
        } while (a++ + (typeof ~(this * "function" < (25 > this) ^ (([ , 0 ].length === 2 && []) | ([ , 0 ].length === 2 || "object"))) ? a++ + function() {
            try {
                {
                    var brake164 = 5;
                    while (delete b && --brake164 > 0) {
                        var brake165 = 5;
                        L113538: do {
                            c = c + 1;
                        } while (--b + --b && --brake165 > 0);
                    }
                }
            } catch (NaN) {
                if (typeof bar_2 == "function" && --_calls_ >= 0 && bar_2([ , 0 ].length === 2, (c = 1 + c, 
                (+4 != 38..toString() < {}) >= ("foo" / "a" <= "a" + "c")))) {}
                for (var brake169 = 5; a++ + (Infinity_1 && Infinity_1[(c = 1 + c, ("" != 5 ^ (5 ^ 4)) >= (1 >>> this, 
                !"bar"))]) && brake169 > 0; --brake169) {
                    var b_1 = (c = 1 + c, (24..toString() && -4) <= (25 >= "foo") | 22 <= -1 >= (b_1 && (b_1[(c = 1 + c, 
                    (Infinity_1 -= (c = c + 1, /[a2][^e]+$/) & "number" <= -3) * (24..toString() + -2 & (c = c + 1, 
                    "undefined")))] = "undefined" - 23..toString()))), b_1 = (c = 1 + c, (bar_2_2 = ~4 == (true ^ 25)) !== [] >>> 38..toString() >= ({} == -3));
                }
            } finally {
                if ((c = c + 1) + void (a_2 && (a_2.NaN += (23..toString() < 38..toString() & "c" << ([ , 0 ].length === 2)) << (("function" & "foo") !== ("a", 
                5))))) {
                } else {
                    var brake173 = 5;
                    L113539: while ((c = 1 + c, ((-2 ^ -1) === "b" + "") + (-2 + 2 !== (-0 === ""))) && --brake173 > 0) {
                        c = 1 + c, delete ("bar" || "") || (arguments_1 && (arguments_1[(c = 1 + c, bar_2 && (bar_2[(c = c + 1) + (typeof f1 == "function" && --_calls_ >= 0 && f1(-2))] = (c = c + 1, 
                        [] < false) >>> (("foo" && "b") ^ (c = c + 1, 22))))] = "b" >> undefined)) >>> (-3 || [ , 0 ][1]);
                    }
                }
                {
                    var expr175 = [ (c = 1 + c, (null >> this) + (a_2 && (a_2.in = false > 3)) > (-1 ^ 1) + ("a" << null)), (c = 1 + c, 
                    NaN >>> "" > (0 >= "number") | "foo" >> "function" == {} / true) ].undefined;
                    for (var key175 in expr175) {
                        c = 1 + c;
                        var bar_2 = expr175[key175];
                        if (c = 1 + c, (bar_2 += undefined >= "bar" && "function" != "bar") ^ -1 == ([ , 0 ].length === 2) === 23..toString() > []) {
                            c = 1 + c, (this ^ [ , 0 ].length === 2) > (-1 <= "a") != ("b" === 25) - ("c" >= "a");
                        }
                    }
                }
            }
            var a_2_2 = b--, foo_1_1 = typeof (1 === 1 ? a : b);
        }() : --b) && --brake125 > 0);
    }
    switch (typeof bar_2 == "function" && --_calls_ >= 0 && bar_2(a++ + !b)) {
      default:
        {
            var brake180 = 5;
            while (((a_2 && (a_2.undefined = "number" >> "")) & -2 > -2) == (-4 >= "number" ^ /[a2][^e]+$/ > {}) && --brake180 > 0) {
                var brake181 = 5;
                do {
                    var b = {
                        var: {
                            3: (c = 1 + c, bar_2 && (bar_2.foo = (3 / 1 !== false >= "object") % (null !== null != 2 >>> "bar"))),
                            "\t": (c = 1 + c, ((Infinity_1 && (Infinity_1[(c = 1 + c, null & true & [ , 0 ].length === 2 === [] ^ "object" != 0 === 23..toString() * 25)] = "number" && 2)) << (true != 3)) + ((1 || "") ^ undefined / 38..toString())),
                            1.5: (c = 1 + c, (5 < -2) - ("object" && /[a2][^e]+$/) > (([ , 0 ][1] || 4) < (c = c + 1, 
                            /[a2][^e]+$/))),
                            "-2": (c = 1 + c, (false || 3) >>> void "c" || ({} >>> "bar") / (4 !== -2)),
                            null: (c = 1 + c, ((25 || 38..toString()) | 3 !== {}) + (false >= -0 ^ (bar_2_2 && (bar_2_2[(c = 1 + c, 
                            3 >> 2 << (-2 ^ "function") >= (("b" | 0) !== "object" % -3))] = "c" == NaN))))
                        }[(c = 1 + c, (c = c + 1, "number") == delete undefined ^ (null !== 24..toString()) <= (bar_2 && (bar_2[(c = 1 + c, 
                        -4 > undefined === (-4 && 5) ^ (3 === [ , 0 ][1]) - ("undefined" || -2))] += false % 4)))]
                    };
                } while (--b + (--b + (--b + !function a() {
                    c = 1 + c, (3 % NaN !== (/[a2][^e]+$/ || -2)) >= (Infinity % "" === {} / false);
                    c = 1 + c, b_2_1 && (b_2_1[[ (c = 1 + c, 38..toString() << 38..toString() !== "a" >>> "bar" != (undefined << ([ , 0 ].length === 2) ^ -3 == 23..toString())), (c = 1 + c, 
                    ("" < 3 <= void Infinity) + ((/[a2][^e]+$/ ^ [ , 0 ][1]) - (true || 24..toString()))) ].foo] = (5 >>> 3) / ("b" + 24..toString()) << (Infinity >>> true & (2 || 22)));
                    c = 1 + c, (c = c + 1, 24..toString()) % (-1 % ([ , 0 ].length === 2)) * (-5 > undefined, 
                    "bar" & 3);
                    c = 1 + c, +(("" ^ true) > ("undefined" <= "bar"));
                }() || 2).toString()[null * -0 + (-3 ^ true) >>> ("bar" < this == void 2)] || 0).toString()[(c = c + 1) + (b = a)] && --brake181 > 0);
            }
        }

      case (c = c + 1) + [ (c = c + 1) + typeof b_1, a++ + "bar", a++ + typeof ((c = c + 1) + b_2), {
            foo: {
                "\t": +function a_2() {
                }(),
                undefined: a++ + [ (c = 1 + c, "object" - /[a2][^e]+$/ + (24..toString() | "foo") != 23..toString() + 1 << (b_2 = (-4, 
                NaN))), (c = 1 + c, Infinity_1_2 && (Infinity_1_2[a++ + new function() {
                    this[{
                        null: (c = 1 + c, (-1 / -1 >= (null < "function")) - (("" ^ "foo") < Infinity - 2)),
                        set b(b_2) {
                            this.var = [ , 0 ][1] === "a";
                        },
                        "": (c = 1 + c, (b_2 && (b_2[--b + {
                            get Infinity() {
                                c = 1 + c, -5 >= (undefined && -4) > (b_2 && (b_2.Infinity += undefined >= "object"), 
                                undefined >= 1);
                            }
                        }[(c = 1 + c, ([ , 0 ].length === 2 != "b") >>> (1 <= 22) != (NaN % 38..toString() === Infinity < ""))]] <<= (Infinity_1 && (Infinity_1.c += -5 && 24..toString())) <= (3 >= NaN))) >= (3 != "c" ^ {} + {}))
                    }[(c = 1 + c, "undefined" % 22 >> (/[a2][^e]+$/ ^ "number") & 1 + "bar" >= (c = c + 1, 
                    false))]] &= null / "b" & "bar" << "foo";
                    c = 1 + c, (c = c + 1, -3) ^ {} * [] | "foo" / -5 ^ 22 < 23..toString();
                }()] += (a_2 &= ("c" ^ /[a2][^e]+$/) / ~false, c = c + 1, [ , 0 ][1] !== -0))), (c = 1 + c, 
                "a" % 4 + (22 != "object") ^ ("b" / 3 | (this && true))) ][(c = 1 + c, ("bar" % "bar" ^ Infinity < "number") === (true, 
                {}, b_2 && (b_2.c = ("c", "function"))))],
                b: [ (c = 1 + c, (c = c + 1, 22) % (-0 >> -4) << (-1 * "undefined" ^ -3 * [])) ]
            },
            Infinity: a++ + (--b + (b -= a) || a || 3).toString(),
            null: (c = c + 1) + {
                var: --b + (c = 1 + c, (c = c + 1, 22) / (24..toString() > {}) ^ 22 > "object" >= 23..toString() >> 24..toString()),
                3: typeof f0 == "function" && --_calls_ >= 0 && f0((c = 1 + c, ("a" - Infinity !== (-4 || 5)) > (null <= 25 != (bar_2_2 && (bar_2_2.b = "undefined" << [ , 0 ][1])))), (c = 1 + c, 
                void [] % (-3 >> {}) * (bar_2_2 && (bar_2_2[typeof f2 == "function" && --_calls_ >= 0 && f2(38..toString())] *= [] / 23..toString() <= (c = c + 1, 
                "b")))), {})
            },
            "-2": Infinity,
            var: --b + (typeof f2 == "function" && --_calls_ >= 0 && f2((c = c + 1) + bar_2))
        }, (c = c + 1) + Infinity_1_2 ][(--b || 7).toString()[~(Infinity_1 += (4 >> undefined | (2, 
        "bar")) & ("b" | undefined) >= ("undefined" > Infinity))]]:
        {
            var brake189 = 5;
            L113540: do {
                c = c + 1;
            } while (typeof bar_2 == "function" && --_calls_ >= 0 && bar_2(a++ + b--, a++, void function() {
                var b_2 = (c = 1 + c, ("a" & [ , 0 ].length === 2) - (b_2 && (b_2[(c = 1 + c, ((foo_1 && (foo_1[(c = 1 + c, 
                void (4 ^ "") || ("number" <= 25) + -5 % false)] = 3 <= 3)) > ([ , 0 ].length === 2) >>> this) >> (NaN - 3 === !1))] = "bar" > 23..toString())) !== (!null | -2 > 0));
            }()) && --brake189 > 0);
        }
        break;

      case a++ + --b:
        break;

      case typeof a !== "boolean":
        c = c + 1;
        break;
    }
}() && brake124 > 0; --brake124) {
    var brake194 = 5;
    L113541: while (function() {
        try {
            {
                var brake196 = 5;
                L113542: while (typeof b_2 == "function" && --_calls_ >= 0 && b_2(1 === 1 ? a : b, {}, NaN) && --brake196 > 0) {
                    var brake197 = 5;
                    while (function b_2_1() {
                        {
                            var expr198 = --b + (b_2 = ("function" << null !== -3 > undefined) <= 1 - undefined >>> ("number" <= -0));
                            L113543: for (var key198 in expr198) {
                                c = 1 + c;
                                var b_2_1 = expr198[key198];
                                {
                                }
                            }
                        }
                    } && --brake197 > 0) {}
                }
            }
        } finally {
            {
                var arguments_1 = function f1(b_2_1, b) {
                    if ((c = c + 1) + ~((NaN ^ NaN) / ("number" !== "number") || 4 === Infinity == ("" ^ Infinity))) {
                        var brake203 = 5;
                        do {
                            c = 1 + c, "foo" / 23..toString() / (2 <= "function") <= (-0 >>> "c" > false - "c");
                        } while ((c = 1 + c, (23..toString() + 23..toString() ^ /[a2][^e]+$/ === "b") * ("foo" == "b" | Infinity << this)) && --brake203 > 0);
                    }
                    switch (a++ + (typeof bar_2 == "function" && --_calls_ >= 0 && bar_2())) {
                      case (c = c + 1) + b--:
                        break;

                      default:
                      case b--:
                        c = 1 + c, (5 + -0 !== this * 5) * ((bar_2 && (bar_2.undefined = ("foo", [ , 0 ][1]))) * ("undefined" << []));
                        c = 1 + c, void (-3 ^ this) & ("undefined" > "foo") / (-3 == 23..toString());
                        break;

                      case (c = c + 1) + /[a2][^e]+$/:
                        c = 1 + c, ((24..toString(), undefined) ^ ("" && this)) === (3 | -2) / (1 !== ([ , 0 ].length === 2));
                        c = 1 + c, (5, 0) % ("undefined" || 2) < (a_2 && (a_2.c += undefined + "number" + (0 >>> 1)));
                        break;
                    }
                }(-4, --b + delete ((1 * "number" == 38..toString() >> 0) < (!2 < (4 < "object"))), (typeof b_1 == "symbol" || 4).toString()[a++ + ++a]);
            }
            {
                var brake210 = 5;
                L113544: while ({
                    length: -b,
                    0: a++ + (0 === 1 ? a : b),
                    3: b--,
                    a: b++,
                    b: 0 === 1 ? a : b
                }[a++ + (b /= a)] && --brake210 > 0) {
                    var bar_2 = function f2(c_2) {
                        c = 1 + c, (foo_1 = 3 !== "c" !== 5 < "undefined") % ((/[a2][^e]+$/ | 38..toString()) == [ , 0 ][1] << null);
                    }(-5, (c = c + 1) + (b = a), bar_2 = (c = 1 + c, (([ , 0 ][1] || 4) & void 0) > (-1 >= Infinity) >> (false ^ "")));
                }
            }
        }
        {
            if (typeof arguments_1 == "function" && --_calls_ >= 0 && arguments_1(0)) {
                var bar = (c = c + 1) + --a, NaN = (a++ || a || 3).toString();
            } else {
                switch (a++ + typeof bar_2) {
                  default:
                  case a++ + (typeof arguments_1 == "function" && --_calls_ >= 0 && arguments_1()):
                    switch ((c = c + 1) + a++) {
                      case b--:
                        c = 1 + c, (b_2 && (b_2.NaN += /[a2][^e]+$/ >>> -0) || [] / "b") | Infinity <= "number" & true - -2;
                        c = 1 + c, (bar_2 && (bar_2.null = "undefined" / this || -0)) << ("bar" - -2, b_2 && (b_2.c = "a" < 5));

                      case function() {
                        }:
                        c = 1 + c, (-3 <= "foo" || -3 >= 25) ^ (25 > "undefined") >> (-0 >> null);
                        c = 1 + c, "number" < null > (23..toString() || -1) > ("bar" == 25) % (null == this);
                        break;

                      case a++ + ((c = 1 + c, null << this << (/[a2][^e]+$/ >>> "a") && (22 >= this) % (-0 & 24..toString())) || a || 3).toString():
                      case typeof f2 == "function" && --_calls_ >= 0 && f2("foo"):
                        break;
                    }
                    {
                        var expr223 = (c = c + 1) + ((-4 | Infinity, 2 === "c") !== ([ , 0 ].length === 2) / /[a2][^e]+$/ - (3 != 24..toString()));
                        L113545: for (var key223 in expr223) {
                            c = 1 + c;
                            var a = expr223[key223];
                            {
                                var brake224 = 5;
                                L113546: while ((c = 1 + c, c = c + 1, -(22 / "undefined")) && --brake224 > 0) {
                                    c = 1 + c, ([] >>> 2) - (-0 | "foo") >> (23..toString() == -1 & [ , 0 ].length === 2 == 5);
                                }
                            }
                        }
                    }

                  case function b_2() {
                        L113547: for (var brake226 = 5; (c = 1 + c, (-0 !== 24..toString(), this || []) + (NaN | "c") / (-5 + "function")) && brake226 > 0; --brake226) {
                            c = 1 + c, ([ , 0 ].length === 2 != true != (a_2 && (a_2.a >>= true == "object"))) - (3 ^ "c") / (foo_1 && (foo_1.var /= 25 + this));
                        }
                        c = c + 1;
                        {
                        }
                    }():
                  case a++ + +a:
                    break;
                }
            }
            {
                var brake230 = 5;
                while ((c = c + 1) + (bar_2 = {
                    "\t": typeof f2 == "function" && --_calls_ >= 0 && f2(-5, (c = 1 + c, (-4 + "b" === [] * true) >>> ("bar" >= "a", 
                    "a" >>> "a")), (c = 1 + c, delete (NaN | undefined) << (("undefined" | "c") <= -1 / 5))),
                    set foo(bar_2_1) {
                        c = 1 + c, ((true || -3) <= undefined >> 22) >> ((-0 ^ -4) << (bar_2_1 = 24..toString() ^ 5));
                        this.a += false % 25 !== "function" < "c";
                    }
                }.foo) && --brake230 > 0) {
                    if (bar_2) {}
                }
            }
            (foo_1 = undefined || 1) / (false == 5) || "undefined" & "a" ^ -3 == NaN;
            {
                var expr235 = (c = c + 1) + (typeof f3 == "function" && --_calls_ >= 0 && f3((c = c + 1) + (typeof foo_1 === "number")));
                for (var key235 in expr235) {
                    c = 1 + c;
                    var c_1 = expr235[key235];
                    try {
                        (c = c + 1) + bar_2;
                    } finally {
                        switch (((c = 1 + c, (bar_2 && (bar_2[(c = 1 + c, ((a_2 && (a_2[(c = 1 + c, ((1, 
                        2) & ("object" & -3)) >> ({} >= 2 < (/[a2][^e]+$/ < 38..toString())))] = /[a2][^e]+$/ != 38..toString())) | (a_2 && (a_2[(c = 1 + c, 
                        (a_2 && (a_2.NaN = true > NaN), b_2 = "function" & -1) > (c = c + 1, ~4))] += false & "undefined"))) > (b_2 && (b_2.b = [] !== undefined)) << (-1 == "foo"))] = "object" % "object")) == ("undefined" && 23..toString()) ^ NaN >>> [ , 0 ][1] << ("undefined" | false)) || a || 3).toString()) {
                          case function() {
                            }():
                            break;

                          case --b + function c_1_1() {
                            }():
                            c = 1 + c, (a_2 && (a_2.a = 0 - null ^ -"foo")) >= ((b_2 += 38..toString() ^ 1) === (NaN || false));
                            break;

                          case --b + [ (c = 1 + c, (-5 << true ^ (bar_2 ^= true ^ -2)) == (-0 != "undefined") > (Infinity && -2)), , (c = 1 + c, 
                            ("c" != Infinity, 22 ^ true) >> ((22 !== "function") >>> (([ , 0 ].length === 2) >>> 38..toString()))), (c = 1 + c, 
                            0 != -0 == (NaN !== -0) === (-2 != [ , 0 ][1] == 23..toString() >>> "c")) ][(c = 1 + c, 
                            +("function" > 23..toString()) !== (c = c + 1, c = c + 1, []))]:
                            c = 1 + c, (!38..toString() > Infinity << 25) >> ({} ^ -5) + ([] ^ "function");
                            break;

                          case a++ + ((c = 1 + c, (23..toString() > "undefined" || "bar" * 38..toString()) && "b" >= ([ , 0 ].length === 2) == ~-0) ? (c = 1 + c, 
                            a_2 += (("undefined" ^ -4) != (b_2 && (b_2.c = -3 || "b"))) - ("b" | {} && "undefined" === "number")) : (c = 1 + c, 
                            ("number" ^ 5) < ([ , 0 ][1] > "number") && -5 + 3 >>> ("b" ^ 23..toString()))):
                            c = 1 + c, (25 << 1 !== (-1 || [ , 0 ][1])) >> (3 == "b") % (null !== 4);
                            break;
                        }
                        (c = c + 1) + (1 === 1 ? a : b);
                    }
                }
            }
        }
        {}
    }() && --brake194 > 0) {
        if ([ , 0 ][1]) {
            c = c + 1;
        }
    }
}

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

c += 1;

var bar_2, brake3 = 5;

do {
    if (b) {} else {
        var brake6 = 5;
        do {
            var brake7 = 5;
            do {
                for (var brake8 = 5; 0 < brake8; --brake8) {}
            } while (c += 1, b_2 += 24, 0 < --brake7);
        } while ([ b_2 && b_2[b += a] ].in && 0 < --brake6);
    }
} while (--b && 0 < --brake3);

try {
    throw b_2;
} catch (o) {
    var expr12 = (c += 1) + NaN;
    for (var key12 in expr12) {}
    switch (b = a) {
      case --b + !0:
        if (a++ + ("boolean" != typeof bar_1_1)) {
            for (var brake16 = 5; (c += 1) + [ (c += 1) + (c = 1 + c, !0 | (o && (o[(c = 1 + c, 
            this >> "" <= 0 ^ 1)] >>= 0)) < -22 || a || 3).toString(), a++, --b + (c = 1 + c, 
            !0 ^ (c += 1, NaN) ? (c = 1 + c, (3 % this == -1) <= (!1 | "38" * this)) : (c = 1 + c, 
            c += 1, (o && (o.b >>>= NaN)) * (delete NaN < 0))) ][a++ + (o && o.c)] && 0 < --brake16; ) {
                switch (--b + {}) {
                  case --b + b_2:
                    var a_2 = (c = 1 + c, 0);
                    break;

                  case (c += 1) + a--:
                    var expr19 = (c = 1 + c, !1);
                    for (var key19 in expr19) {
                        c = 1 + c;
                        var foo_1 = expr19[key19];
                        c = 1 + c;
                    }
                    break;

                  case foo_1 && foo_1.in:
                    var brake22 = 5;
                    c = 1 + c;
                    break;

                  case --b:
                }
            }
        }
        break;

      case b_2:
        b += a;
        break;

      case "":
        for (var brake27 = 5; --b + !b && 0 < brake27; --brake27) {
            switch ((c += 1) + [ (c += 1) + (b -= a), (a_2 += 1) % (foo_1 = !1), b_2 ].c) {
              case (c += 1) + (b = a):
                switch (c += 1, a++ + b_2) {
                  case --b + ("function" == typeof f1 && 0 <= --_calls_ && f1((c = 1 + c, !1))):
                    break;

                  case --b + void 0:
                    c = 1 + c;

                  case {
                        3: (c = 1 + c, foo_1 += (o && (o[(c = 1 + c, b_2 &= b_2 && (b_2[foo_1 += !1] = 1))] += 0), 
                        !1 % (0 | (foo_1 = 2)))),
                        0: (c = 1 + c, (2 <= (a_2 = NaN)) >>> void 0),
                        "-2": (c = 1 + c, !1 | (o += !0)),
                        in: (c = 1 + c, !1 ^ (foo_1 && (foo_1[!1] %= !1))),
                        null: (c = 1 + c, 0 << (foo_1 = -2) && 19 == (foo_1 -= "2bar"))
                    }.a:
                    c = 1 + c, foo_1 && (foo_1[("object" == typeof bar || a || 3).toString()] ^= (!0 ^ (b_2 && (b_2.c = !1))) >> (foo_1 += !0));
                    break;

                  case {
                        null: (c = 1 + c, 1),
                        0: (c = 1 + c, !0 << (foo_1 && (foo_1.a = 0)) >= (-1 !== (o && (o.foo = this + ""))))
                    }[(c = 1 + c, 1 == (c += 1, !1))]:
                    c = 1 + c, c = 1 + (c += 1), o && (o.foo += !1 >>> (b_2 = 25) >>> !1);
                }
                break;

              case typeof parseInt_1:
                break;

              default:
                try {
                    for (var brake36 = 5; c = 1 + c, c = 1 + (c += 1), (!1 | (a_2 && (a_2[(c = 1 + c, 
                    10 >> (a_2 && (a_2[(c = 1 + c, ("c" <= this) >> 0)] = !1)))] = !1))) <= (0 == (c += 1, 
                    0)) && 0 < --brake36; ) {}
                } catch (a) {
                    c = 1 + (c = 1 + c);
                } finally {
                    c = 1 + (c = 1 + c), b_2 && (b_2.NaN += -1);
                }
                switch (a++ + b) {
                  case (c = 1 + c, 0 | 25 ^ (c += 1, 0) || a || 3).toString():
                    break;

                  case c = 1 + c, -3145728 & (b_2 && (b_2.null = !1)):
                    c = 1 + c, foo_1 && (foo_1[(c = 1 + c, o >>>= !0 & (b_2 && (b_2[--b + b] = 0)))] <<= !1), 
                    c = 1 + c, o += -4;
                    break;

                  case (c += 1) + +((a_2 && (a_2.foo += NaN)) << 22 != -1 < (a_2 && (a_2.a = 0))):
                    break;

                  default:
                    c = 1 + c, o && (o.null = (c += 1, "24" ^ (c += 1, "number"))), c = 1 + c;
                }

              case b--:
                (void (c = 1 + (c += 1)) || a || 3).toString();
            }
        }
        c += 1;
        break;

      case {
            foo: (c += 1) + -5,
            get undefined() {
                switch (--b + foo_1) {
                  case a++ + (b = a):
                    break;

                  default:
                  case --b + ("unknown" == typeof a_1):
                    c = 1 + (c = 1 + c), c += 1, c += 1, c += 1;
                    break;

                  case /[abc4]/.test((a++ + a-- || b || 5).toString()):
                    for (var e = 5; c = 1 + c, !0 - (c += 1, 4 ^ 2 & this) && 0 < e; --e) {
                        c = 1 + c, c += 1, o = -1 < this % /[a2][^e]+$/;
                    }
                }
            },
            in: b += a,
            b: a++ + ((a++ + {
                var: (c = 1 + c, (0 | (c += 1, !0)) <= -0),
                1.5: (c = 1 + c, !1),
                Infinity: (c = 1 + c, 0),
                c: (c = 1 + c, !1 >>> ((o += 0) <= !0)),
                var: (c = 1 + c, 0 * ((o && (o[(c = 1 + c, !1 ^ this << -1 ^ !1)] = 0)) >>> NaN))
            } ? a++ + [ (c = 1 + c, !1 << (a_2 && (a_2[(c = 1 + c, 0)] = 26)) <= +(foo_1 += NaN)), (c = 1 + c, 
            !1), (c = 1 + c, -4 + (b_2 && (b_2[(c = 1 + c, -1 / 0 << (foo_1 && (foo_1.c = !1)) != (4 ^ (c += 1, 
            "c")))] = NaN)) ^ (foo_1 && (foo_1.Infinity &= -1))), (c = 1 + c, 22), (c = 1 + c, 
            (!0 !== (o && (o.Infinity += !1))) >> NaN) ][a++ + {
                foo: (c = 1 + c, 1),
                1.5: (c = 1 + c, (a_2 && (a_2[(c = 1 + c, 5 < (c += 1, -1))] += "38")) <= NaN <= !1),
                in: (c = 1 + c, NaN)
            }] : (c += 1) + (c = 1 + c, (0 == (b_2 && (b_2[--b + (c = 1 + c, c = 1 + c, !(1 != (b_2 = 0)))] = !0)) ? (c = 1 + c, 
            !1 + (!1 ^ -0 & this)) : (c = 1 + c, 0)) || a || 3).toString()) || a || 3).toString(),
            null: (c += 1) + b
        }:
    }
}

switch (a++ + b++) {
  default:
    var expr60 = this;
    for (var key60 in expr60) {
        c = 1 + c;
        var b_2 = expr60[key60];
        try {
            switch ((c += 1) + 0) {
              default:
                var brake63 = 5;
                throw c = 1 + c, c = 1 + (c = 1 + (c += 1)), 3 ^ (a_2 = "b4" | (b_2 && (b_2[(c = 1 + c, 
                NaN % (b_2 && (b_2.foo |= !1)) ^ !0)] = 0)));

              case a++ + [ (c = 1 + c, !0), (c = 1 + c, -1 / 0), (c = 1 + c, !1 < (NaN & (foo_1 && (foo_1[(c = 1 + c, 
                !(4 < this ^ -1))] = -5)))), (c = 1 + c, NaN) ]:
                break;

              case 1 / 0:
                c = 1 + c, b_2 = 0;
                break;

              case bar_2:
                var expr67 = (c = 1 + c, NaN);
                for (var key67 in expr67) {
                    c = 1 + c, a_2 = expr67[key67], c = 1 + c, foo_1 && (foo_1.undefined = !1);
                }
                var expr69 = (c = 1 + c, 1 == (c += 1, !1));
                for (var key69 in expr69) {
                    c = 1 + c, c += 1;
                }
            }
        } catch (a) {
            switch (b = a) {
              case c = 1 + c, !1 * (0 | void (c += 1)) ? (c = 1 + c, !0) : (c = 1 + c, a_2 = 0):
                c = 1 + c, c += 1;
                break;

              case 2:
                break;

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

              case function() {}:
                "" != this != 1 && (b_2 += -2), c = 1 + (c = 1 + c);
            }
            try {
                try {
                    c = 1 + c, a_2 += (a_2.undefined *= NaN) % !0 || NaN;
                } catch (c) {}
            } catch (b) {
                b_2 += !0, c = 1 + (c = 1 + c);
            } finally {
                c = 1 + c, a_2 && (a_2.c -= 22), c = 1 + c, b_2 && (b_2[(c = 1 + c, !1)] = 0);
            }
        }
    }

  case {
        c: (c += 1) + b,
        NaN: ~((b_2 && (b_2[(c = 1 + c, -3)] = 4294967294)) << !1 << -0),
        NaN: (c += 1) + (foo_1 && foo_1["function" == typeof f1 && 0 <= --_calls_ && f1([ (c = 1 + c, 
        !1), (c = 1 + c, 24 < (b_2 && (b_2.null = !1)) ^ NaN) ][(c = 1 + c, !1)])]),
        foo: (c += 1) + {}.undefined
    }:
    for (var brake84 = 5; {
        null: --b + foo_1,
        "": --b + ("function" == typeof f1 && 0 <= --_calls_ && f1("23", (c = 1 + c, !1), 5)),
        1.5: (foo_1 = (foo_1 && (foo_1[(c = 1 + c, !1 / (foo_1 && (foo_1.undefined += 1)) == 23)] = !0)) < !1) && !0
    }.var && 0 < brake84; --brake84) {
        for (var brake85 = 5; --a && 0 < --brake85; ) {
            foo_1 && foo_1.length;
        }
    }
    switch (a--) {
      default:
      case (a || a || 3).toString():
      case a_2:
        break;

      case b_2:
        switch (c = 1 + c, 0) {
          case c = 1 + c, c += 1, 23 + (bar_2 &= -32):
          case c = 1 + c, 33554482:
            break;

          case c = 1 + c, 0 ^ (bar_2 += 0) / !0:
          case c = 1 + c, b_2 && (b_2[a++ + "number"] = !1 / (!this === -1 / 22)):
        }
    }
    var brake91 = 5;
    do {
        for (var brake92 = 5; --b + a && 0 < --brake92; ) {}
    } while ((c += 1) + ("function" == typeof a_2 && 0 <= --_calls_ && a_2("a", (c = 1 + c, 
    -3 ^ (!0 | this) && !0))) && 0 < --brake91);
    if (bar_2 && bar_2.length) {
        var brake95 = 5;
        do {
            try {
                c = 1 + c, b_2 && (b_2["function" == typeof f0 && 0 <= --_calls_ && f0(25)] = 25 % (22 !== this) && b_2 && (b_2.a = 1));
            } catch (c) {}
        } while ((c = 1 + c, a_2 && (a_2[(c += 1) + /[abc4]/.test(("function" == typeof f1 && 0 <= --_calls_ && f1((c = 1 + c, 
        !1), -3, (c = 1 + c, 22 === (a_2 && (a_2[(c = 1 + c, !0)] += 0)) !== !0 << (a_2 && (a_2.a = 0)))) || b || 5).toString())] += (a_2 = !0 << 511) << !1) || 3).toString()[(c = 1 + c, 
        ((b_2 += 23) <= (a_2 && (a_2.undefined = !0))) << (!0 !== (2 ^ this)))] && 0 < --brake95);
    }

  case b = a:
    var bar;
    break;

  case b:
    switch ((c += 1) + ("function" == typeof f1 && 0 <= --_calls_ && f1(--b + !void (c = 1 + (c = 1 + c)), !0, !b))) {
      case (c += 1) + ("function" == typeof f0 && 0 <= --_calls_ && f0([][a++ + --b], "number", {})):
      case a++ + typeof (--b - 2):
        break;

      case a++ + a_2:
        a++, "function" == typeof f1 && 0 <= --_calls_ && f1(!1, "38", (c = 1 + c, "/[a2][^e]+$/object" !== (12 | (bar_2 && (bar_2[(c = 1 + c, 
        foo_1 && (foo_1[(c += 1) + (--b + ++a ? (foo_1 && (foo_1[(c = 1 + c, !0)] += !1) && -1) <= !0 : a++ + b_2)] += NaN <= -this))] &= 0)))));
        var expr106 = (c += 1) + (bar_2 && bar_2.undefined);
        for (var key106 in expr106) {
            var expr107 = (c = 1 + c, b_2 && (b_2.NaN = NaN) || 3).toString()[(c = 1 + c, 0 < ("38" | (b_2 && (b_2.b += 0))))];
            for (var key107 in expr107) {}
        }
        break;

      case a++ + (b = a):
        var brake109 = 5;
        do {} while (new function() {
            this[(c += 1) + {
                3: (c = 1 + c, c += 1, !0 + (c += 1, this) <= 2)
            }.NaN] |= 0, this[--b] >>>= !1 * (a_2 && (a_2.NaN = -1)), bar_2 ^= -1, c = 1 + (c = 1 + (c = 1 + (c = 1 + c))), 
            b_2 && (b_2.undefined %= !1 % (a_2 && (a_2.undefined ^= !0)) === NaN);
        }() && 0 < --brake109);
        for (var brake115 = 5; a++ + void (c = 1 + c) && 0 < --brake115; ) {
            try {
                c = 1 + c, a_2 *= !1;
            } catch (a) {
                c = 1 + (c = 1 + c);
            }
        }
    }
}

b_2 && (b_2.null /= NaN);

for (var brake122 = 5; --b + b && 0 < --brake122; ) {
    c += 1;
}

for (var brake124 = 5; function n() {
    var a = 5;
    do {
        try {
            !function() {
                i++, "function" == typeof f1 && 0 <= --_calls_ && f1((c = 1 + c, +("b" - this) / 0));
            }((i++, --d), i--);
        } catch (a) {
            switch (a_2 && a_2[(c += 1) + {
                b: (c += 1) + (c = 1 + c, bar_2 = 22 * (0 <= (c += 1, "number"))),
                0: (c += 1) + ("" + (c = 1 + c, !0 >> (c += 1, -2 >>> 0) || 1))[(c = 1 + c, -0 * (b_2 && (b_2[(c = 1 + c, 
                a_2 /= 1)] = -4) && 0))],
                1.5: i
            }]) {
              case --d + +function() {
                    if ((c += 1) + i--) {
                        switch (c = 1 + c, (NaN !== (this && 0)) >>> (b_2 = -4, !0)) {
                          default:
                          case c = 1 + c, !1:
                          case c = 1 + c, !1:
                          case c = 1 + c, -0:
                        }
                    }
                    c += 1, c += 1;
                    for (var a = 5; (c += 1) + d-- && 0 < --a; ) {
                        c = 1 + c, b_2 |= 2;
                    }
                }():
                var e = (c = 1 + c, a && (a.null = 0), void (c = 1 + (c = 1 + c)));
                for (var o in e) {
                    c = 1 + c;
                    var i = e[o];
                    c = 1 + (c = 1 + c), a && (a.in = !0), c = 1 + (c = 1 + c), foo_1 = a_2 && (a_2.foo = "");
                }
                break;

              case --d + "foo":
                return --d + delete i;

              case i++ + d--:
                var r = 5;
                do {
                    var _ = i++ + "23";
                    for (var b in _) {
                        var f = _[b], s = (c = 1 + (c = 1 + c), 0), t = (c = 1 + c, this === /[a2][^e]+$/ == -2 != 0);
                    }
                } while ((c += 1) + {
                    b: (c = 1 + c, b_2 && (b_2[i++ + [ , (c = 1 + c, void 0 >> (t && (t.var = 0)) != 19), (c = 1 + c, 
                    !1) ].a] ^= 23))
                }.NaN && 0 < --r);
            }
            c += 1;
        } finally {
            var l = 5;
            do {
                try {
                    --d, 0 / (c += 1, {}) && a_2 && (a_2[(c += 1) + this] += 1 / 0);
                } catch (a) {
                    return c = 1 + (c += 1), s && (s.NaN |= !1), c = 1 + (c = 1 + c), c += 1, t && (t[(c = 1 + c, 
                    1 <= ((foo_1 && (foo_1.null = 0)) < !1))] = !1), i++ + (d <<= i);
                } finally {
                    i++;
                    for (var v = 5; --d + ("" + (c = 1 + c, 2))[(c = 1 + c, !0)] && 0 < v; --v) {
                        c = 1 + c;
                    }
                }
            } while (d++ && 0 < --l);
            var u = "symbol" == typeof d;
            for (var N in u) {
                return c = 1 + c, i++ + ("function" == typeof f2 && 0 <= --_calls_ && f2((c += 1) + {}[(c = 1 + c, 
                (0 == this ^ -0) <= (1 / 0 != +this))], "23", 1 / 0));
            }
        }
    } while (i++ + (i++ + function() {
        try {
            for (var a = 5; delete d && 0 < --a; ) {
                for (var e = 5; c += 1, --d + --d && 0 < --e; ) {}
            }
        } catch (a) {
            "function" == typeof t && 0 <= --_calls_ && t(!0, (c = 1 + c, !0));
            for (var o = 5; i++ + (s && s[(c = 1 + c, !0)]) && 0 < o; --o) {
                var r = (c = 1 + c, !0 | (r && (r[(c = 1 + c, (s -= !1 & (c += 1, /[a2][^e]+$/)) * ("24-2" & (c += 1, 
                "undefined")))] = NaN)) <= !1);
                c = 1 + c, r = 1 != (n = !1);
            }
        } finally {
            if ((c += 1) + void (a_2 && (a_2.NaN += 0))) {} else {
                for (var _ = 5; c = 1 + c, 0 < --_; ) {
                    c = 1 + c;
                }
            }
            var b = [ (c = 1 + c, -2 < (null >> this) + (a_2 && (a_2.in = !1))), (c = 1 + c, 
            0) ].undefined;
            for (var f in b) {
                c = 1 + c;
                var t = b[f];
                c = 1 + c, !1 ^ (t += !1) && (c = 1 + c);
            }
        }
        d--;
    }()) && 0 < --a);
    switch ("function" == typeof bar_2 && 0 <= --_calls_ && bar_2(i++ + !d)) {
      default:
        for (var h = 5; 0 == (!1 & (a_2 && (a_2.undefined = 0))) && 0 < --h; ) {
            var k = 5;
            do {
                var d = {
                    var: {
                        3: (c = 1 + c, bar_2 && (bar_2.foo = 0)),
                        "\t": (c = 1 + c, 1 + ((s && (s[(c = 1 + c, 0)] = 2)) << !0)),
                        1.5: (c = 1 + c, 4 < (c += 1, /[a2][^e]+$/) < NaN),
                        "-2": (c = 1 + c, 3),
                        null: (c = 1 + c, 25 + (!0 ^ (n && (n[(c = 1 + c, !1)] = !1))))
                    }[(c = 1 + c, c += 1, "number" == delete undefined ^ !0 <= (bar_2 && (bar_2[(c = 1 + c, 
                    0)] += 0)))]
                };
            } while (--d + ("" + (--d + ("" + (--d + (c = 1 + (c = 1 + c), f && (f[[ (c = 1 + c, 
            !0), (c = 1 + c, -1) ].foo] = 0), c = 1 + c, !void (c = 1 + (c += 1))) || 2))[-4 >>> ("bar" < this == void 0)] || 0))[(c += 1) + (d = i)] && 0 < --k);
        }

      case (c += 1) + [ (c += 1) + typeof b_1, i++ + "bar", i++ + typeof ((c += 1) + b_2), {
            foo: {
                "\t": NaN,
                undefined: i++ + [ (c = 1 + c, NaN != "231" << (b_2 = NaN)), (c = 1 + c, t && (t[i++ + new function() {
                    this[{
                        null: (c = 1 + c, 0),
                        set b(c) {
                            this.var = !1;
                        },
                        "": (c = 1 + c, 1 <= (b_2 && (b_2[--d + {
                            get Infinity() {
                                c = 1 + c, b_2 && (b_2.Infinity += !1);
                            }
                        }[(c = 1 + c, !1)]] <<= (s && (s.c += "24")) <= !1)))
                    }[(c = 1 + c, 0 & (c += 1, !1))]] &= 0, c = 1 + c, c += 1;
                }()] += (a_2 &= -0, c += 1, !1))), (c = 1 + c, NaN ^ (NaN | (this && !0))) ][(c = 1 + c, 
                0 === (b_2 && (b_2.c = "function")))],
                b: [ (c = 1 + c, c += 1, 0) ]
            },
            Infinity: i++ + (--d + (d -= i) || i || 3).toString(),
            null: (c += 1) + {
                var: --d + (c = 1 + c, !0 ^ (c += 1, 1 / 0)),
                3: "function" == typeof f0 && 0 <= --_calls_ && f0((c = 1 + c, (1 != (n && (n.b = 0))) < !0), (c = 1 + c, 
                NaN * (n && (n["function" == typeof f2 && 0 <= --_calls_ && f2("38")] *= 0 <= (c += 1, 
                "b")))), {})
            },
            "-2": 1 / 0,
            var: --d + ("function" == typeof f2 && 0 <= --_calls_ && f2((c += 1) + bar_2))
        }, (c += 1) + t ][("" + (--d || 7))[~(s += 0)]]:
        for (var y = 5; c += 1, "function" == typeof bar_2 && 0 <= --_calls_ && bar_2(i++ + d--, i++, void function() {
            var a = (c = 1 + c, 0 - (a && (a[(c = 1 + c, ((foo_1 && (foo_1[(c = 1 + c, NaN)] = !0)) > !0 >>> this) >> !1)] = !0)) != 1);
        }()) && 0 < --y; ) {}
        break;

      case i++ + --d:
        break;

      case "boolean" != typeof i:
        c += 1;
    }
}() && 0 < brake124; --brake124) {
    for (var brake194 = 5; function() {
        try {
            for (var a = 5; "function" == typeof b_2 && 0 <= --_calls_ && b_2(i, {}, f) && 0 < --a; ) {
                for (var e = 5; 0 < --e; ) {}
            }
        } finally {
            for (var o = function(a, e) {
                if ((c += 1) + ~((f ^ f) / !1 || !0)) {
                    for (var o = 5; c = 1 + (c = 1 + c), 2323 * (!1 | 1 / 0 << this) && 0 < --o; ) {}
                }
                switch (i++ + ("function" == typeof _ && 0 <= --_calls_ && _())) {
                  case (c += 1) + e--:
                    break;

                  default:
                  case e--:
                    c = 1 + c, _ && (_.undefined = 0), c = 1 + c;
                    break;

                  case (c += 1) + /[a2][^e]+$/:
                    c = 1 + (c = 1 + c), a_2 && (a_2.c += void 0 + "number0");
                }
            }(0, --b + !0, (i++, ++i)), r = 5; {
                length: -b,
                0: i++ + b,
                3: b--,
                a: b++,
                b: b
            }[i++ + (b /= i)] && 0 < --r; ) {
                var _ = (b = i, c = 1 + (c = 1 + (c += 1)), void (foo_1 = !(_ = !1)));
            }
        }
        if ("function" == typeof o && 0 <= --_calls_ && o(0)) {
            c += 1, --i;
            var f = (i++ || i || 3).toString();
        } else {
            switch (i++ + typeof _) {
              default:
              case i++ + ("function" == typeof o && 0 <= --_calls_ && o()):
                switch ((c += 1) + i++) {
                  case b--:
                    c = 1 + c, b_2 && (b_2.NaN += 0), c = 1 + c, _ && (_.null = "undefined" / this || -0), 
                    b_2 && (b_2.c = !1);

                  case function() {}:
                    c = 1 + (c = 1 + c);
                    break;

                  case i++ + (c = 1 + c, null << this << 0 && (this <= 22) % 0 || i || 3).toString():
                  case "function" == typeof f2 && 0 <= --_calls_ && f2("foo"):
                }
                var t = (c += 1) + !0;
                for (var n in t) {
                    var i = t[n];
                    c = 1 + (c = 1 + c), c += 1;
                }

              case function() {
                    for (var a = 5; c = 1 + c, (this || []) + ("c" | f) / "-5function" && 0 < a; --a) {
                        c = 1 + c, a_2 && (a_2.a >>= !1), foo_1 && (foo_1.var /= 25 + this);
                    }
                    c += 1;
                }():
              case i++ + +i:
            }
        }
        for (var s = 5; (c += 1) + (_ = {
            "\t": "function" == typeof f2 && 0 <= --_calls_ && f2(-5, (c = 1 + c, 0), (c = 1 + c, 
            1)),
            set foo(a) {
                c = 1 + c, this.a += !0;
            }
        }.foo) && 0 < --s; ) {}
        var l = (c += foo_1 = 1) + ("function" == typeof f3 && 0 <= --_calls_ && f3((c += 1) + ("number" == typeof foo_1)));
        for (var v in l) {
            c = 1 + c;
            try {
                c += 1;
            } finally {
                switch ((c = 1 + c, "23" == (_ && (_[(c = 1 + c, ((a_2 && (a_2[(c = 1 + c, 0)] = !0)) | (a_2 && (a_2[(c = 1 + c, 
                a_2 && (a_2.NaN = f < !0), (b_2 = 0) > (c += 1, -5))] += 0))) > (b_2 && (b_2.b = !0)) << !1)] = NaN)) ^ f >>> 0 << 0 || i || 3).toString()) {
                  case void 0:
                    break;

                  case --b + void 0:
                    c = 1 + c, a_2 && (a_2.a = 0), b_2 += 39;
                    break;

                  case --b + [ (c = 1 + c, 1 == (-10 ^ (_ ^= -1))), , (c = 1 + c, 11), (c = 1 + c, 0 == (-0 !== f) == 0) ][(c = 1 + c, 
                    1 !== (c += 1, c += 1, []))]:
                  case i++ + (c = 1 + (c = 1 + c), !1):
                    c = 1 + c;
                }
                c += 1;
            }
        }
    }() && 0 < --brake194; ) {}
}

console.log(null, a, b, c, 1 / 0, NaN, void 0);
original result:
�[1mnull�[22m �[33m145�[39m �[33m-30�[39m �[33m797�[39m �[33mInfinity�[39m �[33mNaN�[39m �[90mundefined�[39m

uglified result:
�[1mnull�[22m �[33m145�[39m �[33m-30�[39m �[33m799�[39m �[33mInfinity�[39m �[33mNaN�[39m �[90mundefined�[39m

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 May 29, 2019
alexlamsl added a commit to alexlamsl/UglifyJS that referenced this issue May 29, 2019
alexlamsl added a commit that referenced this issue May 29, 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