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

Closed
alexlamsl opened this issue Dec 21, 2019 · 0 comments · Fixed by #3642
Closed

ufuzz failure #3641

alexlamsl opened this issue Dec 21, 2019 · 0 comments · Fixed by #3642
Labels

Comments

@alexlamsl
Copy link
Collaborator

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

(c = c + 1) + (typeof NaN_2 !== "object");

try {
    switch (--b + typeof (a++ + - -("bar" % [] >= "b" - /[a2][^e]+$/))) {
      case a++ + typeof (a++ + -~((a && (a[c = 1 + c, ("undefined" >= -2 && -1 << -0) << (0 == Infinity != ([ , 0 ].length === 2 | 2))] += true > "object")) === (25 ^ null))):
        --b + -3;
        switch (!(23..toString() ^ -2 ^ "bar" >= 3)) {
          case (c = c + 1) + {
                NaN: !function a_1() {
                    if ((--b + ((c = 1 + c, (23..toString() & -5 || undefined >= true) & ((a_1 = "foo" <= "") || "undefined" !== 24..toString())) || 0).toString()[c = 1 + c, 
                    (a_1 && (a_1[((c = 1 + c, "number" ^ null ^ null < -2, -(-0 ^ 22)) || a || 3).toString()] %= ({} > ([ , 0 ].length === 2)) >> ("a" & "c"))) !== void (4 || [ , 0 ].length === 2)] || a || 3).toString()) {
                        L27166: for (var brake7 = 5; !function() {
                        }() && brake7 > 0; --brake7) {
                            if (c = 1 + c, (25 <= null | (Infinity | 38..toString())) ^ ~(/[a2][^e]+$/ != -4)) {
                                c = 1 + c, -(c = c + 1, null < -4);
                            } else {
                                c = 1 + c, (/[a2][^e]+$/ & -1 ^ 0 >= "c") * ("bar" << "undefined" === (a_1 && (a_1.undefined = 0 !== true)));
                            }
                        }
                    } else {
                        return b + 1 - .1 - .1 - .1;
                    }
                    switch ([ , 0 ][1]) {
                      case a++ + !(23..toString() % 1 !== (a_1 && (a_1[c = 1 + c, (24..toString() < -2 && 23..toString() >>> true) + (("b" ^ -3) === -5 << 2)] /= "bar" != this)) & (a_1 && (a_1.b = (a_1 = undefined >= -4) || "bar" + 5))):
                        {
                            var expr13 = (c = 1 + c, ({} != "b") < null - false != (/[a2][^e]+$/ | "b" || true | 3));
                            for (var key13 in expr13) {
                                c = 1 + c, (a_1 = ("a" & 1) != -4 >= Infinity) - (a_1 && (a_1[a_1 ^= (a_1 && (a_1.NaN = ([ , 0 ][1], 
                                1) << (2 && 2))) & 3 != 23..toString() === [ , 0 ][1] > 0] = (23..toString() ^ true) & -1 / 1));
                            }
                        }
                        switch (c = 1 + c, "c" % 1 > -2 - -3 & (a_1 && (a_1.c = (-5 | 24..toString()) <= (a_1 = "b" >= 3)))) {
                          default:
                            ;

                          case c = 1 + c, void (5 >= 23..toString()) ^ (this || -4) + (-1 >> 2):
                            ;

                          case c = 1 + c, undefined / "object" << (([ , 0 ].length === 2) <= true) !== (2 !== /[a2][^e]+$/ != [] < "foo"):
                            ;
                            break;

                          case c = 1 + c, (a_1 && (a_1.foo = [ , 0 ][1] + "function")) * (4 ^ [ , 0 ].length === 2) !== ({} | []) % ("object" * {}):
                            ;
                            break;
                        }
                        break;

                      case a_1 && a_1[a_1 && a_1.a]:
                        {
                            throw c = 1 + c, (3 > -3) + (NaN === 23..toString()) < (("foo" ^ 2) & [ , 0 ].length === 2 == 0);
                        }
                        {
                        }
                        break;

                      case +(((Infinity ^ 25) === 5 - "undefined") >>> ((2 === NaN) >> (4 == 3))):
                        break;

                      case 22:
                        break;
                    }
                    if (--b + {
                        NaN: (c = 1 + c, (0 + 0 && this & "undefined") === void undefined < 1 + -1),
                        var: (c = 1 + c, (a_1.c += (c = c + 1, -4) ^ (a_1.c >>= 25 === NaN)) + ((2 == 38..toString()) >= !0))
                    }) {
                        try {
                            {
                                var expr20 = (c = 1 + c, (("number" !== -3) - (4 == Infinity)) / (Infinity * undefined - ("b" | [ , 0 ][1])));
                                for (var key20 in expr20) {
                                    c = 1 + c, a_1 && (a_1.in <<= (1 < 3 !== "a" <= 4) <= (24..toString() % NaN ^ delete -5));
                                }
                            }
                        } catch (Infinity) {
                            c = 1 + c, (delete -3 & (5 & -0)) == ({} | true) >> 38..toString() % "object";
                            c = 1 + c, (1 == 25, false << "c") === (1 & 2) % (-5 & 23..toString());
                        }
                    } else {
                        switch ([ (c = 1 + c, ((-3 !== []) >>> (NaN != "a")) - ((0 ^ [ , 0 ][1]) == ("object" != 4))), (c = 1 + c, 
                        a_1 && (a_1[new function a_1() {
                            this.c += "undefined" - 0 & (a_1 && (a_1[c = 1 + c, (4 ^ "c") >> (a_1 = "function" | -2) >>> (38..toString() && 38..toString()) / (this !== -0)] += 24..toString() < "b"));
                        }()] = 23..toString() * 1 & undefined * Infinity ^ (a_1 && (a_1.undefined ^= (null | "object") << ("c" < -2))))), (c = 1 + c, 
                        -0 < -4 > ~2 | ~(-4 - "b")) ]) {
                          case --b + [ (c = 1 + c, a_1 && (a_1.var >>= ("object" * 25 <= 0 << 5) * ("function" < this >= (-0 === 38..toString())))), (c = 1 + c, 
                            (22 !== undefined & null >>> 24..toString()) >>> (c = c + 1, "a" - 4)), ,  ].Infinity:
                            break;

                          case --b + [][c = 1 + c, (a_1 += NaN << /[a2][^e]+$/) - 2 % [] < (-5 == 23..toString() || "b" ^ /[a2][^e]+$/)]:
                            break;

                          case (c = c + 1) + (a_1 = (c = 1 + c, (Infinity > /[a2][^e]+$/ <= (c = c + 1, true)) - -(-4 * 4))):
                            c = 1 + c, a_1 && (a_1.foo = ("a" - [ , 0 ][1] != (38..toString() ^ -2)) % ((a_1 && (a_1[c = 1 + c, 
                            ((a_1.Infinity = Infinity >> "foo") == "object" >> 4) > (a_1 && (a_1.Infinity += 38..toString() >= 22)) + (-0 ^ 5)] += NaN | 24..toString())) | "c" & true));
                            c = 1 + c, undefined / -2 % (true != "bar") >= ("" === -4 ^ true % 4);
                            break;

                          case a++ + 5:
                            break;
                        }
                    }
                }(),
                "\t": a++ + {
                    length: a++ + a,
                    undefined: --b + {
                        Infinity: (c = c + 1) + (0 === 1 ? a : b),
                        foo: --b + [ ,  ][c = 1 + c, 23..toString() * "object" == ("bar" !== -0) || (NaN >>> null || "foo" >= null)],
                        undefined: a,
                        length: ((c = 1 + c, ("bar" >> -5 >= (Infinity ^ -5)) << (a = (/[a2][^e]+$/ < true, 
                        4 & 25))) || a || 3).toString(),
                        in: (([ , 0 ].length === 2 || null) & 25 >> NaN) * (3 < Infinity ^ null != -1)
                    }.in,
                    0: typeof Math_2 == "object"
                }[typeof f1 == "function" && --_calls_ >= 0 && f1()],
                "\t": a && a[--b + true]
            }[typeof f1 == "function" && --_calls_ >= 0 && f1(typeof f0 == "function" && --_calls_ >= 0 && f0(b = a, 25), delete (((-3, 
            25) & [ , 0 ][1] >>> "function") == 22 > ([ , 0 ].length === 2) > ("foo" > "number")))]:
            break;

          case --b + (typeof f0 == "function" && --_calls_ >= 0 && f0(-3, "number", new function() {
                this[--b + [ [ (c = 1 + c, ("b" ^ "foo") > (false | {}) ^ -5 + [ , 0 ][1] === (23..toString() != 0)), (c = 1 + c, 
                (("object" && -3) != (a && (a[c = 1 + c, (1 ^ 4, 3 % false) >= (Infinity < 3 >= ("c" && ""))] %= NaN !== 24..toString()))) / ((-3 >> -3) * (23..toString() === []))), ,  ] ].a] = (void 22 >= (38..toString() < false)) << (-2 === -0) * (c = c + 1, 
                -3) > (("a", {}) === (a += (24..toString(), [ , 0 ][1]))) >> (c = c + 1, NaN % 25);
            }())):
            break;

          case --b + -(c = c + 1, (c = c + 1, -5) && (a.Infinity %= 24..toString() ^ 38..toString())):
            switch (((c = c + 1) + typeof foo || a || 3).toString()) {
              case !b:
                break;

              case {
                    null: (c = c + 1) + (typeof f1 == "function" && --_calls_ >= 0 && f1()),
                    "-2": (c = c + 1) + [ ((c = 1 + c, void (-5 ^ this) || true < 24..toString() && [] === 22) || a || 3).toString() ].null
                }:
                break;

              case {}[NaN << -3 <= (c = c + 1, "object") != (Infinity != 24..toString()) * ("object" / [])]:
                ;
                break;

              case undefined:
                break;
            }
            for (var brake29 = 5; --b + [ (2 | "a") === (a += 23..toString() == "b") == (null !== 24..toString()) + -2, [ "", [].var, , 0 === 1 ? a : b ].in ][a++ + a] && brake29 > 0; --brake29) {
                c = c + 1;
            }
            break;

          case [ delete (2 >> NaN === ([ , 0 ].length === 2) - [ , 0 ][1] & (1 ^ [ , 0 ].length === 2) - ("foo" < "foo")) ].null:
            try {
                --b + (a && a.b);
            } catch (bar_1) {
                {
                    var brake33 = 5;
                    do {
                        if (--b) {}
                    } while (a++ + ++a && --brake33 > 0);
                }
                {
                    var brake36 = 5;
                    do {
                        {
                            var a_2 = function bar_1(bar_1_1) {
                            }();
                        }
                    } while (delete a && --brake36 > 0);
                }
            } finally {
                {
                    ((c = 1 + c, (delete 25, a_2 && (a_2.b >>>= "a" & "c")) !== ("object" <= "foo") % ({} || "a")) || a || 3).toString();
                    {
                        c = 1 + c, undefined * this << ("bar" | 38..toString()) & 5 * "foo" + ([] >> -5);
                        c = 1 + c, -"foo" + (null == 38..toString()) <= ("function" || Infinity) >> (a_2 && (a_2.a += 4 ^ 2));
                        c = 1 + c, (("foo", "c") <= [] % []) / ((c = c + 1, [ , 0 ].length === 2) + (/[a2][^e]+$/ === -3));
                    }
                    for (var brake45 = 5; a++ + ((c = 1 + c, (false >>> 1 | "number" < "bar") >> (a_2 && (a_2.a = (4 | NaN) % ("foo" <= "foo")))) ? (c = 1 + c, 
                    (-1 * undefined || "" + 0) <= void ([] >>> true)) : (c = 1 + c, (false <= this, 
                    c = c + 1, "foo") << ((c = c + 1, 38..toString()) || 5 !== 1))) && brake45 > 0; --brake45) {
                        var expr46 = (c = 1 + c, (c = c + 1, c = c + 1, 22) - (22 & -0 && (/[a2][^e]+$/, 
                        4)));
                        for (var key46 in expr46) {
                            c = 1 + c;
                            var b_2 = expr46[key46];
                            c = 1 + c, ("object" > "bar") << ("bar" >= [ , 0 ][1]) || -2 < -4 < (23..toString() <= 0);
                        }
                    }
                }
            }
            {
                var brake48 = 5;
                while (a_2 && a_2.Infinity && --brake48 > 0) {
                    if ((a++ + {
                        1.5: b_2 = (b_2 && (b_2[[ (c = 1 + c, (("b" && 38..toString()) == "foo" / 22) + ((c = c + 1, 
                        undefined) | [] === 5)) ].c] -= "object" < "c" || true - "a")) != ([ , 0 ].length === 2 && -2) + (b_2 && (b_2.Infinity <<= "object" & -1)),
                        b: a++ + (a_2 && a_2.b),
                        null: a++ + a++
                    }[a--] || 0).toString()[/[abc4]/.test((++a || b || 5).toString())]) {
                        for (var brake50 = 5; (c = c + 1) + void ((-4 ^ /[a2][^e]+$/) + (5 << []) > (1, 
                        Infinity) - (true === 24..toString())) && brake50 > 0; --brake50) {
                            a++ + (typeof c !== "special");
                        }
                    } else {
                        try {
                            {
                                var b_2 = function Infinity(arguments_2, b_1) {
                                    c = 1 + c, (~-2, a_2 += "function" * -5) + ((c = c + 1, "number") > (23..toString(), 
                                    null));
                                    c = 1 + c, a_2 = (c = c + 1, "object" == Infinity) ^ (-0 >>> /[a2][^e]+$/) * (NaN % 4);
                                }();
                            }
                        } finally {
                            {
                                var brake56 = 5;
                                while (function() {
                                } && --brake56 > 0) {
                                    L27167: for (var brake57 = 5; (c = 1 + c, ((2 | -1) >= (24..toString() && "object")) << (b_2 && (b_2.b = -3 << 4)) + (-0 == "number")) && brake57 > 0; --brake57) {
                                        c = 1 + c, (b_2 = this >> 5 || Infinity < 5) != (undefined >= Infinity) % ("undefined" <= /[a2][^e]+$/);
                                    }
                                }
                            }
                            switch (--b + {
                                "\t": (c = 1 + c, (null === 3) / ("undefined" ^ [ , 0 ].length === 2) >= ((b_2[c = 1 + c, 
                                (c = c + 1, "b") ^ [ , 0 ][1] & null || "number" % 23..toString() & 38..toString() === "b"] >>>= null % "c") === -3 >>> 23..toString())),
                                set undefined(a_1) {
                                    this.NaN = "bar" * [ , 0 ][1];
                                }
                            }[c = 1 + c, ((b_2 += "a" && 22) && [] >> -3) <= (-5 >>> NaN | "undefined" ^ 5)]) {
                              case a++ + (typeof a_2 == "function" && --_calls_ >= 0 && a_2(4, (c = 1 + c, 5 !== 23..toString() !== {} < Infinity & ([] / "undefined", 
                                -5, -4)))):
                                c = 1 + c, c = c + 1, c = c + 1, 4 < {};
                                break;

                              case /[abc4]/.test(((c = 1 + c, ("foo" > /[a2][^e]+$/ || ([ , 0 ].length === 2) + 3) - (1 == [] && !-0)) || b || 5).toString()):
                                c = 1 + c, [] >= undefined && 4 * "c" || (38..toString() >= "function") - (a_2 ^= NaN + [ , 0 ][1]);
                                break;

                              case a++ + +((b_2 && (b_2[typeof b_1 !== "boolean"] -= (-5 < -3) >> [] * this)) >>> (+"a" && "c" & 24..toString())):
                                c = 1 + c, (24..toString() << -4) / ("foo" + 25) * (("" || -2) + delete null);

                              case --b + []:
                                break;
                            }
                        }
                    }
                }
            }
        }
        break;

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

      case {
            0: 1 === 1 ? a : b,
            undefined: a++ + [ a++ + [ [ a++ + (typeof f0 == "function" && --_calls_ >= 0 && f0((c = 1 + c, 
            ("a" != "c") << (undefined & false), "b" >= -5 !== +false))), b_2, (4 >>> "foo" < (-0 ^ "foo")) >> (this >> 38..toString() ^ -0 < 38..toString()), b_2 = (c = 1 + c, 
            ("number" == 23..toString()) - (Infinity >= "function") >= (22 / this < false / "function")), a++ + ((c = 1 + c, 
            (b_2 += (a_2[c = 1 + c, ("object", null) === 25 / 2 ^ "foo" == [ , 0 ][1] === ("object" == 2)] = {} ^ false, 
            "object" % this)) % (-[] ^ "c" === "object")) || 3).toString()[c = 1 + c, -(23..toString() <= 2 >= (a_2 && (a_2[c = 1 + c, 
            ("function" != "b" | (-1 | "a")) >> (c = c + 1, b_2 = [ , 0 ][1] + [ , 0 ][1])] ^= "function" ^ /[a2][^e]+$/)))] ][(c = 1 + c, 
            (b_2 && (b_2.a = (a_2 && (a_2[c = 1 + c, (null, 5) == (b_2 *= NaN >= 5) || (c = c + 1, 
            "bar" > -2)] = /[a2][^e]+$/ & -0)) ^ "undefined" % this)) <= ("" >>> false !== (b_2[c = 1 + c, 
            b_2 && (b_2.var = (("foo" === 38..toString()) >> (25 <= 3), [ , 0 ][1] % -5 / (5 + "")))] = -5 !== -1))) ? (c = c + 1, 
            -2 === [ , 0 ][1]) & (Infinity | 38..toString()) << -2 / Infinity : --b + -b], [ --b + void function bar() {
            }(), (c = c + 1) + (1 === 1 ? a : b), , --b + a-- ][typeof bar_1 === "object"] ][typeof (--b + new function foo() {}())], {}[b++], --b + (typeof f0 == "function" && --_calls_ >= 0 && f0(25)), (c = c + 1) + b-- ],
            c: b += a,
            3: a++ + (typeof f0 == "function" && --_calls_ >= 0 && f0((c = c + 1) + (b_2 = a++ + (5 % "" ^ NaN !== 5 ^ ({} || -0) / (NaN >> -1))), "b")),
            null: a_2 = /[abc4]/.test(((0 === 1 ? a : b) || b || 5).toString())
        }:
        {
            var brake64 = 5;
            L27168: while (b_2 && b_2[--b + (0 === 1 ? a : b)] && --brake64 > 0) {
                switch (typeof a_1 !== "object") {
                  case (c = c + 1) + (a_2 && (a_2[typeof {
                        1.5: (c = 1 + c, void (24..toString() / false >> -4 / /[a2][^e]+$/))
                    }.length] += (a_2 && (a_2.a = null <= null | 24..toString() + false)) > (a_2 = true > "a") - undefined * 2)):
                    {
                        var brake66 = 5;
                        L27169: do {
                            {
                                var foo_1 = function f0(a_1, b_2_2, a_1) {
                                    {
                                        var expr68 = (c = 1 + c, "number" | "number" | (a_1 && (a_1.b += "b" >> "c")) || -3 % ([ , 0 ].length === 2) & (-2 & /[a2][^e]+$/));
                                        for (var key68 in expr68) {
                                            c = 1 + c, (5 !== ([ , 0 ].length === 2)) >> "b" % -3 && (-2 | -4) ^ (/[a2][^e]+$/ ^ true);
                                        }
                                    }
                                    {
                                        var expr70 = (c = 1 + c, ((a_1 && (a_1[c = 1 + c, (-5 << 4 === (5 && [])) / ((c = c + 1, 
                                        {}) * ("" | {}))] = -2 ^ true)) != (a_1 -= -4 % 5)) < (undefined < 23..toString()) >>> (b_2 = 2 / -3));
                                        for (var key70 in expr70) {
                                            c = 1 + c, (-4 * this ^ -3 / 0) - ((false ^ "") - (null == ""));
                                        }
                                    }
                                }(24..toString(), [].c, a++ + [ (c = 1 + c, [] >> 4 < ([ , 0 ].length === 2 && -0) !== (5 < -1 || /[a2][^e]+$/ / this)), , (c = 1 + c, 
                                ((b_2 = "foo" === -3) - (NaN, "a")) * ~(-4 | "a")), (c = 1 + c, ((a_2 = /[a2][^e]+$/ >> null) >= ("b", 
                                24..toString())) >>> (c = c + 1, b_2 = -3 / /[a2][^e]+$/)) ][c = 1 + c, (-4 <= 38..toString() | "a" % [ , 0 ][1]) === (Infinity & [ , 0 ].length === 2) >>> ([ , 0 ].length === 2, 
                                -4)]);
                            }
                        } while (((b_2 && (b_2.null = "object" !== Infinity)) === (NaN && 1) || (c = c + 1, 
                        "number" === /[a2][^e]+$/)) && --brake66 > 0);
                    }
                    {
                        var a_2_2 = function f1(b_2, b_2) {
                            function f2(b_2, foo_1, foo) {
                                c = 1 + c, b_2 && (b_2[a++ + --b] = ("c" ^ 4) >> ([ , 0 ].length === 2 ^ [])), ("number" && {}) | this > undefined;
                                c = 1 + c, ("b", "foo") >> ("foo" & 22) < void this / (3 || -3);
                            }
                            var arguments_2 = f2();
                        }();
                    }
                    break;

                  case --b + ((38..toString() >> false) * ([ , 0 ][1] | -3) + ((23..toString() < "object") << delete 22)):
                    break;

                  case a++ + function bar() {
                        {
                            return;
                            foo_1 && foo_1.length;
                        }
                        [ --b + (b += a), typeof f1 == "function" && --_calls_ >= 0 && f1(38..toString(), (c = 1 + c, 
                        "undefined" / true >= (([ , 0 ].length === 2) <= [ , 0 ][1]) !== (22 ^ /[a2][^e]+$/) >= 23..toString() / 0), (c = 1 + c, 
                        (-0 >> undefined ^ (5 && 38..toString())) - (-5 >> (1 !== 22)))) ];
                        {
                            if (a++ + -(b_2 && (b_2.a = (b_2 && (b_2[((c = 1 + c, ((a_2[c = 1 + c, b_2 && (b_2[1 === 1 ? a : b] = (38..toString() < [ , 0 ][1] || !"undefined") | (a_2 && (a_2.var &= (38..toString() ^ 1) << (-4 || "c"))))] += /[a2][^e]+$/ < -1) !== this < [ , 0 ][1]) * ((-4 + 2) * (5 < "function"))) || a || 3).toString()] &= ("bar" != {}) >= (foo_1 && (foo_1.in |= 22 + {}))), 
                            (23..toString() && -4) << ("function" >= 24..toString()))))) {
                                switch (c = 1 + c, (5 <= []) % !{} < true >>> -1 >>> 23..toString() % undefined) {
                                  default:
                                    ;

                                  case c = 1 + c, (foo_1 = ("b" ^ null) / ("c" & 22)) ^ ([ , 0 ][1] === ([ , 0 ].length === 2)) / (-4 == "function"):
                                    ;
                                    break;

                                  case c = 1 + c, ("foo" && -3) << (-1 > 5) >= (25 > /[a2][^e]+$/) % (Infinity / 0):
                                    ;
                                    break;

                                  case c = 1 + c, (5 != 4 != 24..toString() - false) - (-0 >= [ , 0 ][1] != (a_2 && (a_2[c = 1 + c, 
                                    (5 << 1 !== 2 / 22) >= ((-2, -3) > 1 % -4)] = NaN || 5))):
                                    ;
                                    break;
                                }
                            } else {
                                var expr81 = (c = 1 + c, ("number" << [] !== 5 >> [ , 0 ][1]) % ("b" >>> [ , 0 ][1] << 23..toString() - 0));
                                L27170: for (var key81 in expr81) {
                                    c = 1 + c;
                                    var b_2_2 = expr81[key81];
                                    c = 1 + c, null == undefined != (foo_1 = (-5, "b")) | (foo_1 && (foo_1[(c = c + 1) + (foo_1 && foo_1[c = 1 + c, 
                                    (a_2_2 = ~38..toString() !== 25 >> -5) * (!"bar" << ("b" ^ 5))])] <<= "c" > 3 < [] / undefined));
                                }
                            }
                            for (var brake83 = 5; b_2_2 && brake83 > 0; --brake83) {
                                L27171: for (var brake84 = 5; (c = 1 + c, (undefined !== -3 != (24..toString() & -2)) - (-5 << 25) * ({} << -1)) && brake84 > 0; --brake84) {
                                    c = 1 + c, c = c + 1, ("undefined" == this) <= (-5 && "b");
                                }
                            }
                            {
                                var brake86 = 5;
                                L27172: do {
                                    try {
                                        c = 1 + c, (0 ^ null, 23..toString() % []) <= (b_2 && (b_2.Infinity = /[a2][^e]+$/ >= 1 < (b_2 && (b_2.c = 5 !== {}))));
                                    } catch (undefined_1) {
                                    } finally {
                                    }
                                } while ((c = c + 1) + /[abc4]/.test(((c = 1 + c, (/[a2][^e]+$/ > undefined) % (-2 === Infinity), 
                                NaN <= "object" & (true || 24..toString())) || b || 5).toString()) && --brake86 > 0);
                            }
                        }
                        L27173: {
                            return --b + {};
                            var bar_2 = a++ + new function a_1() {
                                this.foo = true | -1;
                                this[c = 1 + c, a_1 && (a_1[a++ + (b + 1 - .1 - .1 - .1)] &= (-5 << "" <= (null != 3)) / !(-5 !== 0))] += {} / 3;
                            }(), a_1 = b = a;
                            if (a++ + --b) {
                                c = 1 + c, (false > 3 || this / this) <= (c = c + 1, "" - null);
                            } else {
                                var brake95 = 5;
                                do {
                                    c = 1 + c, c = c + 1, (38..toString() | 3) ^ (b_2 = [ , 0 ].length === 2 ^ 0);
                                } while ((c = 1 + c, (3 > /[a2][^e]+$/) - !0 ^ (-3 >= this && -2 < 3)) && --brake95 > 0);
                            }
                        }
                    }:
                    break;

                  default:
                    b_2 = -(("b" != "number") + ([] != []) != ((NaN, 25) !== (b_2 >>= -5 && "")));
                    var b_2_2 = (c = c + 1) + a_2;
                }
            }
        }
        break;

      case -0:
        try {
            {
                var brake100 = 5;
                while (--b + (0 === 1 ? a : b) && --brake100 > 0) {
                    {
                        var expr102 = -b;
                        for (var key102 in expr102) {
                            c = 1 + c;
                            var a = expr102[key102];
                            {
                                var brake103 = 5;
                                do {
                                    switch ("undefined") {
                                      case (c = c + 1) + null:
                                        c = 1 + c, ("bar" >>> "undefined" === (5 !== 38..toString())) / ((foo_1 && (foo_1[c = 1 + c, 
                                        (a_2 && (a_2.b += 0 >= /[a2][^e]+$/)) % ([ , 0 ].length === 2 === -3) * ((3 ^ 2) >> (a_2 = [ , 0 ][1] >>> -4))] = "b" == -3)) & (22 ^ -2));
                                        break;

                                      case b += a:
                                        break;

                                      case --b + (b_2 && b_2.var):
                                        c = 1 + c, delete ((foo_1 && (foo_1.foo += "bar" >> "function")) < (-0 <= 5));
                                        c = 1 + c, a_2 = ("undefined" / "function" | "number" === false) >>> (("c", NaN) === (-2 === 22));

                                      case "undefined":
                                        c = 1 + c, (3 >>> 25 | -1 % 4) >= (0 << 5 ^ 24..toString() & -2);
                                        break;
                                    }
                                } while (void function() {}() && --brake103 > 0);
                            }
                        }
                    }
                    try {
                        var a = [ (c = 1 + c, 3 < 24..toString() === (a_2_2 ^= NaN & 1) & (3 ^ "number") !== - -2), (c = 1 + c, 
                        (this & true) + ("object", 23..toString()) == (0 - -2) / (NaN | -5)), (c = 1 + c, 
                        (a_2[c = 1 + c, delete (-2 && 4) === 2 / -0 - (undefined >= 25)] ^= "object" >>> "c") >> "" * this !== ((b_2[c = 1 + c, 
                        ("a" << undefined !== [ , 0 ][1] >>> 5) < (3 <= true === "foo" - /[a2][^e]+$/)] += -0 > 24..toString()) & (4, 
                        [ , 0 ][1]))), (c = 1 + c, -3 >> -3 > (c = c + 1, "undefined") !== (b_2_2.c = "b" / false >>> (5, 
                        "a"))), ,  ].c, b_2_2 = b >>= a;
                    } catch (b_2) {
                        a++ + ~(c = c + 1, "number" >> "undefined" !== (-4 && "bar"));
                    }
                }
            }
        } catch (parseInt_1) {
            {
                var brake113 = 5;
                L27174: do {
                    {
                        var brake114 = 5;
                        do {
                            void ("bar" >> "function") < (38..toString() << "bar" || true == "a");
                        } while (+function() {
                            {
                                var brake116 = 5;
                                do {
                                    {
                                        var brake117 = 5;
                                        do {
                                            c = 1 + c, parseInt_1 && (parseInt_1.a /= (a_2_2 && (a_2_2.Infinity += void this >>> ("object" >= 38..toString()))) % ("" || -1 || a_2_2 && (a_2_2.in = (this, 
                                            undefined))));
                                        } while ((c = 1 + c, c = c + 1, ("number" || 38..toString()) >>> this - -2) && --brake117 > 0);
                                    }
                                } while (--b + [] && --brake116 > 0);
                            }
                            var a_1 = b--;
                        }() && --brake114 > 0);
                    }
                } while (--b + a_2_2 && --brake113 > 0);
            }
            {
                var brake120 = 5;
                do {
                    for (var brake121 = 5; [ ++a, (c = c + 1) + ((false && Infinity) >> (3 ^ [ , 0 ][1]) < ("undefined" >>> 25 == (b_2_2 && (b_2_2[c = 1 + c, 
                    (4 || -5) >= -0 << 3 == (23..toString() === true) + (this === "")] = ([ , 0 ].length === 2) >> 0)))) ] && brake121 > 0; --brake121) {
                        if (a++ + ((c = c + 1) + typeof typeof (c = 1 + c, (-0 !== "foo" !== (NaN, "function")) << ((-0 !== [ , 0 ][1]) << (25 | /[a2][^e]+$/))))) {
                            switch (b_2) {
                              case [ (c = 1 + c, (-5 >= 5) % (c = c + 1, 5) || 1 * 0 % ("c" > "a")), (c = 1 + c, 
                                ([ , 0 ].length === 2 || undefined) - ([ , 0 ].length === 2 == 24..toString()) !== (null >> /[a2][^e]+$/) / ("foo" && [])), (c = 1 + c, 
                                ("number" - "undefined" << "foo" % -2) % (b_2[typeof f2 == "function" && --_calls_ >= 0 && f2((c = 1 + c, 
                                "function" >>> {} >> (foo_1 && (foo_1[c = 1 + c, (-0 != "undefined") - (24..toString() < undefined) && 5 + 4 === "function" * "bar"] = 24..toString() & 38..toString())) < (c = c + 1, 
                                -true)))] = ([ , 0 ].length === 2) <= -4 >= (-0 <= 23..toString()))), (c = 1 + c, 
                                (2 != 4) < (false || this) && (3 << "b" || "function" ^ -5)), (c = 1 + c, delete 25 & ("function", 
                                25), foo_1 = 25 >= ([ , 0 ].length === 2) || "bar" !== this) ]:
                                continue;
                                break;

                              case (c = c + 1) + +(Infinity << "object" << 38..toString() + 1 ^ (-1 || undefined) <= (1 <= 4)):
                                for (var brake125 = 5; (c = 1 + c, b_2 && (b_2[b + 1 - .1 - .1 - .1] <<= (c = c + 1, 
                                [ , 0 ][1] - 1) && (foo_1 && (foo_1.null += 2 || [ , 0 ][1])) | -5 >>> 23..toString())) && brake125 > 0; --brake125) {
                                    c = 1 + c, delete (-5 && "object") >>> ((foo_1 += null ^ 1) | (c = c + 1, 5));
                                }

                              case --b + (typeof b_2 == "function" && --_calls_ >= 0 && b_2((c = 1 + c, (c = c + 1, 
                                "undefined" >= 24..toString()) > undefined % 5 + (5, Infinity)), [ , 0 ].length === 2)):
                                break;

                              case a++ + /[abc4]/.test((a++ + a++ || b || 5).toString()):
                                break;
                            }
                        } else {
                            ({
                                null: (c = 1 + c, ((c = c + 1, []) - ([] | "object")) * (~"b" << 0 + -4))
                            }).b;
                        }
                    }
                } while (((c = c + 1) + foo_1 || a || 3).toString() && --brake120 > 0);
            }
        } finally {
            {
                var b_2 = function f3(undefined_2, c, a_2_1) {
                    c = c + 1;
                    {
                        var expr130 = --b + (b = a);
                        for (var key130 in expr130) {
                            {
                                var expr131 = {};
                                L27175: for (var key131 in expr131) {
                                    c = 1 + c;
                                    var b_2_2_2 = expr131[key131];
                                    {
                                    }
                                }
                            }
                        }
                    }
                }((c = c + 1) + b--, (c = c + 1) + {
                    null: (c = c + 1) + b_2,
                    get NaN() {
                        c = 1 + c, 24..toString() != "undefined" === undefined >>> "c" != ("c" >>> 38..toString() | (b_2 && (b_2[c = 1 + c, 
                        (b_2 && (b_2.c >>>= "object" >>> "object")) % (-1 * -3) / (2 >= "c" || b_2 && (b_2.undefined += -2 / -0))] = 5 % [ , 0 ][1])));
                        {
                            throw c = 1 + c, b_2 && (b_2.b += true && "foo" && -4 <= 24..toString() || ([] | 23..toString()) ^ 4 * -5);
                        }
                    },
                    a: --b + (typeof a_2_2 == "function" && --_calls_ >= 0 && a_2_2((c = 1 + c, (4 == null && false >> 0) % (4 >> 25 & 24..toString() % 0)), false))
                }[a++ + b_2]);
            }
            try {
                c = c + 1;
            } finally {
                var b_2 = --b + (b &= a);
                for (var brake138 = 5; b++ && brake138 > 0; --brake138) {
                    try {
                        {
                            var brake140 = 5;
                            while (a++ + void b && --brake140 > 0) {
                                c = 1 + c, (5 + "") * (b_2.Infinity += [] & undefined) ^ ("undefined" >> 24..toString() | 2 !== 24..toString());
                            }
                        }
                    } catch (b) {
                        {
                        }
                    } finally {
                        c = 1 + c, /[a2][^e]+$/ >= -2 < (-4 >= "a") < (delete NaN <= (23..toString() && 38..toString()));
                    }
                }
            }
        }
        switch (((1 === 1 ? a : b) || 6).toString()[typeof parseInt_1 != "undefined"]) {
          case (c = c + 1) + (b += a):
            --b + typeof ((c = c + 1) + 2);
            break;

          case b_2 = (38..toString() / "foo" !== 24..toString() << /[a2][^e]+$/) % (b_2_2 && (b_2_2.b = this / 22 << (24..toString() ^ "function"))):
            {
                var brake148 = 5;
                do {
                    L27176: for (var brake149 = 5; a++ + /[abc4]/.test((a++ + (-({} + true) + (23..toString() === /[a2][^e]+$/ == void 0) || a || 3).toString() || b || 5).toString()) && brake149 > 0; --brake149) {
                        --b + (b = a);
                    }
                } while ("bar" && --brake148 > 0);
            }
            {
                var Infinity_1 = function f4(a, b_2) {
                    try {
                        typeof f4 == "function" && --_calls_ >= 0 && f4();
                    } finally {
                        try {
                            c = 1 + c, (c = c + 1, "c" % /[a2][^e]+$/) | "undefined" >= "foo" < "a" % "object";
                        } finally {
                        }
                        L27177: {
                        }
                    }
                    if ([ (c = 1 + c, ("function" !== 1 == "" / {}) < (this != "c" == (b_2 *= "b" * 5))), (c = 1 + c, 
                    true % "a" % (-3 >= /[a2][^e]+$/) !== (b_2 && (b_2.NaN = (b_2 = /[a2][^e]+$/ !== 22) << Infinity * this))), (c = 1 + c, 
                    ("c" !== null ^ -5 >>> "") == (b_2_2 %= 25 || null) >= ("number" && [])), (c = 1 + c, 
                    b_2 && (b_2[+function() {
                        c = 1 + c, ("number" > -0 ^ /[a2][^e]+$/ - 1) >> (void null || null <= "function");
                        c = 1 + c, (-2 != 25) >>> ("object" ^ /[a2][^e]+$/) | void (/[a2][^e]+$/ != "c");
                        c = 1 + c, (1 << -1) * (b_2 && (b_2.NaN = "undefined" < "")) !== (NaN !== undefined === (c = c + 1, 
                        /[a2][^e]+$/));
                        c = 1 + c, ("" | 25) ^ ("number" && 23..toString()), ([ , 0 ][1] >= null) >>> false / "c";
                    }()] /= (22 < 24..toString() | (b_2 && (b_2[c = 1 + c, ([ , 0 ][1] >>> -1 || this < 2) < (24..toString() << 24..toString() == (2 == "b"))] -= NaN / "b"))) !== "foo" < 0 >= (true == "undefined"))), (c = 1 + c, 
                    b_2_2 && (b_2_2[{
                        1.5: (c = 1 + c, b_2 && (b_2[--b + --b] -= this <= 3 !== (3 === 4) == (b_2 += -0 >> null) >> ([] && -4))),
                        1.5: (c = 1 + c, (-0 - NaN ^ "a" !== 1) === ((c = c + 1, 2) === (2 !== "object")))
                    }[(c = c + 1) + a++]] = (-0 << "c") * (4 <= 0) >>> 24..toString() % -5 * (3 | "bar"))) ].b) {
                        return (c = c + 1) + [ (c = 1 + c, (([] === -0) <= 38..toString() % 3) % (([ , 0 ].length === 2) - NaN >> 1 / "function")), (c = 1 + c, 
                        ([ , 0 ][1] << 2 < ([] === -1)) >> (b_2 && (b_2.undefined = (5 | "") >> (b_2 = 24..toString() - 2)))), (c = 1 + c, 
                        ~(this >>> "foo") != (c = c + 1, 1, a_2_2 && (a_2_2.in += ([ , 0 ].length === 2) >= "object"))) ];
                    }
                }(a++ + {}.NaN);
            }
            break;

          default:
            {
                var brake163 = 5;
                L27178: do {
                    {
                        var b_1 = function f5(bar_1, a, arguments) {
                            {
                                var brake165 = 5;
                                do {
                                    var a_1 = (c = 1 + c, ("" | "") > (c = c + 1, "object") < ((a_1[c = 1 + c, (Infinity >>> 2 ^ delete undefined) != (a_2_2 && (a_2_2[a++ + -4] = 5 - /[a2][^e]+$/ <= !0))] &= "function" !== Infinity) ^ 38..toString() === "b")), foo = (c = 1 + c, 
                                    (foo_1 && (foo_1[a++ + ((c = 1 + c, +(b_2_2 && (b_2_2[c = 1 + c, (NaN === null) > (bar_1 && (bar_1[c = 1 + c, 
                                    (-5 && "" || "number" ^ -0) > ("number" > this) % (5, "number")] = 38..toString() / Infinity)) != -([ , 0 ].length === 2) <= ("function" || "number")] = "" >> -3)) <= (-2 >>> "function", 
                                    -2 | "foo")) ? (c = 1 + c, (/[a2][^e]+$/ <= ([ , 0 ].length === 2)) % (true & "function") / ((-1 ^ 23..toString()) % ("object" / 22))) : (c = 1 + c, 
                                    (1 ^ 1 && (bar_1 && (bar_1.NaN = ([ , 0 ].length === 2) * 22))) === (~-4 != "a" - 22)))] = 0 !== -0 || "undefined" * true)) > ((c = c + 1, 
                                    2) && (c = c + 1, 3)));
                                } while (--b && --brake165 > 0);
                            }
                            {
                                var brake167 = 5;
                                L27179: while (--b && --brake167 > 0) {
                                    L27180: {
                                    }
                                }
                            }
                        }(typeof (c = 1 + c, c = c + 1, null >= 2 ^ (-3 && 22)));
                    }
                } while (a++ + (typeof f3 == "function" && --_calls_ >= 0 && f3()) && --brake163 > 0);
            }
            {
                var expr169 = a++ + {}.length;
                for (var key169 in expr169) {
                }
            }

          case --b + (a++ + -a || 0).toString()[(a_2 && a_2[--b + (typeof f1 == "function" && --_calls_ >= 0 && f1(0 === 1 ? a : b))] || 3).toString()[a++ + /[abc4]/.test(([ typeof Infinity_1 == "function" && --_calls_ >= 0 && Infinity_1((c = 1 + c, 
            ([ , 0 ].length === 2) / 3 | (foo_1 -= true < 25) || (b_2 && (b_2[c = 1 + c, (c = c + 1, 
            undefined ^ 5) + (-1 % "undefined" - ("function" !== /[a2][^e]+$/))] <<= "a" / 3)) !== ("function" !== "object")), (c = 1 + c, 
            (-3 > ([ , 0 ].length === 2) || -4 >> "number") - (22 - "c" << (22 !== "bar")))) ].length || b || 5).toString())]]:
            break;
        }
        break;
    }
} catch (b_2_2_1) {
    {
        {
            var foo_1 = function f6(a_2, bar) {
                try {
                    try {
                        return [ (c = 1 + c, 3 + false >> ("function" || "undefined") <= "number" % -5 << (a_2 && (a_2[c = 1 + c, 
                        delete /[a2][^e]+$/ * (23..toString() === "undefined"), b_2 && (b_2[(c = c + 1) + /[abc4]/.test(((c = 1 + c, 
                        (b_1 >>>= ([ , 0 ].length === 2) % Infinity - ("undefined" << 24..toString())) >> (5 << "a" >>> (undefined || -1))) || b || 5).toString())] = undefined * "function" && ("number", 
                        22))] = 0 === "bar"))), (c = 1 + c, (-3 <= "function") >> (-3 && []) <= (0 * "undefined" ^ (-4 | NaN))) ][c = 1 + c, 
                        ((23..toString() ^ 25) != 1 % null) * (true * Infinity != "bar" >>> 25)];
                    } catch (b_2) {
                        var arguments;
                        c = c + 1;
                    } finally {
                        {
                            var expr178 = (c = 1 + c, 0 + "bar" < (NaN === 0) || "foo" % 4 === (undefined | "c"));
                            for (var key178 in expr178) {
                                c = 1 + c;
                                var a_1 = expr178[key178];
                                c = 1 + c, ((-3 | 25) <= ("b" < -3)) >>> ("b" >>> "function") + ("bar" >= NaN);
                            }
                        }
                        {
                        }
                    }
                } catch (b_1) {
                    {
                        var expr181 = (undefined == 22 != -0 + false) >= ((NaN != 2) > (Infinity <= []));
                        for (var key181 in expr181) {
                            {
                                var expr182 = (c = 1 + c, -5 << "b" >= (4 < 25) ^ -5 % -1 << (24..toString() === "undefined"));
                                for (var key182 in expr182) {
                                    c = 1 + c, delete ((b_2 && (b_2[c = 1 + c, (b_1 = (null == 2) < (-0 ^ "undefined")) > ([ , 0 ][1] % -3 > 4 * 5)] >>= 0 === 38..toString())) % ("c" & NaN));
                                }
                            }
                        }
                    }
                    switch ([ (c = 1 + c, ({} & 22) === (b_2 = 1 || "number") !== (b_1 && (b_1[c = 1 + c, 
                    ((c = c + 1, Infinity) && (c = c + 1, "a")) !== -(2 % 5)] = true << "foo")) >>> (2 >= "")), (c = 1 + c, 
                    (4 > NaN == "object" >>> -0) >>> ((NaN ^ "c") == (0 | 0))), (c = 1 + c, c = c + 1, 
                    22 != 38..toString(), 4 << "bar" >> 23..toString() - "object") ][c = 1 + c, ("function" == undefined != "function" % 22) >= ((22 | true) == ("b" != 4))]) {
                      default:
                        c = 1 + c, b_2 && (b_2[--b + {}[a++ + (b_2 += (c = 1 + c, (2 <= "a" & (foo_1 && (foo_1[c = 1 + c, 
                        "undefined" + -4 === ([ , 0 ][1], true) ^ (delete "" || 4 & "object")] *= ("c", 
                        3)))) >>> ("number" >>> /[a2][^e]+$/ ^ -1 + "foo")))]] *= (-5 / 0 | (b_2 += ([ , 0 ][1], 
                        -5))) / ("a" % -0 > (false && NaN)));
                        c = 1 + c, -1 >= ([ , 0 ].length === 2) > "undefined" << "bar" ^ (Infinity_1 && (Infinity_1.var = (false ^ 22) == "" << 24..toString()));

                      case 1 === 1 ? a : b:
                        break;

                      case (c = c + 1) + (typeof f2 == "function" && --_calls_ >= 0 && f2((c = 1 + c, -5 > 1 !== (4 !== 24..toString()) === (1 | "c") > (0 >= "function")))):
                        c = 1 + c, (-4 ^ -5) > (22 > null) | (2 || "c") <= ([ , 0 ][1] & "undefined");
                        break;

                      case a++ + (Infinity_1 += (c = 1 + c, ([] <= 2 < (-5 === 5)) + (3 >> "number") % (1 ^ 38..toString()))):
                        c = 1 + c, (-0 ^ -1 ^ -2 === "function") + ((b_1 = -1 >> "a") - (-4, 5));
                        break;
                    }
                }
                {
                    var expr189 = +((foo_1 && (foo_1.NaN += ("function" ^ 5) << (-4 | 38..toString()))) != (/[a2][^e]+$/ | []) << this * []);
                    L27181: for (var key189 in expr189) {
                        for (var brake190 = 5; typeof a_2_2_1 === "special" && brake190 > 0; --brake190) {
                            switch (0 === 1 ? a : b) {
                              case a++ + /[abc4]/.test(((c = 1 + c, (null / 2, c = c + 1, -5) || Infinity >> 4 > (-4 || 1)) || b || 5).toString()):
                                c = 1 + c, (22 > "object" || ([ , 0 ].length === 2) <= 1) <= (null - 38..toString() | (23..toString(), 
                                "undefined"));
                                c = 1 + c, a_2 && (a_2.null = (b_2 && (b_2.c = (22 != {}) < (a_2_2 = true ^ "a"))) <= ("undefined" !== NaN & [ , 0 ][1] % 38..toString()));
                                break;

                              case [ (c = 1 + c, +((a_1 && (a_1.undefined += -4 === "c")) ^ ([ , 0 ].length === 2 ^ 22))) ][c = 1 + c, 
                                ~(null == 1) === (-5 - "bar" | (b_1 && (b_1[c = 1 + c, (c = c + 1, "c") * (38..toString() >= [ , 0 ][1]) ^ (b_2 && (b_2[[ (c = 1 + c, 
                                (25 < -5 != {} >>> -0) * (24..toString() + "function" | ([ , 0 ].length === 2) > "function")) ].length] -= "b" << 4 === ("a" == ([ , 0 ].length === 2))))] = "function" & "b")))]:
                                break;

                              case c = 1 + c, b_2 && (b_2[--b + ((c = 1 + c, -23..toString() > (22 | 0) && (1 || -0) > ("c" && [ , 0 ][1])) || 8).toString()[c = 1 + c, 
                                b_1 &= this + 3 != "b" >> "number" != (("object", this) != ("object" && "number"))]] += ([ , 0 ][1] >>> 3) + "" * "c") || ("function" >>> 38..toString(), 
                                /[a2][^e]+$/ != -2):
                                c = 1 + c, Infinity * -3 * (this & -4) || b_2 && (b_2[a++ + (1 === 1 ? a : b)] *= "" === -5 == (3 === "c"));
                                break;

                              case (c = c + 1) + typeof (c = 1 + c, (a_2 && (a_2[c = 1 + c, (/[a2][^e]+$/ * "c" < (foo_1 && (foo_1[c = 1 + c, 
                                ("c" >= "c", [ , 0 ][1] & 2) << (-3 * ([ , 0 ].length === 2) && 1 >>> "c")] = 0 < 1))) % ("bar" % "bar" != (25 && 23..toString()))] = 22 < "number")) * ("c" >>> NaN) > (24..toString() != 25 === ([] ^ 0))):
                                c = 1 + c, c = c + 1, (2 == 22) % delete "a";
                                c = 1 + c, ({} ^ "object") / (23..toString() && "b") >> ("number" < -4 < (this, 
                                25));
                                break;
                            }
                        }
                    }
                }
            }("foo");
        }
        {
            var expr197 = b_2 && b_2.foo;
            L27182: for (var key197 in expr197) {
                try {
                } catch (b_2_1) {
                    {
                        if ((c = c + 1, -3 != this) & (24..toString() <= -3) >>> ("undefined" !== 25)) {
                        } else {}
                        typeof f4 == "function" && --_calls_ >= 0 && f4(true);
                        var bar_2;
                        {
                            var brake206 = 5;
                            do {
                                L27183: for (var brake207 = 5; (c = 1 + c, undefined / 25 && (Infinity_1 && (Infinity_1[c = 1 + c, 
                                (2 << 0 & 3 != -2) >>> ((true > 1) << ("b" || 4))] >>>= "b" ^ 4)) || (([ , 0 ].length === 2) >= -0) >> (b_2_2_1 && (b_2_2_1[c = 1 + c, 
                                (NaN >= -1) % (-0 === 3) << ((/[a2][^e]+$/ || 22) < -5 << "c")] += this === 0))) && brake207 > 0; --brake207) {
                                    c = 1 + c, (1 || 1) / ("function" / -4) || (undefined > /[a2][^e]+$/) >> 25 + 3;
                                }
                            } while (--b && --brake206 > 0);
                        }
                    }
                    var a = (c = c + 1) + (a_2_2 && a_2_2[a--]), a_2_2 = (c = c + 1) + void (-1 === 24..toString() == (b_2_2 && (b_2_2.b = 5 != -3)));
                }
            }
        }
        c = c + 1;
        try {
            if ((c = c + 1) + (bar_2 && bar_2[b = a])) {
                --b + [ a++ + void a, [ (c = 1 + c, (NaN <= 3 == ("b" | 0)) - ((b_2_2_1 && (b_2_2_1[c = 1 + c, 
                b_2 && (b_2[foo_1 = (25 >= -5) * (this < Infinity) << (b_1 && (b_1[[ (c = 1 + c, 
                5 / "function" + ("b" == "b") || (c = c + 1, {} | 2)), (c = 1 + c, (4 ^ 24..toString()) >= "number" << "object" || (22, 
                undefined) * (false / 0)) ][c = 1 + c, ((Infinity & 22) > ("" == NaN)) >> void ("undefined" > "bar")]] = (3 ^ -1) - (-2 >> -5)))] >>>= (foo_1 += [] / false && -5 - false) | (a_2_2 += 22 % "undefined") - (4 & -3))] = "function" - -1)) | (a_2_2 += (5, 
                -1)))), (c = 1 + c, (25 && 3) < (-3 ^ 5) <= (a_2_2 && (a_2_2.b += "" ^ "c") && "bar" < "a")), (c = 1 + c, 
                (3 === 23..toString() ^ (-0, Infinity)) * (23..toString() >> "c" < ([ , 0 ].length === 2) >>> true)), (c = 1 + c, 
                c = c + 1, !(NaN === "undefined")) ], (c = c + 1) + (a_2 && a_2.b), typeof b_1 == "unknown" ].c;
            } else {
                L27184: for (var brake214 = 5; (foo_1 && (foo_1.a = "function" ^ 0)) << 24..toString() * true <= (foo_1 && (foo_1.b = (c = c + 1, 
                "a") != ("undefined" == 38..toString()))) && brake214 > 0; --brake214) {
                    L27185: {}
                }
            }
        } catch (foo) {
            var b_2_2 = (c = c + 1) + a++, b_2 = a++ + (0 === 1 ? a : b);
            {
                {
                    var brake218 = 5;
                    while (/[abc4]/.test((--b + {
                        Infinity: (c = 1 + c, c = c + 1, this + "object" >= NaN >>> 2)
                    }[c = 1 + c, ("c" != "object", {} >>> -2) >= (-3 ^ "undefined", "c" ^ Infinity)] || b || 5).toString()) && --brake218 > 0) {
                        switch (--b + a_2_2) {
                          default:
                            c = 1 + c, ("undefined" % false ^ (false ^ undefined)) * ((c = c + 1, -4) <= ("bar" > "b"));

                          case a++ + "bar":
                            c = 1 + c, (4 > ([ , 0 ].length === 2)) + (3 >>> "foo") | 4 / "object" % (24..toString() || 24..toString());
                            c = 1 + c, false < 3 >= (-2 >= 3), [] | "function", this || "";
                            break;

                          case foo_1 += (c = 1 + c, (4 > 0) >> (b_2 = "" === "a") << (NaN | -1 && [ , 0 ][1] & "foo")):
                            break;

                          case 0 === 1 ? a : b:
                            c = 1 + c, (b_2 && (b_2.NaN += 5 == -2) && (b_2 /= 3 == -2)) * (38..toString() > Infinity, 
                            "function" < {});
                            c = 1 + c, ({} << -4) % (-0 & [ , 0 ].length === 2) * (-4 / 2 & "object" >> undefined);
                            break;
                        }
                    }
                }
            }
        }
    }
    {
        var foo = function f7() {
            function f8(b_1, b_2_1, b_2_2_2) {
                function f9() {
                    c = 1 + c, (c = c + 1, NaN / true) + ([ , 0 ][1] * 38..toString() | (c = c + 1, 
                    "number"));
                    c = 1 + c, 23..toString() * Infinity + (-2 - "c") ^ (0 | 23..toString()) >= (c = c + 1, 
                    0);
                }
                var b_2_1 = f9({}, (c = 1 + c, ([ , 0 ][1] || "a") < (b_2 += ("", 23..toString())) >= ("function" == "object" ^ (NaN | 38..toString()))), (c = 1 + c, 
                ([] !== Infinity | void "c") & 1 % 38..toString() == Infinity >>> -5));
                function f10(b_1_1, bar_2_2) {
                    c = 1 + c, delete ((c = c + 1, this) === delete true);
                    c = 1 + c, 0 && 38..toString() || (4, -5) || 25 ^ 2 | -2 + -3;
                }
                var b_2 = f10();
                function f11(a_2_2_2, a_2_2_2_2, b_2) {
                    c = 1 + c, -((38..toString(), this) != /[a2][^e]+$/ << 3);
                    c = 1 + c, 22 / ([ , 0 ].length === 2) / ([ , 0 ][1] + 23..toString()) || delete (3 ^ this);
                }
                var foo_2 = f11((c = 1 + c, undefined << Infinity ^ (c = c + 1, -3) ^ (-2 && 25) - "c" / 22));
            }
            var undefined_1 = f8([ , 0 ][1], "function", (c = c + 1) + !function() {
                c = 1 + c, (b_2 && (b_2[2] <<= (b_2 = 2 == -0) != (23..toString() && "b"))) >= ("undefined" - "bar", 
                "a" !== "c");
                c = 1 + c, (-1 | 24..toString()) < ({} < NaN) === (+[] || null === -3);
            }());
            function f12(b, b_2_2_2, NaN_2) {
                try {
                } finally {
                    c = 1 + c, -(NaN_2 += !false * (-3 / "object"));
                    c = 1 + c, b_2_2 ^= (3 % null || NaN & 1) != false < NaN > 3 >>> -1;
                }
                for (var brake238 = 5; --b + {}[c = 1 + c, (b_2 && (b_2.Infinity = (c = c + 1, this) - (c = c + 1, 
                "undefined"))) >>> (("a" > undefined) >>> (true != -5))] && brake238 > 0; --brake238) {
                    if (c = 1 + c, Infinity_1 += ("c" && "b") / (0 >> 24..toString()) > (b_2_2_2 && (b_2_2_2.a += 22 >= ([ , 0 ].length === 2))) >> (/[a2][^e]+$/ !== NaN)) {
                        c = 1 + c, (("bar", Infinity) || /[a2][^e]+$/ < "foo") >= ((c = c + 1, null) >= ("a" && -3));
                    }
                }
            }
            var b_2_2_1 = f12(5, 0 === 1 ? a : b);
            function f13() {
                function f14(c_2, a_2_2_1) {
                    c = 1 + c, (("c" | 23..toString()) ^ (bar_2 = -1 == undefined)) <= ("undefined" === NaN) + null * this;
                    c = 1 + c, ((a_2_2_1 && (a_2_2_1[c = 1 + c, "a" << {} << ([] ^ [ , 0 ][1]) >= (b_1 && (b_1[--b + (foo_1 && foo_1[c = 1 + c, 
                    b_2_2_1 >>= (("bar" && "a") !== 5 / 3, delete (undefined_1 /= "a" !== /[a2][^e]+$/))])] += ("" && 1) << (null && Infinity)))] += "function" ^ -1)) <= (Infinity !== Infinity)) >>> (b_2_2_1 ^= (24..toString(), 
                    [ , 0 ][1]) && ([ , 0 ].length === 2) <= "undefined");
                }
                var bar_1 = f14();
            }
            var b_2_2_1_1 = f13(--b + /[abc4]/.test((!((c = c + 1, 0) / ("a" < "function") / ((-3 | "undefined") & (b_2 && (b_2[c = 1 + c, 
            (0 === 4) - ("" || 24..toString()) >> ("a" ^ "function" | 24..toString() <= 1)] += 0 < true)))) || b || 5).toString()), NaN);
            function f15(a_2_2_1, Math_2, Infinity_1) {
                if (void b) {
                    var brake244 = 5;
                    while ((c = 1 + c, (c = c + 1, this >= "object") << (bar_2 && (bar_2.foo += "object" >>> 3 >> (1 & null)))) && --brake244 > 0) {
                        c = 1 + c, (c = c + 1, [ , 0 ][1] - ([ , 0 ].length === 2)) % ((38..toString() && this) * ("c" <= "bar"));
                    }
                } else if (c = 1 + c, (-0 == -2) - (null << Infinity), -4 * null * (-3 === Infinity)) {
                    c = 1 + c, /[a2][^e]+$/ + "" | 22 ^ true || (25 ^ "b") >= (undefined != 1);
                } else {
                    c = 1 + c, (("bar" | "b") != (-5, "")) >> (b_2 *= (23..toString() & "number") / ("number", 
                    "undefined"));
                }
                {
                    var brake249 = 5;
                    while ((c = c + 1) + ((c = 1 + c, (("number" | 23..toString()) ^ "function" % "number") - [ , 0 ][1] % 23..toString() % (1 >>> 0)) ? (c = 1 + c, 
                    (undefined <= this || undefined / []) <= ({} === "bar") << "b" + 2) : (c = 1 + c, 
                    Infinity != -1 != (5 || 5) & (+24..toString() ^ (a_2_2 /= "" + this)))) && --brake249 > 0) {
                    }
                }
            }
            var b_2_2_2 = f15((c = c + 1) + (b_2 && b_2[a++ + (b &= a)]));
        }(a++ + b_2_2);
    }
} finally {
    for (var brake251 = 5; a++ + b_2 && brake251 > 0; --brake251) {
        L27186: for (var brake252 = 5; {
            var: --b + (b = a),
            0: [ --b + foo_1, typeof b_2 == "function" && --_calls_ >= 0 && b_2(this, 4), a++ + (b = a), (c = c + 1) + ((c = c + 1) + (b >>= a) || 5).toString()[{
                0: (c = 1 + c, "b" >> -3 > (c = c + 1, "a") === (22 >= "") * (undefined / -4)),
                foo: (c = 1 + c, ("a" * -0 | -3 << -1) > (-5 == true !== ("function" || [ , 0 ].length === 2)))
            }[1]], --b + {
                b: foo_1,
                0: (25 - false) % (NaN & 4) == (b_2 && (b_2[--b + {
                    in: (c = 1 + c, ("b" && 4) !== void /[a2][^e]+$/ != "" >>> "function" << (-4 & 3)),
                    1.5: (c = 1 + c, c = c + 1, b_2 && (b_2.in += 25 != 23..toString() !== (-1 === 5))),
                    undefined: (c = 1 + c, (2 && 0) <= ("undefined" || Infinity) && [] % 1 >> (22 ^ 38..toString())),
                    in: (c = 1 + c, b_1 && (b_1.b += delete (38..toString() / ([ , 0 ].length === 2)) < (NaN - NaN) / (NaN >= false))),
                    NaN: (c = 1 + c, ((b_2 && (b_2.var *= null * undefined)) < 5 * {}) * ([ , 0 ][1] >> undefined & 0 != -4))
                }.a] += -1 > false ^ (foo_1 && (foo_1[c = 1 + c, (!"" > "c" / this) >> (Infinity >= "b" || "undefined" | "a")] <<= 4 & -5)))),
                var: {
                    var: (c = 1 + c, +({} >>> "a" & "a" << -0)),
                    b: (c = 1 + c, 24..toString() / 22 * ("number" !== this) || 23..toString() + [ , 0 ][1] >= ("foo", 
                    -0))
                }.var
            } ]
        } && brake252 > 0; --brake252) {
            var a_1 = -((b_2 && (b_2[(c = c + 1) + function() {
            }] >>= ("function" || {}) ^ {} >>> "")) << (2 ^ 23..toString()) + 3 / 3), arguments_2 = ((c = c + 1) + ((this >= Infinity ^ [ , 0 ].length === 2 == 0) > (23..toString() > []) - ([ , 0 ].length === 2 ^ "number")) || a || 3).toString();
        }
    }
    {
        var parseInt_1 = function f16(b_1) {
            {
                var brake256 = 5;
                L27187: while (--b + ++a && --brake256 > 0) {
                    var brake257 = 5;
                    do {
                        var b_2_1 = !a;
                    } while (++b && --brake257 > 0);
                }
            }
        }(a++ + {
            b: [ typeof b_2_1 == "object", a++ + 22, ++a ],
            1.5: --b + (foo_1 ? a++ + (((-3 | true) != 4 << -0) + ([ , 0 ][1] - [] | {} != -1)) : --b + b_2),
            "\t": a_2_2 && a_2_2[b++],
            3: (((--b + --b || 4).toString()[b += a] || 9).toString()[--b + [ (c = 1 + c, "a" <= 38..toString() === ("number" ^ null) ^ (null !== "undefined" || 1 > {})), ,  ]] || a || 3).toString()
        }.Infinity);
    }
}

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

c += 1;

try {
    switch (--b + typeof (0 + a++)) {
      case a++ + typeof (a++ - ~(25 === (a && (a[c = 1 + c, 0] += !1)))):
        switch (--b, !1) {
          case (c += 1) + {
                NaN: !function _() {
                    if (!("" + (--b + "1"[_["" + (c = 1 + (c = 1 + (c = 1 + c)), -22)] %= 0, !0] || a || 3))) {
                        return b + 1 - .3;
                    }
                    for (var e = 5; 0 < e; --e) {
                        c = 1 + (c = 1 + c), c += 1;
                    }
                    switch (0) {
                      case a++ + !(0 != (_[c = 1 + c, 0] /= "bar" != this) & (_.b = "bar5")):
                        var r = (c = 1 + c, !0);
                        for (var o in r) {
                            c = 1 + c, _[_ ^ !1 & (_.NaN = 4)] = 22;
                        }
                        switch (c = 1 + c, !1 & (_.c = !0)) {
                          default:
                          case c = 1 + c, void 0 ^ (this || -4) + -1:
                          case c = 1 + c, !0:
                          case c = 1 + c, 5 * (_.foo = "0function") !== NaN:
                        }
                        break;

                      case _[_.a]:
                        throw c = 1 + c, !1;
                    }
                    if (--b + {
                        NaN: !1,
                        var: (c = 1 + (c = 1 + c), (_.c += (c += 1, -4 ^ (_.c >>= !1))) + !1)
                    }) {
                        try {
                            var f = (c = 1 + c, NaN);
                            for (var t in f) {
                                c = 1 + c, _.in <<= !0;
                            }
                        } catch (a) {
                            c = 1 + (c = 1 + c);
                        }
                    } else {
                        switch ([ (c = 1 + c, 0), (c = 1 + c, _[new function a() {
                            this.c += NaN & (a[c = 1 + c, 0 >>> "38" / (-0 !== this)] += !0);
                        }()] = 0 ^ (_.undefined ^= 0)), (c = 1 + c, -1) ]) {
                          case --b + [ (c = 1 + c, _.var >>= !1 * (!1 <= ("function" < this))), (c = 1 + c, 
                            0 >>> (c += 1, NaN)), ,  ].Infinity:
                          case --b + [][c = 1 + c, !1]:
                            break;

                          case (c += 1) + (c = 1 + c, (!1 <= (c += 1, !0)) - 16):
                            _.foo = !0 % (0 | (_[c = 1 + (c = 1 + c), (0 == (_.Infinity = 0)) > (_.Infinity += !0) + 5] += 24)), 
                            c = 1 + c;
                            break;

                          case 5 + a++:
                        }
                    }
                }(),
                "\t": a++ + {
                    length: a++ + a,
                    undefined: --b + (--b, c = 1 + (c = 1 + (c += 1)), a = 0),
                    0: "object" == typeof Math_2
                }["function" == typeof f1 && 0 <= --_calls_ && f1()],
                "\t": a && a[--b + !0]
            }["function" == typeof f1 && 0 <= --_calls_ && f1("function" == typeof f0 && 0 <= --_calls_ && f0(b = a, 25), !0)]:
          case --b + ("function" == typeof f0 && 0 <= --_calls_ && f0(-3, "number", new function() {
                this[--b + [ [ 0, (c = 1 + (c = 1 + c), (-3 != (a && (a[c = 1 + c, !1] %= !0))) / -0), ,  ] ].a] = !1 << !1 * (c += 1, 
                -3) > ({} === (a += 0)) >> (c += 1, NaN);
            }())):
            break;

          case --b + (c += 1, c += 1, -(a.Infinity %= 62)):
            switch ("" + ((c += 1) + typeof foo || a || 3)) {
              case !b:
              case {
                    null: (c += 1) + ("function" == typeof f1 && 0 <= --_calls_ && f1()),
                    "-2": (c += 1) + [ "" + (c = 1 + c, a || 3) ].null
                }:
              case {}[0 <= (c += 1, "object") != NaN]:
            }
            for (var brake29 = 5; --b + [ 2 === (a += !1) == -1, [ "", [].var, , b ].in ][a++ + a] && 0 < brake29; --brake29) {
                c += 1;
            }
            break;

          case [ !0 ].null:
            try {
                --b, a && a.b;
            } catch (c) {
                for (var brake33 = 5; --b, a++ + ++a && 0 < --brake33; ) {}
                var brake36 = 5;
                do {
                    var a_2 = void 0;
                } while (delete a && 0 < --brake36);
            } finally {
                c = 1 + c, a_2 && (a_2.b >>>= 0), c = 1 + (c = 1 + c), a_2 && (a_2.a += 6), c = 1 + c, 
                c += 1;
                for (var brake45 = 5; a++ + (c = 1 + c, 0 >> (a_2 && (a_2.a = 0)) ? (c = 1 + c, 
                !1) : (c = 1 + c, c += 1, "foo" << (c += 1, "38"))) && 0 < brake45; --brake45) {
                    var expr46 = (c = 1 + c, c += 1, c += 1, 22);
                    for (var key46 in expr46) {
                        c = 1 + c;
                        var b_2 = expr46[key46];
                        c = 1 + c;
                    }
                }
            }
            for (var brake48 = 5; a_2 && a_2.Infinity && 0 < --brake48; ) {
                if (("" + (a++ + {
                    1.5: b_2 = (b_2 && (b_2[[ (c = 1 + c, !1 + (!1 | void (c += 1))) ].c] -= NaN)) != -2 + (b_2 && (b_2.Infinity <<= 0)),
                    b: a++ + (a_2 && a_2.b),
                    null: a++ + a++
                }[a--] || 0))[/[abc4]/.test("" + (++a || b || 5))]) {
                    for (var brake50 = 5; (c += 1) + void 0 && 0 < brake50; --brake50) {
                        a++;
                    }
                } else {
                    try {
                        c = 1 + c, a_2 += NaN, c = 1 + (c += 1), b_2 = void (a_2 = NaN ^ (c += 1, !1));
                    } finally {
                        for (var brake56 = 5; 0 < --brake56; ) {
                            for (var brake57 = 5; c = 1 + c, !1 << (b_2 && (b_2.b = -48)) + !1 && 0 < brake57; --brake57) {
                                c = 1 + c, b_2 = this >> 5 || !1;
                            }
                        }
                        switch (--b + {
                            "\t": (511 == (b_2[c = 1 + (c = 1 + c), 0 ^ (c += 1, "b") || 0] >>>= NaN)) <= 0,
                            set undefined(c) {
                                this.NaN = NaN;
                            }
                        }[c = 1 + c, ((b_2 += 22) && 0) <= -1]) {
                          case a++ + ("function" == typeof a_2 && 0 <= --_calls_ && a_2(4, (c = 1 + c, 0))):
                            c = 1 + c, c += 1, c += 1;
                            break;

                          case /[abc4]/.test("" + (c = 1 + c, 1)):
                            c = 1 + c, a_2 ^= NaN;
                            break;

                          case a++ + +((b_2 && (b_2["boolean" != typeof b_1] -= !0 >> [] * this)) >>> NaN):
                            c = 1 + c;

                          case --b + []:
                        }
                    }
                }
            }
        }
        break;

      case --b + (b + 1 - .3):
        c += 1;
        break;

      case {
            0: a,
            undefined: a++ + [ a++ + [ [ a++ + ("function" == typeof f0 && 0 <= --_calls_ && f0((c = 1 + c, 
            !0))), b_2, !1 >> (this >> "38" ^ !0), b_2 = 22 / this < NaN <= 0, a++ + ("" + ((b_2 += "object" % this) % (a_2[c = 1 + (c = 1 + (c = 1 + c)), 
            1] = 0) || 3))[c = 1 + c, -((a_2 && (a_2[c = 1 + c, -1 >> (c += 1, b_2 = 0)] ^= 0)) <= !1)] ][c = 1 + c, 
            (b_2 && (b_2.a = (a_2 && (a_2[c = 1 + c, 5 == (b_2 *= !1) || (c += 1, !1)] = 0)) ^ "undefined" % this)) <= (0 !== (b_2[c = 1 + c, 
            b_2 && (b_2.var = 0)] = !0)) ? 38 & (c += 1, !1) : --b - b], [ --b + void 0, (c += 1) + a, , --b + a-- ]["object" == typeof bar_1] ][typeof (--b + new function() {}())], {}[b++], --b + ("function" == typeof f0 && 0 <= --_calls_ && f0(25)), (c += 1) + b-- ],
            c: b += a,
            3: a++ + ("function" == typeof f0 && 0 <= --_calls_ && f0((c += 1) + (b_2 = 1 + a++), "b")),
            null: a_2 = /[abc4]/.test("" + (b || b || 5))
        }:
        for (var brake64 = 5; b_2 && b_2[--b + b] && 0 < --brake64; ) {
            switch ("object" != typeof a_1) {
              case (c += 1) + (a_2 && (a_2[typeof {
                    1.5: void (c = 1 + c)
                }.length] += (a_2 && (a_2.a = 1)) > (a_2 = !1) - NaN)):
                var brake66 = 5;
                do {
                    var foo_1 = function(a, a) {
                        var b = (c = 1 + c, 0 | (a && (a.b += 0)) || 0);
                        for (var _ in b) {
                            c = 1 + c;
                        }
                        var e = (c = 1 + c, ((a && (a[c = 1 + c, NaN / (c += 1, {})] = -1)) != (a -= -4)) < !1 >>> (b_2 = 2 / -3));
                        for (var r in e) {
                            c = 1 + c;
                        }
                    }("24", a++ + [ !1 !== /[a2][^e]+$/ / this, , 3 * ((b_2 = !1) - "a"), (c = 1 + (c = 1 + (c = 1 + c)), 
                    ("24" <= (a_2 = 0)) >>> (b_2 = NaN)) ][c = 1 + (c += 1), !1]);
                } while ((NaN === (b_2 && (b_2.null = !0)) || (c += 1, 0)) && 0 < --brake66);
                var a_2_2 = void (c = 1 + (c = 1 + c));
                break;

              case --b - 112:
              case a++ + function() {}:
                break;

              default:
                b_2 = -(2 != (25 != (b_2 >>= "")));
                var b_2_2 = (c += 1) + a_2;
            }
        }
        break;

      case -0:
        try {
            for (var brake100 = 5; --b + b && 0 < --brake100; ) {
                var expr102 = -b;
                for (var key102 in expr102) {
                    c = 1 + c, a = expr102[key102];
                    var brake103 = 5;
                    switch ("undefined") {
                      case (c += 1) + null:
                        c = 1 + c, foo_1 && (foo_1[c = 1 + c, (a_2 && (a_2.b += !1)) % !1 * (1 >> (a_2 = 0))] = !1);
                        break;

                      case b += a:
                        break;

                      case --b + (b_2 && b_2.var):
                        c = 1 + c, foo_1 && (foo_1.foo += 0), c = 1 + c, a_2 = 0;

                      case "undefined":
                        c = 1 + c;
                    }
                }
                try {
                    a = [ !0 === (a_2_2 ^= 0) & !0, (!0 & this) + "23" == -.4, (a_2[c = 1 + (c = 1 + (c = 1 + (c = 1 + c))), 
                    !1] ^= 0) >> "" * this != (0 & (b_2[c = 1 + c, !1] += !1)), (c = 1 + c, c += 1, 
                    !1 !== (b_2_2.c = 0)), ,  ].c, b_2_2 = b >>= a;
                } catch (b_2) {
                    a++, c += 1;
                }
            }
        } catch (parseInt_1) {
            var brake113 = 5;
            do {
                var brake114 = 5;
                do {} while (+function() {
                    var a = 5;
                    do {
                        for (var _ = 5; c = 1 + c, parseInt_1 && (parseInt_1.a /= (a_2_2 && (a_2_2.Infinity += 0)) % -1), 
                        c = 1 + c, c += 1, "number" >>> this - -2 && 0 < --_; ) {}
                    } while (--b + [] && 0 < --a);
                    b--;
                }() && 0 < --brake114);
            } while (--b + a_2_2 && 0 < --brake113);
            var brake120 = 5;
            do {
                for (var brake121 = 5; ++a, c += 1, b_2_2 && (b_2_2[c = 1 + c, 1 == !1 + ("" === this)] = 1), 
                0 < brake121; --brake121) {
                    if (a++ + ((c += 1) + (c = 1 + c, "string"))) {
                        switch (b_2) {
                          case [ (c = 1 + c, !1 % (c += 1, 5) || 0), (c = 1 + c, !0), (c = 1 + c, 0 % (b_2["function" == typeof f2 && 0 <= --_calls_ && f2((c = 1 + c, 
                            0 >> (foo_1 && (foo_1[c = 1 + c, !1] = 0)) < (c += 1, -1)))] = !1)), (c = 1 + c, 
                            !0 < this && 3), (c = 1 + c, foo_1 = !0) ]:
                            continue;

                          case (c += 1) + 1:
                            for (var brake125 = 5; c = 1 + c, b_2 && (b_2[b + 1 - .3] <<= (c += 1, 511 | (foo_1 && (foo_1.null += 2)))) && 0 < brake125; --brake125) {
                                c = 1 + c, foo_1 += 1, c += 1;
                            }

                          case --b + ("function" == typeof b_2 && 0 <= --_calls_ && b_2((c = 1 + c, c += 1, 
                            !1), !0)):
                          case a++ + /[abc4]/.test("" + (a++ + a++ || b || 5)):
                        }
                    } else {
                        c = 1 + c, c += 1;
                    }
                }
            } while ("" + ((c += 1) + foo_1 || a || 3) && 0 < --brake120);
        } finally {
            b_2 = function(c) {
                c += 1;
                var _ = --b + (b = a);
                for (var e in _) {
                    for (var r in {}) {
                        c = 1 + c;
                    }
                }
            }((c += 1, b--, (c += 1) + {
                null: (c += 1) + b_2,
                get NaN() {
                    throw c = 1 + c, b_2 && (b_2[c = 1 + c, (b_2 && (b_2.c >>>= 0)) % 3 / (b_2 && (b_2.undefined += 1 / 0))] = NaN), 
                    c = 1 + c, b_2 && (b_2.b += !0);
                },
                a: --b + ("function" == typeof a_2_2 && 0 <= --_calls_ && a_2_2((c = 1 + c, NaN), !1))
            }[a++ + b_2]));
            try {
                c += 1;
            } finally {
                b_2 = --b + (b &= a);
                for (var brake138 = 5; b++ && 0 < brake138; --brake138) {
                    try {
                        for (var brake140 = 5; a++ + void 0 && 0 < --brake140; ) {
                            c = 1 + c, b_2.Infinity += 0;
                        }
                    } catch (b) {} finally {
                        c = 1 + c, delete NaN;
                    }
                }
            }
        }
        switch (("" + (a || 6))[void 0 !== parseInt_1]) {
          case (c += 1) + (b += a):
            --b, c += 1;
            break;

          case b_2 = !0 % (b_2_2 && (b_2_2.b = this / 22 << 24)):
            var brake148 = 5;
            do {
                for (var brake149 = 5; a++ + /[abc4]/.test("" + (a++ + "" + (a || 3) || b || 5)) && 0 < brake149; --brake149) {
                    --b, b = a;
                }
            } while (0 < --brake148);
            var Infinity_1 = function a(_, e) {
                try {
                    0 <= --_calls_ && a();
                } finally {
                    try {
                        c = 1 + c, c += 1;
                    } finally {}
                }
                if ([ !1 < ("c" != this == (e *= NaN)), (c = 1 + (c = 1 + c), NaN !== (e && (e.NaN = (e = !0) << 1 / 0 * this))), -6 == (b_2_2 %= 25) >= [], (c = 1 + (c = 1 + c), 
                e && (e[c = 1 + (c = 1 + (c = 1 + c)), e && (e.NaN = !1), +void (c = 1 + (c += 1))] /= !0 !== (!0 | (e && (e[c = 1 + c, 
                this < 2 < !1] -= NaN))))), (c = 1 + c, b_2_2 && (b_2_2[{
                    1.5: (c = 1 + c, e && (e[--b + --b] -= this <= 3 != 0 == (e += 0) >> -4)),
                    1.5: (c = 1 + c, 1 === (!0 === (c += 1, 2)))
                }[(c += 1) + _++]] = 0)) ].b) {
                    return (c += 1) + [ NaN, (c = 1 + (c = 1 + c), !1 >> (e && (e.undefined = 5 >> (e = 22)))), (c = 1 + c, 
                    ~(this >>> "foo") != (c += 1, a_2_2 && (a_2_2.in += !1))) ];
                }
            }(a++ + {}.NaN);
            break;

          default:
            var brake163 = 5;
            do {
                var b_1 = function(a, _) {
                    var e = 5;
                    do {
                        var r = (c = 1 + c, !1 < (!1 ^ (r[c = 1 + (c += 1), (0 ^ delete undefined) != (a_2_2 && (a_2_2[_++ - 4] = !1))] &= !0)));
                        c = 1 + c, foo_1 && (foo_1[_++ + (c = 1 + c, +(b_2_2 && (b_2_2[c = 1 + c, (a && (a[c = 1 + c, 
                        (this < "number") % "number" < 0] = 0)) < !1 != 0] = 0)) <= -2 ? (c = 1 + c, NaN) : (c = 1 + c, 
                        !1))] = NaN), c += 1, c += 1;
                    } while (--b && 0 < --e);
                    for (var o = 5; --b && 0 < --o; ) {}
                }((c = 1 + c, c += 1, "number"));
            } while (a++ + ("function" == typeof f3 && 0 <= --_calls_ && f3()) && 0 < --brake163);
            var expr169 = a++ + {}.length;
            for (var key169 in expr169) {}

          case --b + ("" + (a++ - a || 0))[("" + (a_2 && a_2[--b + ("function" == typeof f1 && 0 <= --_calls_ && f1(b))] || 3))[a++ + /[abc4]/.test("" + ([ "function" == typeof Infinity_1 && 0 <= --_calls_ && Infinity_1((c = 1 + c, 
            !0 / 3 | (foo_1 -= !0) || !0 !== (b_2 && (b_2[c = 1 + c, c += 1, NaN] <<= NaN))), (c = 1 + c, 
            -4)) ].length || b || 5))]]:
        }
    }
} catch (_) {
    foo_1 = function() {
        try {
            try {
                return [ 3 <= NaN << (c = 1 + (c = 1 + c), b_2 && (b_2[(c += 1) + /[abc4]/.test("" + (c = 1 + c, 
                (b_1 >>>= 1) >> 0 || b || 5))] = NaN), !1), !1 ][c = 1 + (c = 1 + c), 1];
            } catch (a) {
                c += 1;
            } finally {
                var _ = (c = 1 + c, !1);
                for (var e in _) {
                    var r = _[e];
                    c = 1 + (c = 1 + c);
                }
            }
        } catch (_) {
            for (var o in !1) {
                var f = (c = 1 + c, 0);
                for (var t in f) {
                    c = 1 + c, b_2 && (b_2[c = 1 + c, !1 < (_ = !1)] >>= !1);
                }
            }
            switch ([ (c = 1 + c, 0 == (b_2 = 1) !== (_ && (_[c = 1 + c, -2 !== (c += 1, c += 1, 
            "a")] = 1)) >>> !0), 0, (c = 1 + (c = 1 + c), 4) ][c = 1 + (c += 1), !0]) {
              default:
                c = 1 + c, b_2 && (b_2[--b + {}[a++ + (b_2 += (c = 1 + c, (!1 & (foo_1 && (foo_1[c = 1 + c, 
                1] *= 3))) >>> 0))]] *= (-1 / 0 | (b_2 += -5)) / !1), c = 1 + c, Infinity_1 && (Infinity_1.var = !1);

              case a:
                break;

              case (c += 1) + ("function" == typeof f2 && 0 <= --_calls_ && f2((c = 1 + c, !0))):
                c = 1 + c;
                break;

              case a++ + (Infinity_1 += (c = 1 + c, 3)):
                c = 1 + c, _ = -1;
            }
        }
        var i = +((foo_1 && (foo_1.NaN += 5 << -2)) != 0 << this * []);
        for (var n in i) {
            for (var s = 5; "special" == typeof a_2_2_1 && 0 < s; --s) {
                switch (b) {
                  case a++ + /[abc4]/.test("" + (c = 1 + c, c += 1, -5)):
                    c = 1 + (c = 1 + c), b_2 && (b_2.c = !0 < (a_2_2 = 1));
                    break;

                  case [ (c = 1 + c, +(23 ^ (r && (r.undefined += !1)))) ][c = 1 + c, -1 == (NaN | (b_1 && (b_1[c = 1 + c, 
                    !0 * (c += 1, "c") ^ (b_2 && (b_2[[ (c = 1 + c, 0) ].length] -= !1))] = 0)))]:
                    break;

                  case c = 1 + c, b_2 && (b_2[--b + ("" + (c = 1 + c, 8))[c = 1 + c, b_1 &= this + 3 != 0 != ("number" != this)]] += NaN) || !0:
                    c = 1 + c, -1 / 0 * (-4 & this) || b_2 && (b_2[a++ + a] *= !0);
                    break;

                  case (c += 1) + (c = 1 + c, typeof (!1 < 0 * (c = 1 + c, foo_1 && (foo_1[c = 1 + c, 
                    0] = !0), !1))):
                    c = 1 + c, c = 1 + (c += 1);
                }
            }
        }
    }();
    var expr197 = b_2 && b_2.foo;
    for (var key197 in expr197) {
        var bar_2, brake206, brake207;
    }
    c += 1;
    try {
        if ((c += 1) + (bar_2 && bar_2[b = a])) {
            --b, a++, c = 1 + c, _ && (_[c = 1 + c, b_2 && (b_2[foo_1 = !0 * (this < 1 / 0) << (b_1 && (b_1[[ (c = 1 + c, 
            2), !0 ][c = 1 + (c = 1 + (c += 1)), 0]] = -3))] >>>= (foo_1 += NaN) | (a_2_2 += NaN) - 4)] = NaN), 
            c = 1 + c, (a_2_2 += -1) && (a_2_2.b += 0), c = 1 + (c = 1 + c), c += 1, c += 1, 
            a_2 && a_2.b;
        } else {
            for (var brake214 = 5; (foo_1 && (foo_1.a = 0)) << 24 <= (foo_1 && (foo_1.b = 0 != (c += 1, 
            "a"))) && 0 < brake214; --brake214) {}
        }
    } catch (foo) {
        b_2_2 = (c += 1) + a++, b_2 = a++ + b;
        for (var brake218 = 5; /[abc4]/.test("" + (--b + {
            Infinity: (c = 1 + c, 0 <= this + "object")
        }[c = 1 + (c += 1), !0] || b || 5)) && 0 < --brake218; ) {
            switch (--b + a_2_2) {
              default:
                c = 1 + c, c += 1;

              case a++ + "bar":
                c = 1 + (c = 1 + c);
                break;

              case foo_1 += (c = 1 + c, !0 >> (b_2 = !1) << 0):
                break;

              case b:
                c = 1 + c, b_2 && (b_2.NaN += !1) && (b_2 /= !1), c = 1 + c;
            }
        }
    }
    var foo = (a++, c = 1 + (c += 1), b_2 && (b_2[2] <<= "b" != (b_2 = !1)), c = 1 + (c = 1 + (c = 1 + (c = 1 + c))), 
    c += 1, c = 1 + (c += 1), c = 1 + (c += 1), c = 1 + (c = 1 + (c += 1)), c = 1 + (c = 1 + (c += 1)), 
    function(a, b) {
        c = 1 + (c = 1 + c), b_2_2 ^= !1;
        for (var _ = 5; --a + {}[c = 1 + c, (b_2 && (b_2.Infinity = (c += 1, this - (c += 1, 
        "undefined")))) >>> 0] && 0 < _; --_) {
            c = 1 + c, (Infinity_1 += (b && (b.a += !0)) >> !0 < NaN) && (c = 1 + c, c += 1);
        }
    }(5, b), --b, c += 1, b_2 && (b_2[c = 1 + c, -24] += !0), bar_2 = !1, c = 1 + (c = 1 + c), 
    void function() {
        c = 1 + (c = 1 + c), b_2 *= NaN;
        for (var a = 5; (c += 1) + (c = 1 + (c = 1 + c), (void 0 <= this || NaN) <= 0) && 0 < --a; ) {}
    }((c += 1, b_2 && b_2[a++ + (b &= a)])));
} finally {
    for (var brake251 = 5; a++ + b_2 && 0 < brake251; --brake251) {
        for (var brake252 = 5; --b, b = a, --b, "function" == typeof b_2 && 0 <= --_calls_ && b_2(this, 4), 
        b = ++a, c += 1, b >>= a, c = 1 + (c += 1), c = 1 + (c += 1), --b, b_2 && (b_2[--b + {
            in: !0,
            1.5: (c = 1 + (c = 1 + c), c += 1, b_2 && (b_2.in += !0)),
            undefined: !1,
            in: (c = 1 + (c = 1 + c), b_1 && (b_1.b += !1)),
            NaN: (c = 1 + c, 0 * ((b_2 && (b_2.var *= NaN)) < NaN))
        }.a] += !1 ^ (foo_1 && (foo_1[c = 1 + c, ("c" / this < !0) >> 0] <<= 0))), c = 1 + (c = 1 + c), 
        0 < brake252; --brake252) {
            var a_1 = -((b_2 && (b_2[(c += 1) + function() {}] >>= 0)) << 22), arguments_2 = "" + ((c += 1) + (0 < (1 / 0 <= this ^ !1)) || a || 3);
        }
    }
    var parseInt_1 = function() {
        for (var c = 5; --b + ++a && 0 < --c; ) {
            var _ = 5;
            do {} while (++b && 0 < --_);
        }
    }((a++, a++, ++a, --b, foo_1 ? a++ : --b, a_2_2 && a_2_2[b++], --b, --b, b += a, 
    --b, c = 1 + c));
}

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

uglified result:
null 117 129 54 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 Dec 21, 2019
alexlamsl added a commit to alexlamsl/UglifyJS that referenced this issue Dec 22, 2019
alexlamsl added a commit that referenced this issue Dec 22, 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