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

Closed
alexlamsl opened this issue Dec 2, 2019 · 0 comments · Fixed by #3620
Closed

ufuzz failure #3619

alexlamsl opened this issue Dec 2, 2019 · 0 comments · Fixed by #3620
Labels

Comments

@alexlamsl
Copy link
Collaborator

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

{
    {
        var brake3 = 5;
        while ({
            Infinity: (c = c + 1) + (b = a),
            foo: typeof f1 == "function" && --_calls_ >= 0 && f1(24..toString(), typeof ((c = c + 1) + (typeof a == "function" && --_calls_ >= 0 && a({
                1.5: (c = 1 + c, ((a = {} | -0) > (a = 4 >> "function")) * (null | [] || ("foo" || "a"))),
                set undefined(Math_1) {
                    this.Infinity = -1 != 25;
                },
                0: (c = 1 + c, 1 * this <= ("foo" || -1) >= (null === null) % (undefined << 38..toString()))
            }.Infinity))), b = a),
            undefined: (c = c + 1) + (a *= a),
            "": b + 1 - .1 - .1 - .1
        } && --brake3 > 0) {
            var Math = function f0(foo_1, a_1, bar_2) {
                function f1(a, bar_1) {
                    {
                        var expr5 = bar_2;
                        for (var key5 in expr5) {
                            c = 1 + c;
                            var parseInt_1 = expr5[key5];
                        }
                    }
                    for (var brake7 = 5; a++ + (b = a) && brake7 > 0; --brake7) {
                        var brake8 = 5;
                        while ((c = 1 + c, (this >> 3 && null > 0) >>> (1 && 1) + ("undefined" === -0)) && --brake8 > 0) {
                            c = 1 + c, c = c + 1, (this && this) ^ "bar" - true;
                        }
                    }
                }
                var a = f1(--b + [ (c = 1 + c, ((c = c + 1, "function") == (foo_1 && (foo_1.NaN += [] ^ NaN))) % delete (true >>> -0)), (c = 1 + c, 
                (22 || "c") >= 38..toString() >> [] > ("b" >>> -5 & ("undefined" & -4))) ]);
                function f2() {
                    {
                        var brake10 = 5;
                        while (b-- && --brake10 > 0) {
                        }
                    }
                    {
                        var expr12 = (c = c + 1) + (typeof f0 == "function" && --_calls_ >= 0 && f0([], {}));
                        for (var key12 in expr12) {
                            c = 1 + c, ([] | 25) > 25 % true < ((bar_2 && (bar_2.var <<= 5 / this)) ^ ([ , 0 ].length === 2) * "b");
                        }
                    }
                }
                var arguments = f2();
                function f3(a_1, parseInt, a_1) {
                    {
                        var brake14 = 5;
                        L24323: while (a++ + (b + 1 - .1 - .1 - .1) && --brake14 > 0) {
                        }
                    }
                    (c = c + 1) + {
                        NaN: (c = 1 + c, ("c" || "object") - (bar_2 && (bar_2[c = 1 + c, ((-4 && 0) !== 24..toString() * 2) > (!"object" ^ "undefined" * this)] = /[a2][^e]+$/ & 25)) > (-2 >= Infinity) + (a_1 ^= true >>> -5)),
                        in: (c = 1 + c, (false < -1) - (true >> "undefined") ^ (-5 !== 1) % ("a" >> /[a2][^e]+$/)),
                        "-2": (c = 1 + c, c = c + 1, (Infinity && NaN) ^ (foo_1 = 3 >> {}))
                    }[c = 1 + c, c = c + 1, a_1 && (a_1[~(-4 * 23..toString() ^ [ , 0 ][1] % "function" ^ (Infinity + /[a2][^e]+$/ | (-0 || [ , 0 ].length === 2)))] += (23..toString() && -3, 
                    "a" || 3))];
                }
                var a = f3(0);
            }([ a++ + delete ((3 | {}, 24..toString() && "bar") & (a = ("a" < -1, 25 << 5))), --b + b-- ], b = a, true);
        }
    }
    {
        var expr17 = [ {
            "": a++ + ((c = c + 1) + (typeof f5 == "function" && --_calls_ >= 0 && f5(!a, (c = c + 1) + ((c = 1 + c, 
            (a && (a[c = 1 + c, (a = "a" << 23..toString() && (22, true)) >> (null > "function" < 5 >>> 25)] += "undefined" === "bar")) > void -4 | (a && (a[{
                Infinity: (c = 1 + c, (a && (a.b = "object" ^ "undefined") && -0 >>> 4) >>> (-5 <= [] <= (a && (a[c = 1 + c, 
                (a && (a.Infinity = /[a2][^e]+$/ != "function" == void undefined)) < (("c" != "") <= (-2 <= "undefined"))] *= undefined * [ , 0 ][1]))))
            }.a] = [] != -2 | (c = c + 1, "")))) || a || 3).toString(), (c = c + 1) + typeof (c = 1 + c, 
            (3, undefined) <= ("object" === undefined) ^ delete "object" == this >>> true))) ? --b + {
                1.5: typeof a == "function" && --_calls_ >= 0 && a(),
                "-2": --b + ((c = 1 + c, (true >>> undefined >= (25 === 0)) << ("bar" % -3 >> (a && (a[c = 1 + c, 
                ("number" * "undefined" !== ("a" | "undefined")) >> ("c" % /[a2][^e]+$/ & 24..toString() == "undefined")] -= "b" >> "number")))) ? (c = 1 + c, 
                (25 >>> 4 < ("b" === /[a2][^e]+$/)) - ((NaN & "a") != -2 >>> NaN)) : (c = 1 + c, 
                (a && (a.Infinity >>= ([ , 0 ].length === 2, "c") * (24..toString() / -3))) & (a && (a[c = 1 + c, 
                delete (a && (a.var += 25 << ([ , 0 ].length === 2))) % ((25 != "function") << (this | 38..toString()))] /= 5 - -0)) >> ([] & false))),
                "\t": b /= a,
                NaN: a++ + {
                    get Infinity() {
                        c = 1 + c, (/[a2][^e]+$/ * {} == Infinity <= "object") >= ("number" / true <= 24..toString() + -3);
                    },
                    a: (c = 1 + c, (3 || "foo") < Infinity >>> -0 < ({} != {} | "foo" ^ "a")),
                    3: (c = 1 + c, (([ , 0 ].length === 2) >= 3 ^ 22 !== 2) - (a && (a.foo = (Infinity >= 5) / ("a" < Infinity)))),
                    "-2": (c = 1 + c, ([ , 0 ].length === 2 === -1) * (0 > -2) < (null === "function" !== (-5 & -4))),
                    undefined: (c = 1 + c, [ , 0 ][1] % false + (this & 24..toString()) << ((a && (a[c = 1 + c, 
                    ((-3 && -2) != (Infinity === 1)) >= (Infinity >>> -1 < (5 && 22))] += "foo" >> "number")) << (null >> this)))
                }[c = 1 + c, (1 | NaN || undefined === 5) >>> (a %= (Infinity | NaN) > ([ , 0 ][1] ^ null))]
            }.foo : 1 === 1 ? a : b),
            3: (c = c + 1) + +(((a && (a.foo *= "number" & "undefined")) | "a" > 2) >>> ("object" > 1 & 2 - "foo"))
        }, , a++ + (a++ + ++b || 6).toString()[a && a[--b + [ --b + {
            1.5: (c = 1 + c, (a = (this, 38..toString()) == ([ , 0 ].length === 2) + NaN) + ("function" >> 0) / (Infinity | null))
        }, Infinity ].var]] ];
        for (var key17 in expr17) {
            c = c + 1;
        }
    }
}

switch (b = a) {
  case (a++ + (typeof f0 == "function" && --_calls_ >= 0 && f0()) || 3).toString()[a++ + typeof c_1]:
    {
        var expr22 = --b + --b;
        L24324: for (var key22 in expr22) {
            c = 1 + c;
            var undefined = expr22[key22];
            {
                var brake23 = 5;
                L24325: do {
                    {
                        var bar_2 = function f4(b_2, b) {
                            function f5(b_2_1) {
                                L24326: for (var brake25 = 5; (c = 1 + c, ([] - 4 != (c = c + 1, -5)) % (({} || 1) > 5 % 4)) && brake25 > 0; --brake25) {
                                    c = 1 + c, (b_2 = (null !== 4) % (false !== true)) <= ([] == -5) >>> ~false;
                                }
                                {
                                    var brake27 = 5;
                                    do {
                                        c = 1 + c, (false == "b") << (/[a2][^e]+$/, true) ^ (-4 - 25) * ("b", 23..toString());
                                    } while ((c = 1 + c, 24..toString() >= 5 === 0 % "a" === (b_2_1 = 0 == [ , 0 ][1] || 0 && true)) && --brake27 > 0);
                                }
                            }
                        }("function");
                    }
                } while ("foo" && --brake23 > 0);
            }
        }
    }
    {
        var brake29 = 5;
        do {
            {
                for (var brake31 = 5; (c = c + 1) + (typeof bar_2 == "function" && --_calls_ >= 0 && bar_2() || 9).toString()[(c = c + 1) + new function foo_2() {
                    foo_2 *= (c = 1 + c, (+"object" | -5 ^ -4) - ("function" == "b") * ("bar" !== this));
                    if ([ (c = 1 + c, ("object" && false) >= 3 / "b" <= (NaN << "" != "" << true)) ][c = 1 + c, 
                    (Infinity === [] || {} >>> "foo") << 24..toString() * {} % (-2 >>> -4)]) {
                        var expr34 = (c = 1 + c, ("b" + 1 < delete "c") / ((undefined === this) / ("bar" !== "object")));
                        for (var key34 in expr34) {
                            c = 1 + c;
                            var a_1 = expr34[key34];
                            c = 1 + c, /[a2][^e]+$/ >>> -4 >> ("a" == /[a2][^e]+$/) <= ("c" < "a" ^ true == false);
                        }
                    }
                    switch ((c = 1 + c, (c = c + 1, [ , 0 ].length === 2 ^ 1) / ("number" > {} ^ Infinity + -5)) ? (c = 1 + c, 
                    (c = c + 1, [ , 0 ][1] / true) ^ "undefined" - 2 === (c = c + 1, "")) : (c = 1 + c, 
                    ((a_1 && (a_1.foo *= 5 >>> Infinity)) == (-5 ^ -1)) / ((NaN ^ "foo") / (23..toString() == [])))) {
                      case a++ + {
                            1.5: (c = 1 + c, (foo_2 && (foo_2[--b + typeof (c = 1 + c, ~([] != "number") >> ("number" << -4 != ([ , 0 ].length === 2) / true))] %= (25 ^ "b") >> ("function" === undefined))) + (("" < 0) + (c = c + 1, 
                            []))),
                            null: (c = 1 + c, 23..toString() != undefined ^ (bar_2 && (bar_2.undefined = -3 & "foo")), 
                            !false & -4 * -5),
                            1.5: (c = 1 + c, (22, -4) >> (NaN ^ false) <= (23..toString() >> [ , 0 ][1] < (-5 > "bar"))),
                            "\t": (c = 1 + c, ((-0 ^ false) === -2 <= undefined) > ![ , 0 ][1] * (this || "b"))
                        }.c:
                        c = 1 + c, (c = c + 1, -4, "c") >= ((foo_2 && (foo_2.NaN = "object" || "")) > ("" <= ([ , 0 ].length === 2)));
                        break;

                      case (c = c + 1) + (0 === 1 ? a : b):
                        c = 1 + c, -3 <= 22 === -1 % {} & (bar_2 += (5 << -3) - "function" / "number");

                      case foo_2 && foo_2.undefined:
                        c = 1 + c, bar_2 && (bar_2.a = ({} <= "" & -1 - 38..toString()) % (4 >> "number" ^ (5 | false)));
                        break;

                      case a++ + (typeof f5 == "function" && --_calls_ >= 0 && f5(this, (c = 1 + c, (bar_2 = [] != {}) | 5 ^ "c" | +("object" | "bar")))):
                        c = 1 + c, (c = c + 1, "b", a_1 && (a_1[c = 1 + c, (foo_2 = -4 ^ 24..toString()) ^ "c" & 0 ^ (/[a2][^e]+$/ ^ -5 && "a" < [ , 0 ][1])] |= "number" | {})) <= (foo_2 && (foo_2[b--] = /[a2][^e]+$/ - "object" < (c = c + 1, 
                        [])));
                        c = 1 + c, (bar_2 && (bar_2.a %= this * "bar")) + ("a", -1) & undefined > false > true >>> false;
                        break;
                    }
                    {
                        var brake42 = 5;
                        do {
                            {
                                return c = 1 + c, ((24..toString() | -5) >> ({} | this)) % (("a" + -5) % ("foo" - {}));
                            }
                        } while ((c = c + 1) + b-- && --brake42 > 0);
                    }
                }()] && brake31 > 0; --brake31) {
                    var b_1 = function f6(b, arguments) {
                        function f7() {
                            c = 1 + c, (1 | [] || ("number", -2)) * ((5 === -0) + ("function" && NaN));
                            c = 1 + c, (4 === "object", /[a2][^e]+$/ <= [ , 0 ][1]) << (bar_2 && (bar_2.var /= "function" === this) || (5, 
                            NaN));
                        }
                        var bar_1 = f7((c = 1 + c, ([] >= 5 | "function" >> "undefined") == (true >>> "a" != (c = c + 1, 
                        22))), (c = 1 + c, ("undefined" <= "bar" | "b" >> []) / (c = c + 1, "b" ^ "undefined")));
                    }("c");
                }
                var arguments_1 = "", b_2 = a++ + --b;
                break;
                switch (b_1) {
                  case (c = c + 1, "object") - ({} ^ [ , 0 ].length === 2) | (b_1 && (b_1[-(c = c + 1, 
                    (22 > "bar") - (3 ^ 22))] -= ([ , 0 ][1] === ([ , 0 ].length === 2)) >> (undefined ^ "number"))):
                    break;

                  case [ (c = c + 1) + function() {
                        {
                        }
                    }, a++ + (b ^= a), a++ + !("function" / -3 == 0 << 23..toString() & (c = c + 1, 
                    22) < (1 !== -2)), --b + (1 === 1 ? a : b), ((false >> -0 && (bar_2 && (bar_2.NaN = [] ^ false))) / ("" >>> 24..toString() ^ ([ , 0 ].length === 2) - /[a2][^e]+$/) || a || 3).toString() ][(c = c + 1) + (typeof bar_2 == "function" && --_calls_ >= 0 && bar_2())]:
                    {
                        var brake51 = 5;
                        L24327: while ((c = c + 1) + (arguments_1 && arguments_1[22]) && --brake51 > 0) {
                            try {
                                {
                                    var brake53 = 5;
                                    do {
                                        c = 1 + c, ((c = c + 1, "a") && Infinity != undefined) << ((0 !== 23..toString()) < (/[a2][^e]+$/ | 4));
                                    } while (([] !== -3 & -0 > -0) === (38..toString() & [ , 0 ][1]) << ("" === 2) && --brake53 > 0);
                                }
                            } catch (foo_2) {
                                for (var brake55 = 5; (c = 1 + c, (b_1 && (b_1.foo = NaN << -5)) === -1 <= 3 == (23..toString() === -4) % ("number" <= 22)) && brake55 > 0; --brake55) {
                                    c = 1 + c, ([] || 1) == (undefined & Infinity) && "" >>> "a" === (-3 || 5);
                                }
                                {
                                    var brake57 = 5;
                                    do {
                                        c = 1 + c, (null && -1) - (false + null) != (-3 ^ 2 || "undefined" ^ 3);
                                    } while ((c = 1 + c, (0 << /[a2][^e]+$/) - (c = c + 1, -0) + ((24..toString() && this) === (-2 & []))) && --brake57 > 0);
                                }
                            } finally {
                                if (c = 1 + c, bar_2 /= 1 - -5 == 3 <= "c" != (38..toString() ^ 3) <= (-3 ^ -4)) {
                                    c = 1 + c, (c = c + 1, 4 & [ , 0 ].length === 2) & ("function" / Infinity ^ null + -1);
                                }
                                if (c = 1 + c, (23..toString(), "b") < "function" / "b" < (([ , 0 ].length === 2) - -1 == "foo" / [ , 0 ][1])) {
                                    c = 1 + c, (38..toString() < 25 && ("undefined" || false)) % (-Infinity ^ true >= "b");
                                }
                            }
                        }
                    }
                    if (a++ + (--b + function b_1() {
                        c = 1 + c, b_1 += NaN >>> ([ , 0 ].length === 2) >>> -"object" >>> ("undefined" != -4 !== ("a" ^ 22));
                    } || 5).toString()[(c = c + 1) + ++a]) {
                        if (a++ + {
                            foo: (c = 1 + c, "object" >> -2 < (b_2 && (b_2[c = 1 + c, (b_2 = -4 !== -3 && 24..toString() & -2) * ("bar" <= {} != 4 >= 38..toString())] = ([ , 0 ].length === 2) << -5)) <= ("b" + this, 
                            b_2 && (b_2.var = true + true))),
                            NaN: (c = 1 + c, (Infinity <= 1 || (arguments_1 += undefined | 1)) / ((b_1 = "a" >>> "number") != (this && "object"))),
                            foo: (c = 1 + c, !(undefined >>> undefined) % (("undefined", 25) & ("object" & "foo"))),
                            3: (c = 1 + c, (arguments_1 = "number" << Infinity) === -2 % -5 ^ ("undefined" == 2) >>> 0 / true),
                            "\t": (c = 1 + c, (undefined | -4) >> (-4 | [ , 0 ].length === 2) ^ void null * ("undefined" - null))
                        }[{}[c = 1 + c, [] - ([ , 0 ].length === 2) ^ -1 >>> [] ^ "undefined" - this - (false < -1)]]) {
                            var brake66 = 5;
                            do {
                                var b_1;
                            } while (/[abc4]/.test(((c = 1 + c, (23..toString() ^ 25 || ("object", -1)) && (24..toString() != "c") >= ({} && "number")) || b || 5).toString()) && --brake66 > 0);
                        } else {
                            var brake68 = 5;
                            L24328: while (a++ + ((c = 1 + c, (bar_2 && (bar_2[c = 1 + c, "a" + 3 << ([ , 0 ][1], 
                            "bar") === (22 ^ 5) >> ("b" == undefined)] = "a" << 23..toString()) || b_1 && (b_1[c = 1 + c, 
                            "b" > -5 !== (-4 == 2), b_1 = [] + this == (Infinity == "undefined")] = undefined != "b")) == (b_2 && (b_2[c = 1 + c, 
                            (true ^ "") % (/[a2][^e]+$/ !== null) ^ (-1 !== 23..toString()) / (25 << "object")] = "c" & undefined), 
                            "bar" <= "undefined")) ? (c = 1 + c, +(c = c + 1, [ , 0 ][1]) >> ((false !== "c") >= (b_1 && (b_1[c = 1 + c, 
                            (-1 % "foo" || -3 / undefined) % ([ , 0 ][1] && "b" && 24..toString() % 22)] = 5 >= 22)))) : (c = 1 + c, 
                            !"c" == ("b", -3) == ((-2, "object") === -this))) && --brake68 > 0) {
                                c = c + 1;
                            }
                        }
                    } else {
                        var brake70 = 5;
                        L24329: while (a++ && --brake70 > 0) {
                            var brake71 = 5;
                            while (a++ && --brake71 > 0) {
                                for (var brake72 = 5; (c = 1 + c, ([] || {}) % (1 >> "undefined") - ((true, true) ^ 0 % "bar")) && brake72 > 0; --brake72) {
                                    c = 1 + c, (c = c + 1, 5) % (-5 | -2) && (b_1 = [ , 0 ][1] === Infinity ^ ("number" && "b"));
                                }
                            }
                        }
                    }
                    break;

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

                  case /[abc4]/.test((a++ || b || 5).toString()):
                    break;
                }
            }
        } while (/[abc4]/.test(((c = c + 1) + delete a || b || 5).toString()) && --brake29 > 0);
    }

  case typeof b_1_1 !== "object":
    var b = (c = c + 1) + +a, bar = typeof f8 == "function" && --_calls_ >= 0 && f8(false, a++ + /[abc4]/.test((typeof b_1 == "function" && --_calls_ >= 0 && b_1(a++ + ~((1 || -1) != ([ , 0 ][1] && [ , 0 ][1]) & -3 > 0 < ("b" && [ , 0 ][1]))) || b || 5).toString()));
    break;

  case (c = c + 1) + [ b_1 = --b + ++a ]:
    typeof f3 == "function" && --_calls_ >= 0 && f3(24..toString(), 22);
    try {
        {
            var b_2 = function f8(arguments_1, b_1) {
                var bar_2 = ~((([ , 0 ].length === 2) + [] !== (arguments_1 && (arguments_1.Infinity += 38..toString() != ""))) > (true === "function" ^ [ , 0 ][1] - "object")), NaN = --b + {
                    NaN: --b + ([ (c = 1 + c, 23..toString() * "undefined" / (4 / "b") === ((c = c + 1, 
                    -4) & "c" >>> 22)) ] || a || 3).toString()
                };
                a++ + +b;
            }((c = c + 1, -3 >> "foo" >>> (b_2 && (b_2.null *= 24..toString() % -5))), --b + typeof b_2_1);
        }
    } finally {
        {
            switch (new function() {
                this[b_1 && b_1.foo] <<= (NaN - /[a2][^e]+$/ == 5 >>> 3) > ((38..toString() || 1) < delete 2) <= (-0 & 0 | 5 * ([ , 0 ].length === 2)) - (("number" || "c") === Infinity > "b");
                this.NaN += ((25 != {}) * (true < 22) >> (arguments_1 && (arguments_1.Infinity >>>= 22 % [ , 0 ][1] >> (0 === -4)))) + ((23..toString(), 
                -4) != (25, "foo") ^ (-0 & 4) >>> (true ^ /[a2][^e]+$/));
                {
                    var brake87 = 5;
                    do {
                        {
                            return c = 1 + c, (Infinity === Infinity) + (-1 >= 25) > (b_1 && (b_1[typeof f10 == "function" && --_calls_ >= 0 && f10("c")] = (c = c + 1, 
                            "a") !== ("object" == "function")));
                        }
                    } while (a++ + (0 === 1 ? a : b) && --brake87 > 0);
                }
                L24330: {
                    c = 1 + c, ((b_1 && (b_1[c = 1 + c, b_2 && (b_2[(c = c + 1) + (typeof b_2 == "function" && --_calls_ >= 0 && b_2((c = 1 + c, 
                    b_1 += ("foo" <= -1 || "bar" >> {}) === (b_1 = 2 * "" == -4 + /[a2][^e]+$/))))] %= "a" + /[a2][^e]+$/ - (-3 + 3)) || 38..toString() >= null < ("c" ^ 24..toString())] = "foo" >= 4)) > +38..toString()) / ([ , 0 ][1] - "" < (38..toString() > Infinity));
                    c = 1 + c, (-2 ^ "bar" && [] + Infinity) > "b" >> 38..toString() >>> [ , 0 ][1] - -2;
                    c = 1 + c, -2 < NaN >= (23..toString(), -4) && (b_2 = "function" * [ , 0 ][1]) ^ +"";
                }
                try {
                    {
                        var brake94 = 5;
                        do {
                            c = 1 + c, (b_2 = "number" != true | {} >>> "foo") === (b_2 |= (c = c + 1, -0) & "function" === undefined);
                        } while ((c = 1 + c, (-0, NaN) > (-1, [ , 0 ].length === 2), ("c" || NaN) ^ [] / 4) && --brake94 > 0);
                    }
                } catch (NaN) {
                    c = 1 + c, (3 | 1) - (24..toString() | [ , 0 ][1]) >>> (-2 >>> 5 !== -1 * 25);
                    c = 1 + c, "a" % NaN / (/[a2][^e]+$/ < Infinity) === (b_2 && (b_2.foo = (bar_2 && (bar_2[c = 1 + c, 
                    b_1 && (b_1.foo *= ((bar_2 >>>= /[a2][^e]+$/ & NaN) !== ("foo" ^ 23..toString())) <= (b_1 && (b_1[c = 1 + c, 
                    ("c" === [ , 0 ][1]) >>> -1 % [ , 0 ][1] && "c" < {} >= "b" + Infinity] += NaN - 25), 
                    [ , 0 ].length === 2 & 25))] = "a" ^ -0)) | 4 != "number"));
                } finally {
                    c = 1 + c, ([ , 0 ][1] > 23..toString() || (null || false)) === (-4 > ([ , 0 ].length === 2)) + (c = c + 1, 
                    [ , 0 ].length === 2);
                    c = 1 + c, !((undefined != []) > (/[a2][^e]+$/ ^ "a"));
                }
            }()) {
              case typeof b_1 == "function" && --_calls_ >= 0 && b_1(Infinity, 23..toString() < null > (1 ^ 2) <= (25 === 24..toString() === (false ^ 22)), "foo"):
                break;

              case (c = c + 1) + {
                    length: {
                        null: (c = 1 + c, (-4 >> 22 && (NaN, 3)) ^ ("" + 0, [ , 0 ][1] + ([ , 0 ].length === 2))),
                        in: (c = 1 + c, (c = c + 1, ([ , 0 ].length === 2) - -3) || (b_1 = "number" ^ -2) < !false),
                        b: (c = 1 + c, -(3 === 1) << (/[a2][^e]+$/ + "object" & (b_1 = 22 ^ "a"))),
                        b: (c = 1 + c, b_2 && (b_2[a++ + b_2] = (-0 / 23..toString() != (-0 === 25)) < (c = c + 1, 
                        "function" >>> []))),
                        NaN: (c = 1 + c, (24..toString() === -3) << (5 & NaN) === (3 >= -5) - ("c" > 5))
                    }.a,
                    length: a++ + b_2,
                    length: ~(bar_2 && (bar_2.foo = (null && -3) > (this || -3) ^ ("foo" !== null) >> (([ , 0 ].length === 2) > ([ , 0 ].length === 2))))
                }:
                --b;
                switch (bar_2 && bar_2[a--]) {
                  case (c = c + 1) + b++:
                    break;

                  case (c = c + 1) + /[abc4]/.test((--b + (0 === 1 ? a : b) || b || 5).toString()):
                    {
                        var brake102 = 5;
                        do {
                            c = 1 + c, (b_2 = ("bar" ^ "") << (bar_2 && (bar_2.NaN = 22 > -1))) || (3 < -1) * (b_1 && (b_1[c = 1 + c, 
                            ((true | false) < -5 % ([ , 0 ].length === 2)) % ("c" >>> 1 >>> (this && NaN))] -= -0 === -3));
                        } while ((c = 1 + c, ("undefined" && -2) ^ -2 & 2 | (bar_2 && (bar_2.a <<= [ , 0 ][1] | 3)) - (c = c + 1, 
                        "object")) && --brake102 > 0);
                    }
                    var foo_1;
                    break;

                  case typeof f7 == "function" && --_calls_ >= 0 && f7():
                    {
                        var expr105 = (c = 1 + c, "number" < "" != ([ , 0 ].length === 2) >= "" & +(false || 25));
                        for (var key105 in expr105) {
                            c = 1 + c, delete ((this != -1) < ("bar" | 0));
                        }
                    }
                    break;

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

              case --b + typeof bar_2_2:
                {
                    var brake107 = 5;
                    L24331: do {
                        c = c + 1;
                    } while (typeof foo_1 && --brake107 > 0);
                }
                break;

              default:
                {
                    var brake109 = 5;
                    do {
                    } while ((c = c + 1) + (b_1 && b_1.null) && --brake109 > 0);
                }
                var foo_1_2 = a++ + ((undefined ^ 0) >> (22 == /[a2][^e]+$/) >>> (!"bar" >> (0 !== []))), b_2 = (c = c + 1) + (typeof b_2 == "function" && --_calls_ >= 0 && b_2());
            }
        }
    }
    break;

  case (c = c + 1) + {
        "\t": a++ + delete b,
        c: (c = c + 1) + ((c = c + 1) + b++),
        "-2": +function bar_2() {
            for (var brake113 = 5; typeof f0 == "function" && --_calls_ >= 0 && f0(--b + +function NaN_1() {
                {
                    var brake114 = 5;
                    L24332: do {
                        c = 1 + c, ((true || -2) ^ (c = c + 1, 22)) & (false || 5) > ([ , 0 ][1] >= ([ , 0 ].length === 2));
                    } while ((c = 1 + c, (Infinity ^ undefined) == 22 < "a" != (NaN_1 && (NaN_1.undefined = (null > [ , 0 ][1]) >>> (-3 == "c")))) && --brake114 > 0);
                }
                {
                }
                {
                }
                if (c = 1 + c, !(true <= 23..toString()) >= (4 < Infinity === "a" >= -0)) {
                    c = 1 + c, ("object" != "foo") >> (-0, Infinity) > ("undefined" !== 22 != (c = c + 1, 
                    true));
                }
            }(), b &= a, a++ + typeof (arguments_1 %= {
                b: (c = 1 + c, (38..toString() + "undefined" && 3 === 25) != (b_2 && (b_2[typeof b_2 == "function" && --_calls_ >= 0 && b_2(25, (c = 1 + c, 
                ("bar" << "bar" !== (0 == true)) % ("undefined" / "foo" || undefined ^ 22)))] >>= (null ^ -2) > ([ , 0 ][1] || -0)))),
                a: (c = 1 + c, (foo_1 && (foo_1[1 === 1 ? a : b] |= (23..toString() | -0) > 22 >>> "foo")) <= (Infinity ^ 5) / ("bar" >= {})),
                undefined: (c = 1 + c, (25 != null, 2 << -4) || ("number" + 25) / (38..toString() || "object"))
            }.null)) && brake113 > 0; --brake113) {
                var expr120 = typeof f8 == "function" && --_calls_ >= 0 && f8(--a, typeof b_2_2, "");
                for (var key120 in expr120) {
                    c = 1 + c;
                    var bar_2 = expr120[key120];
                    {
                        var brake121 = 5;
                        L24333: while (--b + +function bar_2() {
                            L24334: for (var brake122 = 5; (c = 1 + c, (-4 | 3) >= undefined * "a" && (arguments_1 && (arguments_1.null -= 2 >= null)) > (Infinity === undefined)) && brake122 > 0; --brake122) {
                                c = 1 + c, "function" >>> 23..toString() << (23..toString() <= -0) == (b_2 = {} == "c", 
                                bar_2 && (bar_2.c = {} * NaN));
                            }
                            switch (c = 1 + c, ~({} * "a" > (c = c + 1, "c"))) {
                              case c = 1 + c, "object" * "b" > (b_1 && (b_1[c = 1 + c, (bar_2 = [] | []) / (25 - -5) - ({} >>> false <= ("b" === 25))] = 22 > "bar")) == (b_2 && (b_2["undefined"] = NaN / "c" || false ^ [])):
                                ;
                                break;

                              case c = 1 + c, (1 <= -5) / ({} > true) < (22 >>> Infinity) % (this | 2):
                                ;
                                break;

                              case c = 1 + c, ((b_2 >>>= 24..toString() + []) ^ (/[a2][^e]+$/ ^ 24..toString())) - (4 !== -4) % (3 ^ 5):
                                ;
                                break;

                              default:
                                ;
                            }
                            var b_1_2;
                        }() && --brake121 > 0) {
                            var brake126 = 5;
                            while (a++ + ++a && --brake126 > 0) {
                                --b + ((c = 1 + c, -(foo_1 = null / undefined) ^ (-1 & [ , 0 ].length === 2) - (bar_2 && (bar_2[c = 1 + c, 
                                ((null > 24..toString()) + ("" > false)) / (NaN * -4 <= (3 < 5))] = -4 === []))) || 3).toString()[c = 1 + c, 
                                (4 - 23..toString()) * (1 >>> "object") << (c = c + 1, 4, "b")];
                            }
                        }
                    }
                }
            }
            {
                switch (("object" < -1) >>> "object" / "undefined" != (NaN && "number") - (-1 == "")) {
                  default:
                  case (c = c + 1) + (1 === 1 ? a : b):
                    --b + +function foo_1_1() {
                    }();
                    break;

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

                  case !b:
                    try {
                        try {
                            c = 1 + c, (foo_1 += false % 22 < (b_2 && (b_2.undefined *= -5 <= "number"))) === (/[a2][^e]+$/ ^ false) * (5 > {});
                        } catch (b_1_1) {
                        }
                    } catch (b_1) {
                        c = 1 + c, delete (bar_2 && (bar_2.undefined = Infinity >>> "object")) - ((NaN, 
                        1) & -5 < 1);
                        c = 1 + c, (+"number" & (b_2 && (b_2[c = 1 + c, ("c", -4) >= (c = c + 1, []) & ("object" == -0 ^ "function" >> [])] *= 4 | true))) / ((38..toString() | -0) != (-0 || "foo"));
                    } finally {
                        c = 1 + c, (arguments_1 && (arguments_1.null += "undefined" * Infinity) && 22 === 22) <= 3 + 1 >>> ([ , 0 ].length === 2) - 38..toString();
                        c = 1 + c, (null < this ^ "undefined" * []) % (c = c + 1, [ , 0 ][1] !== undefined);
                    }
                    {
                        c = 1 + c, -NaN / ("b" ^ this) >>> ((undefined & 23..toString()) != ("bar" != this));
                        c = 1 + c, (NaN & 24..toString()) - ("foo" ^ [ , 0 ][1]) + void (this !== 1);
                        c = 1 + c, b_1 && (b_1[0 === 1 ? a : b] += ("" * {} | ([ , 0 ].length === 2) >= {}) * (b_2 && (b_2[--b + /[a2][^e]+$/] <<= (-1 === 5) > 25 << /[a2][^e]+$/)));
                    }
                    break;
                }
                return;
                try {
                    {
                        var brake144 = 5;
                        L24335: do {
                            var foo_1_2_1;
                        } while (--b + ~b && --brake144 > 0);
                    }
                } finally {
                    var a_1;
                    for (var brake147 = 5; (c = c + 1) + bar_2 && brake147 > 0; --brake147) {
                        L24336: {
                        }
                    }
                }
                {
                    var b_1_1 = function f9() {
                        c = 1 + c, (5 !== 2) * ("" | "bar") - ("b" >> 25 ^ ("a" || 0));
                        {
                            var brake151 = 5;
                            while ((c = 1 + c, ("a" >= 22) + (2 >>> -4) && (-0 != [ , 0 ][1], /[a2][^e]+$/ + false)) && --brake151 > 0) {
                                c = 1 + c, ("c" > "function" & 2 <= "undefined") >> (b_2 = (4 == 3) + ([ , 0 ].length === 2 || null));
                            }
                        }
                    }("object", !function b_1_1_1() {
                    }());
                }
            }
            {
                var bar_2 = (c = c + 1) + a++, b_2_1 = --b + a++;
                L24337: {
                    {
                        c = 1 + c, (5 ^ null) + ("c" || [ , 0 ].length === 2) | (bar_2 += 24..toString() > [] <= (25 & false));
                    }
                    for (var brake158 = 5; (b = a) && brake158 > 0; --brake158) {
                        var brake159 = 5;
                        L24338: do {
                            c = 1 + c, (("number" && 4) <= true << "a") * (("function" !== 2) >> ("number" === -1));
                        } while ((c = 1 + c, (/[a2][^e]+$/ || "c") / ("b" === ([ , 0 ].length === 2)) || (this, 
                        -4, 2 < -3)) && --brake159 > 0);
                    }
                }
            }
            {
                var undefined = function f10(b_1, a, bar_2_1) {
                    {
                        var brake163 = 5;
                        do {
                            try {
                                {
                                }
                            } finally {
                                c = 1 + c, foo_1_2_1 = ("c" >>> -3 !== (b_1 && (b_1.a /= this <= "undefined"))) % (([ , 0 ].length === 2) * true >= (NaN > "c"));
                                c = 1 + c, (true != 3) - (bar_2 && (bar_2.Infinity >>= -3 != -0)) >> (3 / Infinity | void "number");
                            }
                        } while (++a && --brake163 > 0);
                    }
                }();
            }
        }(),
        c: a++,
        "-2": 0 === 1 ? a : b
    }[a++ + new function NaN_1() {
        this.b = (((({} || "number") <= "b" >>> 24..toString(), (-5, NaN) !== "foo" / "b") | (NaN_1 += ((bar_2 && (bar_2.NaN += "undefined" ^ "")) * ([] + -3), 
        delete (/[a2][^e]+$/ % 5)))) == ((void 38..toString() == true < "function") < ((b_1 && (b_1[c = 1 + c, 
        (true | -3) >>> (2 && null) !== (4 ^ "undefined") << (0 | 5)] = "undefined" && "c")) > "function" - 24..toString()) & (-5 & "b", 
        true === "bar") >> ("function" >= -1) - (c = c + 1, -5)) & !(((23..toString() > "object" | "function" % /[a2][^e]+$/) - (foo_1_2 = Infinity !== "bar" && +/[a2][^e]+$/)) * (foo_1 && (foo_1[--b + [ (c = 1 + c, 
        (foo_1 && (foo_1[b--] <<= (arguments_1 && (arguments_1[c = 1 + c, (bar_2 && (bar_2.a += delete "bar" * (-2 || "number"))) << ((-4 && 4) >= ("" || ""))] = 22 ^ 3)) / (foo_1 += -2 == -5))) | 3 < "a" > (arguments_1 *= 3 == "number")) ].b] ^= (+25 != ("foo" != -4), 
        "" >>> 5 << (true > "bar")))))) + (((-5 === false == "" - 25) + (4 / "" <= {} * "foo")) / ((2 <= NaN && (b_1 = 25 ^ "c")) / (-1 < ([ , 0 ].length === 2) && -3 != 2)) === (-3 ^ 5 ^ -5 / 1 ^ (38..toString() || Infinity) + (3 ^ NaN)) * (([ , 0 ].length === 2 ^ -1) - (5 << true) ^ (4 == 23..toString()) - +{})) / (((c = c + 1, 
        23..toString() ^ [ , 0 ].length === 2) <= ((bar_2 = /[a2][^e]+$/ ^ 1) | true != 5), 
        (foo_1_2 && (foo_1_2.undefined = (false, this) === -2 / "bar")) >>> (/[a2][^e]+$/ + 24..toString() != (true && undefined))) + ((!"foo" <= (true ^ true) === (1 == ([ , 0 ].length === 2)) << Infinity - []) - (0 * 22 <= (Infinity != null) === (arguments_1 = [ , 0 ][1] ^ [ , 0 ][1]) / (bar_2 && (bar_2[c = 1 + c, 
        (("bar" ^ "undefined") <= (b_1 && (b_1.Infinity >>= -5 >= -2))) * (("function" != 38..toString()) >> 0 + {})] = 0 * "a"))))) === ((foo_1 = (c = c + 1, 
        (NaN << /[a2][^e]+$/ << (-5 || "undefined") != 5 >> "number" > 0 - 25) / ((true & Infinity) << ("object" >>> 23..toString()) > +(true, 
        /[a2][^e]+$/))) + ((~-4 >> (Infinity >>> 4) | (-4 === 2) >>> (foo_1 = 4 | Infinity)) - ((b_2 && (b_2[{}[c = 1 + c, 
        bar_2 && (bar_2.b = ("function", 2) / (22 | -5) >= ((25 === false) > (3, this)))]] -= "number" * 5 ^ "object" - 5)) >> ("undefined" == "undefined") + ("function" <= 22)) ^ (b_2 && (b_2[--b + (-3 || a || 3).toString()] = ((3 == -5) >>> (bar_2 && (bar_2[c = 1 + c, 
        (-2 ^ "b") >= 24..toString() - -4 === (25 || "function") >> (22 <= "function")] = "function" & -5)) ^ (arguments_1 = NaN * [] != "" / "undefined"), 
        (1 + "a" < (arguments_1 && (arguments_1.b >>= -4 / 5))) * ((24..toString(), -2) >>> NaN - "function")))))) | (((23..toString(), 
        38..toString()) !== 25 >> -5) + (([ , 0 ].length === 2 | true) == !2) << ((-1 > 1 && 23..toString() != "number") & ("function" | "number") / (NaN != ([ , 0 ].length === 2))), 
        ((NaN_1 = "object" & NaN ^ false & 38..toString()) & "" == {} === (true == 5)) === (b_2 && (b_2[(c = c + 1) + (typeof foo_1 == "function" && --_calls_ >= 0 && foo_1("object"))] = (NaN | -1) % (-2 !== 22))) % (("function" && 25) & (2 ^ NaN))) >>> ((bar_2 && (bar_2[(c = c + 1) + (0 === 1 ? a : b)] = /[a2][^e]+$/ >>> undefined & (bar_2 && (bar_2[c = 1 + c, 
        +(false >>> {}) + ((c = c + 1, {}) - (c = c + 1, -2))] <<= undefined == Infinity))) && (4 != 22 && NaN == 2)) - ((bar_2 && (bar_2[{
            3: (c = 1 + c, (arguments_1 && (arguments_1[a++ + -a] = (5 & false) + (NaN !== ([ , 0 ].length === 2)))) != ((true ^ "") & {} >> -1)),
            undefined: (c = 1 + c, (c = c + 1, 5) !== ([ , 0 ][1] == -2) != ("function" < "c") / (38..toString() - -3)),
            "": (c = 1 + c, false << -5 === (c = c + 1, false) ^ (22 ^ null) & 5 * 25),
            "": (c = 1 + c, (-0 && "b", "number" + -0) >> (-3 & {}) % delete 0)
        }[c = 1 + c, (-3 <= this) * (/[a2][^e]+$/ * "function") <= (22 == {} == (c = c + 1, 
        5))]] |= (22 - 2) % ([] != "function"))) >= (null == /[a2][^e]+$/) - ("b" << undefined)) >>> (+(25 % -0 | (foo_1 && (foo_1.Infinity -= undefined % /[a2][^e]+$/))) < (22 > 2 && 3 ^ -4) >>> (-1 - 24..toString()) % (b_2 && (b_2.Infinity *= 4 === "a")))));
        this[function foo_1_2() {
            {
                var expr168 = a++ + --b;
                for (var key168 in expr168) {
                    c = 1 + c;
                    var foo_1_1 = expr168[key168];
                    try {
                        {
                            var b_1 = function foo(NaN_1) {
                                c = 1 + c, !((/[a2][^e]+$/, null) < (Infinity > "undefined"));
                                c = 1 + c, c = c + 1, 4 > true >= (bar_2 && (bar_2[c = 1 + c, (this > 5 != Infinity % "undefined") << (-1 + -1) * ("number" & "c")] = -4 >> /[a2][^e]+$/));
                            }((c = 1 + c, "bar" * [] * ("function" % this) << (-4 !== 3 | [] === 3)), (c = 1 + c, 
                            (foo_1_1 && (foo_1_1[a++ + b++] += ("foo" | 25) + (-1 >>> "number"))) ^ ("object" ^ 25) & /[a2][^e]+$/ === -4));
                        }
                    } catch (NaN_1_1) {
                        {
                            var brake173 = 5;
                            L24339: while (--b + (c = 1 + c, ((NaN_1 *= "" & 22) & (false, -3)) >= ("b" << {}) / (3 >= 38..toString())) && --brake173 > 0) {
                                switch (c = 1 + c, "a" * -4 / (undefined / 25) - ([ , 0 ].length === 2 ^ "a" | 1 % "number")) {
                                  case c = 1 + c, (25 > "" <= (-1 < "foo")) + ([] % -5 == ([] & "b")):
                                    ;
                                    break;

                                  case c = 1 + c, (bar_2 && (bar_2.var = (foo_1 = -0 <= "undefined") && (arguments_1 >>= null * 38..toString()))) < (b_2 && (b_2.null += (3 === 38..toString()) >> ("bar" ^ []))):
                                    ;
                                    break;

                                  case c = 1 + c, -3 << 5 >>> "foo" / Infinity >>> (([ , 0 ][1] | 25) === (NaN ^ NaN)):
                                    ;
                                    break;

                                  case c = 1 + c, (23..toString() ^ 2) == 22 > "object" == ("undefined" << 22 | true < 25):
                                    ;
                                    break;
                                }
                            }
                        }
                    }
                }
            }
        }()] += ((((b_2 && (b_2[(c = c + 1) + NaN] = (foo_1 && (foo_1.a = [ , 0 ][1] ^ [])) & "c" < 1 ^ (5 == -1) > ("undefined", 
        "a"))) - ((0 && "") - 22 % 38..toString() <= "b" * 25 >>> (2 & "function")) && ((24..toString() & [ , 0 ][1]) <= (null, 
        "")) * (NaN >= 4, !undefined) > (undefined << -4 >= (c = c + 1, "c")) % (void 5 >= (-2 & "bar"))) & (([ , 0 ][1] || [ , 0 ][1]) == 24..toString() + [ , 0 ][1]) >> (38..toString() == [ , 0 ][1] && false << -5) === (delete (2 | -4) ^ (c = c + 1, 
        true ^ -2)) === ((b_1 = 1 + -5 || b_2 && (b_2.foo += 24..toString() !== "function")) | ("object" != undefined) > "b" % 22) >> (-3 * [] === (-2 !== "c") != (b_1 && (b_1[[ (c = 1 + c, 
        (c = c + 1, -3 === "a") * (("c" < 2) >> -3 / undefined)), (c = 1 + c, (b_2 && (b_2[++a] = ("a" && "") - (false === "c"))) * ("b" << "" || 24..toString() < {})), (c = 1 + c, 
        (-1 <= /[a2][^e]+$/ <= (undefined == 3)) % ("object" >= 1 == 4 <= this)) ].var] = /[a2][^e]+$/ * 1 / ("foo" >>> true))))) + (((c = c + 1, 
        (false > 24..toString()) - (2 && NaN)) == (b_2 = (Infinity | this) == ("a", 23..toString())) < (24..toString() ^ undefined) / (-5 === "object") ^ ((b_1 && (b_1.c += "c" >= [])) === (38..toString(), 
        23..toString())) >> (NaN_1 && (NaN_1[a++ + ((([ , 0 ].length === 2) > Infinity, 
        b_2 && (b_2[c = 1 + c, ("c" || true) === "undefined" > /[a2][^e]+$/ || foo_1_2 && (foo_1_2[1 === 1 ? a : b] = -"foo" & [ , 0 ][1] == -4)] |= -2 | -5)) != undefined >> "c" << (c = c + 1, 
        22))] = delete this >> (c = c + 1, -4))) >= ([] - 23..toString() === (NaN && -3) | (foo_1 && (foo_1[c = 1 + c, 
        (-2 - [ , 0 ][1] ^ (c = c + 1, -2)) < 2 % -5 % (22 & 2)] = 22 != -3)) / ("function" | -5))) & ((/[a2][^e]+$/ << 5 << (null > 23..toString()), 
        (-4, this) || b_2 && (b_2.a |= -3 >> true)) | (38..toString() ^ [] ^ 0 & true) >> ("function" >> -5 == (bar_2 = false > -1)) && ((([ , 0 ].length === 2) >>> 2) % ([ , 0 ][1] >= []) && (c = c + 1, 
        null >= Infinity)) !== (b_2 && (b_2[+b] *= ("foo" - /[a2][^e]+$/ === NaN << 23..toString()) >= ((25 === []) >= !/[a2][^e]+$/)))))) * (((bar_2 && (bar_2.foo = 2 + Infinity)) * ([] % 23..toString()) & (bar_2 && (bar_2.in = (false, 
        -3))) < 1 / 24..toString() & (foo_1 = 3 >= false < /[a2][^e]+$/ - "a") < (c = c + 1, 
        4) % (0 != -4)) + ((-4 !== [] && "foo" & [ , 0 ].length === 2) >> (3 / false & 22 % "a") ^ (delete 25 + (0 == this) ^ (bar_2 && (bar_2[{
            in: (c = 1 + c, [ , 0 ][1] * undefined <= -3 ^ ("foo" | -0) > -4 >> undefined),
            NaN: (c = 1 + c, ("" ^ "foo" || 0 & true) >> ([] == [ , 0 ][1] === undefined % {}))
        }] += (-4 ^ "bar") <= undefined * [])))) >> (b_1 && (b_1[void ("a" / "function" == NaN + "c" && void ([ , 0 ].length === 2) & (-0 | NaN))] = (((c = c + 1, 
        4) ^ ("undefined" ^ 1)) + ((c = c + 1, 0) | "bar" < 3)) / ((c = c + 1, 23..toString() && false) || (22 === "a") * ("object" & 22)) != ((-4 < -5) >>> -1 % Infinity & void (undefined === undefined) && ("c" - -3 | (false && null)) & ([] >= "foo") + ~[ , 0 ][1]))) ^ (c = c + 1, 
        foo_1 = (("b" !== [ , 0 ][1] != this < 38..toString() || (b_1 && (b_1.foo &= -2 & 24..toString())) <= void ([ , 0 ].length === 2)) && 38..toString() + false > (NaN == 1) === ({} ^ -3) <= (-0 <= "bar")) << ((("bar" && null) != "b" <= "b") < ("a" > []) / (/[a2][^e]+$/ < "a")) * ((b_2 && (b_2[c = 1 + c, 
        null < null > 22 >> false && void ("function" !== this)] ^= "b" << /[a2][^e]+$/) || arguments_1 && (arguments_1[c = 1 + c, 
        "c" < 3 >= (25, -2), Infinity >= 1 <= ("a" === [ , 0 ][1])] = [] <= 4)) / ([ , 0 ][1] || "undefined", 
        "" >>> false))));
        {}
        L24340: for (var brake177 = 5; (c = c + 1) + function bar() {
            if (a++ + [ (c = 1 + c, ("bar" << 5 ^ [ , 0 ][1] >>> -4) / ("c" >> 3 & [ , 0 ][1] === 4)) ][c = 1 + c, 
            ("a" != 4 || "a" !== "bar") / (b_1 && (b_1.in = 1 / "c" >= (0 | "undefined")))]) {
                switch (c = 1 + c, ("c" & -2) === (-4 ^ -1) & ("object" !== [ , 0 ][1]) * (true >> 4)) {
                  case c = 1 + c, "function" >= 38..toString() ^ "b" > 22 ^ (24..toString() && {}) === (undefined ^ this):
                    ;

                  case c = 1 + c, 38..toString() - /[a2][^e]+$/ >> ([ , 0 ][1] && this) !== (24..toString() + false & ("foo" && -3)):
                    ;
                    break;

                  case c = 1 + c, ([] << "foo" != 38..toString() << -0) <= ([] === /[a2][^e]+$/) + (bar_2 = -0 != 24..toString()):
                    ;
                    break;

                  case c = 1 + c, (-0 | this) + (4 - this) ^ (0 >> "function") % ("foo" - -0):
                    ;
                    break;
                }
            }
        }() && brake177 > 0; --brake177) {
            try {
                {
                    var brake181 = 5;
                    L24341: while (--b + [ (c = c + 1) + function() {
                    }, b_1 && b_1.foo, {
                        b: (c = 1 + c, (22 / "object" || NaN > -3) === ("foo" == {}) + (([ , 0 ].length === 2) <= -0))
                    }, ,  ] && --brake181 > 0) {
                        var a = function f11(b_1_2) {
                        }(null, (c = 1 + c, (b_2 && (b_2[--b + (b_2 ^= (c = 1 + c, (c = c + 1, /[a2][^e]+$/ >= 24..toString()) && "undefined" >> false | (38..toString(), 
                        5)))] = undefined == 2 && undefined ^ -0)) > (c = c + 1, -1 || 23..toString())), null);
                    }
                }
            } catch (b_2_2) {
                L24342: {
                    try {
                        c = 1 + c, ("a" ^ -3) << [] * -2 == -0 / 24..toString() >= ([ , 0 ].length === 2 | undefined);
                    } finally {
                    }
                    {
                        var brake186 = 5;
                        while ((c = 1 + c, b_2 = (23..toString() || "c") - (23..toString() | "b") ^ (b_2 && (b_2[c = 1 + c, 
                        b_2_2 && (b_2_2.null %= ((-0 ^ true) > (undefined != "a")) - (3 <= [] ^ !"bar"))] = 1 && Infinity)) - -{}) && --brake186 > 0) {
                            c = 1 + c, ((false || "a") && "b" ^ "number") / (-5 - undefined << Infinity * 23..toString());
                        }
                    }
                }
                var foo_1 = --b + (typeof foo_1 == "function" && --_calls_ >= 0 && foo_1());
            }
        }
    }()]:
    (c = c + 1) + (function() {
        try {
            {
                return a++ + "object";
            }
        } catch (Infinity_2) {
            if (a++ + 0) {
                var b_1;
            } else {
                switch ((c = c + 1, c = c + 1, /[a2][^e]+$/) ^ (foo_1 && (foo_1.NaN = (3 || "function") << ("b" <= /[a2][^e]+$/)))) {
                  case (c = c + 1) + (b_1 && b_1.var):
                    c = 1 + c, (NaN || true) * ("b" >= "b") << (-0 >>> true >> (false, 4));
                    break;

                  case --b + ((/[a2][^e]+$/ ^ NaN) - (-4 >> undefined) ^ ((b_2 && (b_2[c = 1 + c, Infinity_2 && (Infinity_2.c = (~"bar" - (undefined || 0), 
                    (b_1 *= -5 == "foo") && (Infinity_2 && (Infinity_2[c = 1 + c, [ , 0 ][1] + 4 >= (-0 ^ [ , 0 ][1]) >= (5 ^ -4) >>> (38..toString() > "undefined")] = "foo" | []))))] = 22 * undefined)) ^ /[a2][^e]+$/ & 38..toString())):
                    break;

                  case +function b_1() {
                    }():
                    c = 1 + c, ("number" % 4 < ("number" !== ([ , 0 ].length === 2))) / ("foo" < "bar" !== (c = c + 1, 
                    -3));
                    break;

                  case --b + a--:
                    break;
                }
            }
            {
                var brake197 = 5;
                while ([ (c = 1 + c, b_1 && (b_1.c *= ((38..toString() < null) >>> (Infinity_2 |= {} != -2)) * (false >> 4 <= (2 & "c")))), (c = 1 + c, 
                ((Infinity || 25) && 25 % /[a2][^e]+$/) - (undefined < ([ , 0 ].length === 2)) * ("function" == /[a2][^e]+$/)) ][--b + ((c = 1 + c, 
                c = c + 1, ({} > 5) - (-2 > "b")) ? (c = 1 + c, (false & "") - ({} >> "number") ^ (Infinity_2 && (Infinity_2[typeof (c = 1 + c, 
                {} - undefined > ([ , 0 ][1] >= []) != ((c = c + 1, [ , 0 ][1]) ^ "b" !== -4))] = (c = c + 1, 
                [ , 0 ][1]) || false <= "b"))) : (c = 1 + c, (foo_1_2 && (foo_1_2.a += null / NaN ^ [] * "b")) ^ (false & null) != (c = c + 1, 
                "object")))] && --brake197 > 0) {
                    typeof (c = 1 + c, (c = c + 1, "number" >>> 0) ^ (38..toString() && -1) + (b_1 && (b_1.null -= 3 == 23..toString())));
                }
            }
        } finally {
            L24343: for (var brake199 = 5; [ (c = 1 + c, ([] & 25 & ("bar" ^ 0)) !== (([ , 0 ].length === 2 ^ -5) == 4 << 24..toString())), (c = 1 + c, 
            (b_1 && (b_1[+function bar_2() {
            }()] += "c" / -4 === (-0 ^ []))) === (true << {} && (c = c + 1, "undefined"))), (c = 1 + c, 
            ((2 ^ {}) >> (23..toString(), "number")) * (-1 >= "a" > (-4 > [ , 0 ][1]))), (c = 1 + c, 
            (Infinity === NaN ^ (b_1 = [] | -1)) + (foo_1_2 && (foo_1_2.foo >>>= 3 <= "undefined" || ("a" || 38..toString())))) ][--b + (c = 1 + c, 
            b_2 && (b_2[arguments_1 && arguments_1.undefined] <<= (null === "object") >> (undefined == 4)), 
            "undefined" | true && 2 ^ "function")] && brake199 > 0; --brake199) {}
            {
                var brake201 = 5;
                do {
                    {
                        var brake202 = 5;
                        L24344: do {
                            c = c + 1;
                        } while (b_1 && --brake202 > 0);
                    }
                } while (--b + (typeof f7 == "function" && --_calls_ >= 0 && f7((c = 1 + c, ({} != /[a2][^e]+$/ != [ , 0 ][1] << "number") > ((foo_1 && (foo_1.in += 25 | "function")) != (23..toString() ^ "c"))))) && --brake201 > 0);
            }
        }
        return;
        {
            var expr205 = --b + --b;
            for (var key205 in expr205) {
                c = 1 + c;
                var parseInt_1 = expr205[key205];
                if ((new function() {
                    c = 1 + c, (1 >> 23..toString()) % ([ , 0 ][1] != "undefined") && (foo_1 && (foo_1[b = a] += 25 > 38..toString() != (-4, 
                    {})));
                    c = 1 + c, b_2 && (b_2[b_1 && b_1[a++ + !((c = c + 1, 1) <= ("" > 2) <= ("number" >> NaN ^ "a" >> 0))]] /= (23..toString() << "b" ^ (b_1 && (b_1[c = 1 + c, 
                    b_2 && (b_2.Infinity = (24..toString() * -2 >= ~4) % ("c" ^ -2 ^ this > Infinity))] = /[a2][^e]+$/ - -2)), 
                    (22 || 22) / (5 > "undefined")));
                }() || 8).toString()[a++ + delete (this % "foo" / (null >>> undefined) + (parseInt_1 && (parseInt_1[--b + [ (c = 1 + c, 
                (4 > "number") - ("bar" < 23..toString()) - (/[a2][^e]+$/ << "foo" !== (c = c + 1, 
                [ , 0 ][1]))), (c = 1 + c, foo_1_2 && (foo_1_2[b += a] = [ , 0 ][1] % "foo" <= (23..toString() == ([ , 0 ].length === 2)) ^ void ("" ^ 5))), ,  ][c = 1 + c, 
                -3 % 38..toString() === 2 >= true == ((bar_2 && (bar_2[c = 1 + c, (foo_1 && (foo_1.null = 22 < true)) >>> (Infinity > "bar") || 1 >= 1 ^ Infinity << 4] = Infinity > 38..toString())) ^ (NaN || undefined))]] += ("undefined" & "c") <= (5 > 3))))]) {
                    switch ({
                        b: (c = 1 + c, ((arguments_1 && (arguments_1[c = 1 + c, (b_1 && (b_1.a <<= 25 == []) || "undefined" == 25) * ((Infinity < 24..toString()) >> (undefined <= true))] = [ , 0 ][1] < /[a2][^e]+$/)) ^ (-4 && 3)) > (b_1 && (b_1[c = 1 + c, 
                        (b_1 && (b_1[(c = c + 1) + [ (c = 1 + c, void ("foo" && {}) < (c = c + 1, -2 * 25)), (c = 1 + c, 
                        b_1 && (b_1.null = (null > 25 && -3 !== -0) / (false << 38..toString() == ({} && Infinity)))), (c = 1 + c, 
                        c = c + 1, ("foo" === -3) <= 2 >> this), (c = 1 + c, (b_1 && (b_1.in *= (b_2 && (b_2.in = null >= -2)) == 5 % /[a2][^e]+$/)) + (([] === 1) < (c = c + 1, 
                        [ , 0 ].length === 2))), (c = 1 + c, void (-2 <= 25, "number" <= 23..toString())) ]] >>>= ("c" > "") >>> ("" << ([ , 0 ].length === 2)))) <= delete 38..toString() / (4 == -4)] *= "a" !== null)) % ("b" >= -0)),
                        foo: (c = 1 + c, (bar_2 && (bar_2[--a] -= ("" ^ "c") <= (b_2 ^= -2 && "c"))) == (b_2 && (b_2[[ (c = 1 + c, 
                        ({} !== "c") >>> /[a2][^e]+$/ * undefined | (foo_1_2 && (foo_1_2.c += ([ , 0 ].length === 2) - 24..toString())) ^ NaN % 38..toString()), (c = 1 + c, 
                        "c" << 23..toString() === "function" >= 38..toString() !== 25 >= NaN < (23..toString() & "b")) ]] = (2 > ([ , 0 ].length === 2)) % ([] ^ "function")))),
                        undefined: (c = 1 + c, (c = c + 1, -5) / (/[a2][^e]+$/ && "") << ((c = c + 1, /[a2][^e]+$/) >= ("bar" && "number"))),
                        NaN: (c = 1 + c, (("object", -0) == 24..toString() << 5) <= (3 | "function") << true - -0),
                        "": (c = 1 + c, b_1 && (b_1[foo_1_2 && foo_1_2[(b_1 && (b_1[c = 1 + c, (arguments_1 && (arguments_1.NaN = 22 > 38..toString()) && -2 <= 24..toString()) !== (null * "c" ^ 3 + 23..toString())] = "bar" || "bar")) ^ {} & [] ^ "foo" / 2 <= 25 * 23..toString()]] = (2 === "number") >> (null < 0) >= ([ , 0 ][1] % undefined ^ (parseInt_1 && (parseInt_1[c = 1 + c, 
                        ("bar" - Infinity) % (NaN === this) ^ (22 < 0) >>> -4 - 25] = "undefined" <= undefined)))))
                    }[b + 1 - .1 - .1 - .1]) {
                      default:
                        {
                            var brake210 = 5;
                            while ((c = 1 + c, (-1 !== 23..toString()) + ({} < -1) ^ false - true !== "undefined" * "bar") && --brake210 > 0) {
                                c = 1 + c, (22 & "a" ^ -2 / 23..toString()) < /[a2][^e]+$/ % "b" >>> (bar_2 && (bar_2[c = 1 + c, 
                                c = c + 1, -0 >= 24..toString(), -(NaN, 22)] = {} !== 4));
                            }
                        }
                        {
                        }

                      case a++ + ((-2 <= true && (b_1 = true + -4)) <= (b_1 += 1 > 4 != (38..toString() == null))):
                        for (var brake213 = 5; (c = 1 + c, NaN ^ "object" | "" >> 2 | (arguments_1 && (arguments_1.in -= "foo" && -4)) >>> "bar" - -4) && brake213 > 0; --brake213) {
                            c = 1 + c, ((0 | this) >>> ("number" | "c")) - (void "b" || 1 > 2);
                        }
                        if (c = 1 + c, (-0 ^ "c" ^ 24..toString() >> "b") + (4 ^ "a" ^ null !== this)) {
                            c = 1 + c, (foo_1_2 = null << -3 >= "function" % "foo") ^ (23..toString() & 22) !== ({} && 1);
                        }
                        break;

                      case --b + {
                            undefined: (c = 1 + c, ("foo" >> -2 != ([ , 0 ].length === 2 || 24..toString())) < ("number" >>> undefined & ("a" | true))),
                            foo: (c = 1 + c, bar_2 && (bar_2.Infinity <<= ("a" < "a") >> ("a" != -0) ^ (-1 << undefined, 
                            +25)))
                        }[--b + (c = 1 + c, Infinity == 0 !== (b_1 && (b_1.in -= /[a2][^e]+$/ ^ undefined)) !== ~"object" + (24..toString() > Infinity))]:
                        break;

                      case ((c = c + 1) + [ (c = 1 + c, ((foo_1 += "object" < undefined) == 38..toString() - 1) >= (this > null || "object" + "")) ] || a || 3).toString():
                        {
                            var expr217 = (c = 1 + c, 1 !== "" == 2 * -5 ^ (bar_2 += 23..toString() >= "a" >= null + "a"));
                            for (var key217 in expr217) {
                                c = 1 + c;
                                var b_1 = expr217[key217];
                                c = 1 + c, ({} != 22) / ("bar", 1) & "undefined" / "function" > -1 * "undefined";
                            }
                        }
                        break;
                    }
                }
            }
        }
    } || 4).toString()[--b + !((("b" && [ , 0 ][1]) != 3 >= 22) * ((foo_1_2 = 4 == /[a2][^e]+$/) % (NaN >> {})))];
    for (var brake219 = 5; typeof delete (-(38..toString() != "b") - (-3 || 1) * ("a" + 0)) && brake219 > 0; --brake219) {
        var b_2_2 = function f12(a, a) {
            try {
                if (b_1 && b_1.c) {
                    (c = c + 1) + (b = a);
                } else {
                    return;
                }
            } finally {
                for (var brake225 = 5; b_1 && brake225 > 0; --brake225) {
                    return a++ + (typeof foo_1 == "function" && --_calls_ >= 0 && foo_1(NaN, -3));
                }
                {
                    var expr227 = a++ + (1 === 1 ? a : b);
                    for (var key227 in expr227) {
                        --b + 1;
                    }
                }
            }
        }(1, 1, (c = c + 1) + (1 === 1 ? a : b));
    }
    break;
}

console.log(null, a, b, c, Infinity, NaN, undefined);
// uglified code
// (beautified)
for (var _calls_ = 10, a = 100, b = 10, c = 0, brake3 = 5; c += 1, b = a, "function" == typeof f1 && 0 <= --_calls_ && f1("24", typeof ((c += 1) + ("function" == typeof a && 0 <= --_calls_ && a({
    1.5: (c = 1 + c, "foo" * ((a = 0) > (a = 4))),
    set undefined(c) {
        this.Infinity = !0;
    },
    0: (c = 1 + c, !0 % (undefined << "38") <= (1 * this <= "foo"))
}.Infinity))), b = a), c += 1, a *= a, 0 < --brake3; ) {
    var Math = function n(e, f) {
        var r = function(a) {
            var _ = f;
            for (var e in _) {
                c = 1 + c, _[e];
            }
            for (var n = 5; a++ + (b = a) && 0 < n; --n) {
                for (var r = 5; c = 1 + c, (this >> 3 && !1) >>> 1 && 0 < --r; ) {
                    c = 1 + c, c += 1;
                }
            }
        }(--b + [ (c = 1 + c, c += 1, ("function" == (e && (e.NaN += 0))) % !0), (c = 1 + c, 
        !1) ]);
        !function() {
            for (var a = 5; b-- && 0 < --a; ) {}
            var _ = (c += 1) + (0 <= --_calls_ && n([], {}));
            for (var e in _) {
                c = 1 + c, f && (f.var <<= 5 / this);
            }
        }(), r = function(a, a) {
            for (var _ = 5; r++ + (b + 1 - .3) && 0 < --_; ) {}
            c = 1 + (c + 1), f && (f[c = 1 + c, (!1 ^ "undefined" * this) < !0] = 0), e = 3, 
            c = 1 + ((c = 1 + (1 + c)) + 1), c += 1, (a ^= 0) && (a[90] += "a");
        }(0);
    }([ a++ + !0, --b + b-- ], (b = a = 800, !0));
}

var expr17 = [ {
    "": a++ + ((c += 1) + ("function" == typeof f5 && 0 <= --_calls_ && f5(!a, (c += 1) + "" + (c = 1 + c, 
    void 0 < (a && (a[c = 1 + c, (a = 0) >> !1] += !1)) | (a && (a[{
        Infinity: (c = 1 + c, (a && (a.b = 0) && 0) >>> (!0 <= (a && (a[c = 1 + c, (a && (a.Infinity = !1)) < !1] *= 0 * undefined))))
    }.a] = !0 | (c += 1, ""))) || a || 3), (c += 1) + (c = 1 + c, typeof (undefined <= ("object" === undefined) ^ 1 == this >>> !0)))) ? --b + {
        1.5: "function" == typeof a && 0 <= --_calls_ && a(),
        "-2": --b + (c = 1 + c, (!1 <= !0 >>> undefined) << (NaN >> (a && (a[c = 1 + c, 
        1] -= 0))) ? (c = 1 + c, -1) : (c = 1 + c, (a && (a.Infinity >>= NaN)) & (a && (a[c = 1 + c, 
        a && (a.var += 50), !0 % (!0 << ("38" | this))] /= 5)) >> 0)),
        "\t": b /= a,
        NaN: a++ + {
            get Infinity() {
                c = 1 + c;
            },
            a: !0,
            3: (c = 1 + (1 + c), 1 - (a && (a.foo = 1 / 0))),
            "-2": !0,
            undefined: (c = 1 + (1 + c), NaN + ("24" & this) << ((a && (a[c = 1 + c, !0] += 0)) << (null >> this)))
        }[c = 1 + c, 1 >>> (a %= !1)]
    }.foo : a),
    3: (c += 1) + +((!1 | (a && (a.foo *= 0))) >>> 0)
}, , a++ + ("" + (a++ + ++b || 6))[a && a[--b + [ --b + {
    1.5: (c = 1 + c, (a = !1) + NaN)
}, 1 / 0 ].var]] ];

for (var key17 in expr17) {
    c += 1;
}

switch (b = a) {
  case ("" + (a++ + ("function" == typeof f0 && 0 <= --_calls_ && f0()) || 3))[a++ + typeof c_1]:
    var expr22 = --b + --b;
    for (var key22 in expr22) {
        c = 1 + c;
        var undefined = expr22[key22], brake23 = 5;
        do {
            var bar_2 = void 0;
        } while (0 < --brake23);
    }
    var brake29 = 5;
    do {
        for (var brake31 = 5; (c += 1) + ("" + ("function" == typeof bar_2 && 0 <= --_calls_ && bar_2() || 9))[(c += 1) + new function _() {
            if ([ !0 ][c = 1 + (1 + (1 + c)), 0]) {
                var e = (c = 1 + c, !1 / (undefined === this) * !0);
                for (var n in e) {
                    var r = e[n];
                    c = 1 + (1 + c);
                }
            }
            switch (c = 1 + ((c = 1 + c) + 1), (4 == (r && (r.foo *= 5))) / NaN) {
              case a++ + {
                    1.5: (_[--b + (c = 1 + (1 + c), "number")] %= 25 >> ("function" === undefined)) + (!1 + []),
                    null: (c = 1 + (c + 1), bar_2 && (bar_2.undefined = 0), 0),
                    1.5: !0,
                    "\t": (c = 1 + (1 + c), !0 * (this || "b") < (0 === -2 <= undefined))
                }.c:
                c = 1 + c, c += 1, _.NaN = "object";
                break;

              case (c += 1) + b:
                c = 1 + c, bar_2 += NaN;

              case _.undefined:
                c = 1 + c, bar_2 && (bar_2.a = 0);
                break;

              case a++ + ("function" == typeof f5 && 0 <= --_calls_ && f5(this, (c = 1 + c, 5 | (bar_2 = !0)))):
                c = 1 + c, c += 1, r && (r[c = 1 + c, -28] |= 0), _[b--] = NaN < (c += 1, []), c = 1 + c, 
                bar_2 && (bar_2.a %= "bar" * this);
            }
            var f = 5;
            do {
                return c = 1 + c, (-5 >> ({} | this)) % NaN;
            } while ((c += 1) + b-- && 0 < --f);
        }()] && 0 < brake31; --brake31) {
            var b_1 = void function() {
                c = 1 + (1 + c), bar_2 && (bar_2.var /= "function" === this);
            }((c = 1 + ((c = 1 + c) + 1), c += 1));
        }
        var brake51, brake53, brake55, brake57, brake66, brake68, brake70, brake71, brake72, arguments_1 = "", b_2 = a++ + --b;
        break;
    } while (/[abc4]/.test("" + ((c += 1) + delete a || b || 5)) && 0 < --brake29);

  case "object" != typeof b_1_1:
    b = (c += 1) + +a;
    var bar = "function" == typeof f8 && 0 <= --_calls_ && f8(!1, a++ + /[abc4]/.test("" + ("function" == typeof b_1 && 0 <= --_calls_ && b_1(a++ - 1) || b || 5)));
    break;

  case (c += 1) + [ b_1 = --b + ++a ]:
    "function" == typeof f3 && 0 <= --_calls_ && f3("24", 22);
    try {
        b_2 = function(_) {
            _ && (_.Infinity += !0), --b, --b, c = 1 + c, c += 1, a++;
        }((c += 1, -3 >>> (b_2 && (b_2.null *= 4))), --b);
    } finally {
        switch (new function() {
            this[b_1 && b_1.foo] <<= !0, this.NaN += 1 + (1 >> (arguments_1 && (arguments_1.Infinity >>>= 0)));
            var _ = 5;
            do {
                return c = 1 + c, (b_1 && (b_1["function" == typeof f10 && 0 <= --_calls_ && f10("c")] = !1 !== (c += 1, 
                "a"))) < 1;
            } while (a++ + b && 0 < --_);
            c = 1 + c, b_1 && (b_1[c = 1 + c, b_2 && (b_2[(c += 1) + ("function" == typeof b_2 && 0 <= --_calls_ && b_2((c = 1 + c, 
            b_1 += 0 === (b_1 = !1))))] %= NaN) || !0] = !1), c = 1 + (c = 1 + c), b_2 = NaN;
            try {
                c = 1 + c, b_2 = 1, b_2 |= -0 & "function" === undefined, c = 1 + (c += 1);
            } catch (a) {
                c = 1 + (c = 1 + c), b_2 && (b_2.foo = !0 | (bar_2 && (bar_2[c = 1 + c, b_1 && (b_1.foo *= (23 != (bar_2 >>>= /[a2][^e]+$/ & a)) <= (b_1 && (b_1[c = 1 + c, 
                0] += a - 25), 1))] = 0)));
            } finally {
                c = 1 + c, c = 1 + (c += 1);
            }
        }()) {
          case "function" == typeof b_1 && 0 <= --_calls_ && b_1(1 / 0, !0, "foo"):
            break;

          case (c += 1) + {
                length: {
                    null: 2,
                    in: (c = 1 + (c = 1 + c), 4),
                    b: -0 << ("/[a2][^e]+$/object" & (b_1 = 22)),
                    b: (c = 1 + (c = 1 + (c += 1)), b_2 && (b_2[a++ + b_2] = !1 < (c += 1, 0))),
                    NaN: (c = 1 + c, !1)
                }.a,
                length: a++ + b_2,
                length: ~(bar_2 && (bar_2.foo = (this || -3) < null ^ 1))
            }:
            switch (--b, bar_2 && bar_2[a--]) {
              case (c += 1) + b++:
                break;

              case (c += 1) + /[abc4]/.test("" + (--b + b || b || 5)):
                for (var brake102 = 5; c = 1 + c, (b_2 = 0 << (bar_2 && (bar_2.NaN = !0))) || b_1 && (b_1[c = 1 + c, 
                !1 % (0 >>> (this && NaN))] -= !1), c = 1 + c, -4 | (bar_2 && (bar_2.a <<= 3)) - (c += 1, 
                "object") && 0 < --brake102; ) {}
                var foo_1;
                break;

              case "function" == typeof f7 && 0 <= --_calls_ && f7():
                var expr105 = (c = 1 + c, 1);
                for (var key105 in expr105) {
                    c = 1 + c;
                }
            }
            break;

          case --b + typeof bar_2_2:
            for (var brake107 = 5; c += 1, 0 < --brake107; ) {}
            break;

          default:
            var brake109 = 5;
            do {} while ((c += 1) + (b_1 && b_1.null) && 0 < --brake109);
            var foo_1_2 = a++ + ((0 ^ undefined) >> !1 >>> 0);
            b_2 = (c += 1) + ("function" == typeof b_2 && 0 <= --_calls_ && b_2());
        }
    }
    break;

  case (c += 1) + {
        "\t": a++ + delete b,
        c: (c += 1) + ((c += 1) + b++),
        "-2": +function() {
            for (var _ = 5; "function" == typeof f0 && 0 <= --_calls_ && f0(--b + +function a() {
                for (var b = 5; c = 1 + ((c = 1 + c) + 1), 1 != (a.undefined = 0) && 0 < --b; ) {}
                c = 1 + (1 + c), c += 1;
            }(), b &= a, a++ + typeof (arguments_1 %= {
                b: (c = 1 + c, 0 != (b_2 && (b_2["function" == typeof b_2 && 0 <= --_calls_ && b_2(25, (c = 1 + c, 
                1))] >>= !1))),
                a: (c = 1 + c, (foo_1 && (foo_1[a] |= !0)) <= 5),
                undefined: (c = 1 + c, 2 << -4)
            }.null)) && 0 < _; --_) {
                var e = "function" == typeof f8 && 0 <= --_calls_ && f8(--a, typeof b_2_2, "");
                for (var n in e) {
                    c = 1 + c, i = e[n];
                    for (var r = 5; --b + +function() {
                        switch (-1) {
                          case c = 1 + ((c = 1 + (1 + c)) + 1), (b_1 && (b_1[c = 1 + c, -1] = !1)) < NaN == (b_2 && (b_2[void 0] = 0)):
                          case c = 1 + c, NaN < 22 % (2 | this):
                          case c = 1 + c, (24 ^ (b_2 >>>= "24")) - 1:
                        }
                    }() && 0 < --r; ) {
                        for (var f = 5; a++ + ++a && 0 < --f; ) {
                            --b, c = 1 + c, foo_1 = NaN, i && (i[c = 1 + c, NaN] = !1), c = 1 + c, c += 1;
                        }
                    }
                }
            }
            switch (!0) {
              default:
              case (c += 1) + a:
                --b;
                break;

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

              case !b:
                try {
                    try {
                        c = 1 + c, foo_1 += 0 < (b_2 && (b_2.undefined *= !1));
                    } catch (c) {}
                } catch (a) {
                    c = 1 + c, i && (i.undefined = 0), c = 1 + c, b_2 && (b_2[c = 1 + c, 0 & (c += 1, 
                    !1)] *= 5);
                } finally {
                    c = 1 + c, arguments_1 && (arguments_1.null += NaN), c = 1 + c, c += 1;
                }
                c = 1 + (1 + (1 + c)), b_1 && (b_1[b] += 0 * (b_2 && (b_2[--b + /[a2][^e]+$/] <<= !1)));
            }
            var i;
        }(),
        c: a++,
        "-2": b
    }[a++ + new function a() {
        this.b = ((!0 | a + (bar_2 && (bar_2.NaN += 0), !0)) == (!1 < (NaN < (b_1 && (b_1[c = 1 + c, 
        !0] = "c"))) & !1 >> !1 - (c += 1, -5)) & !((0 - (foo_1_2 = NaN)) * (f && (f[--b + [ (c = 1 + c, 
        (f && (f[b--] <<= (arguments_1 && (arguments_1[c = 1 + c, (bar_2 && (bar_2.a += -2)) << !0] = 21)) / (f += !1))) | (arguments_1 *= !1) < !1) ].b] ^= 0)))) + !1 / (c += 1, 
        bar_2 = 1, ((foo_1_2 && (foo_1_2.undefined = NaN === this)) >>> ("/[a2][^e]+$/24" != undefined)) + !1 - (!0 === (arguments_1 = 0) / (bar_2 && (bar_2[c = 1 + c, 
        1 * (0 <= (b_1 && (b_1.Infinity >>= !1)))] = NaN)))) == (c += 1, (f = 1 / 0 + ((3 | !1 >>> (f = 4)) - ((b_2 && (b_2[{}[c = 1 + c, 
        bar_2 && (bar_2.b = this < !1 <= -2)]] -= 0)) >> 1) ^ (b_2 && (b_2[--b + "-3"] = (bar_2 && (bar_2[c = 1 + c, 
        !1] = 0), ("1a" < ((arguments_1 = !0) && (arguments_1.b >>= -.8))) * (-2 >>> NaN)))))) | (0 == (b_2 && (b_2[(c += 1) + ("function" == typeof f && 0 <= --_calls_ && f("object"))] = -0)) % 0) >>> ((bar_2 && (bar_2[(c += 1) + b] = /[a2][^e]+$/ >>> undefined & (bar_2 && (bar_2[c = 1 + c, 
        0 + (c += 1, {} - (c += 1, -2))] <<= undefined == 1 / 0))) && !1) - ((bar_2 && (bar_2[{
            3: (c = 1 + c, 0 != (arguments_1 && (arguments_1[r++ - r] = 1))),
            undefined: !0,
            "": 0
        }[c = 1 + (1 + ((c = 1 + ((c = 1 + c) + 1)) + 1)), NaN * (-3 <= this) <= (0 == (c += 1, 
        5))]] |= 0)) >= !1 - ("b" << undefined)) >>> (+(NaN | (f && (f.Infinity -= undefined % /[a2][^e]+$/))) < -1 >>> -25 % (b_2 && (b_2.Infinity *= !1))))), 
        this[function() {
            var a = r++ + --b;
            for (var _ in a) {
                c = 1 + c;
                var e = a[_];
                try {
                    !function() {
                        c = 1 + (1 + c), c += 1, bar_2 && (bar_2[c = 1 + c, (5 < this != NaN) << -0] = -4);
                    }((c = 1 + (1 + c), e && (e[r++ + b++] += 4294967320)));
                } catch (a) {
                    for (var n = 5; --b + (c = 1 + c, !1) && 0 < --n; ) {
                        switch (c = 1 + c, NaN / undefined - 1) {
                          case c = 1 + c, 1:
                          case c = 1 + c, (bar_2 && (bar_2.var = (f = !1) && (arguments_1 >>= 0))) < (b_2 && (b_2.null += 0)):
                          case c = 1 + c, 4294967200:
                          case c = 1 + c, !1:
                        }
                    }
                }
            }
        }()] += ((((b_2 && (b_2[(c += 1) + NaN] = !1 & (f && (f.a = 0)) ^ !1)) - !0 && !0 * !undefined > (undefined << -4 >= (c += 1, 
        "c")) % !1) & 0 == (!0 ^ (c += 1, -1)) === ((b_1 = -4) | NaN < ("object" != undefined)) >> (0 != (b_1 && (b_1[[ !1 * (!1 >> -3 / undefined), (c = 1 + ((c = 1 + c) + 1), 
        !0 * (b_2 && (b_2[++r] = 0))), (c = 1 + c, (!1 <= (3 == undefined)) % (0 == 4 <= this)) ].var] = NaN)))) + (c += 1, 
        (NaN == (b_2 = "23" == (1 / 0 | this)) < ("24" ^ undefined) / !1 ^ ("23" === (b_1 && (b_1.c += !0))) >> (a[r++ + ((b_2 && (b_2[c = 1 + c, 
        foo_1_2 && (foo_1_2[r] = 0)] |= -1)) != undefined >> "c" << (c += 1, 22))] = !0 >> (c += 1, 
        -4)) >= (!1 | (f && (f[c = 1 + c, (-2 ^ (c += 1, -2)) < 0] = !0)) / -5)) & ((this || b_2 && (b_2.a |= -2)) | 38 >> (0 == (bar_2 = !0)) && 0 !== (b_2 && (b_2[+b] *= !1))))) * ((0 * (bar_2 && (bar_2.foo = 1 / 0)) & (bar_2 && (bar_2.in = -3)) < 1 / "24" & (f = !1) < (c += 1, 
        0)) + (!0 + (0 == this) ^ (bar_2 && (bar_2[{
            in: 0 * undefined <= -3 ^ -4 >> undefined < 0,
            NaN: (c = 1 + (1 + c), 0 >> (!0 === undefined % {}))
        }] += -4 <= undefined * [])) ^ 0) >> (b_1 && (b_1[void 0] = ((1 ^ (c += 1, 4)) + (!1 | (c += 1, 
        0))) / (c += 1, 0) != 0)) ^ (c += 1, f = ((1 != this < "38" || (b_1 && (b_1.foo &= 24)) <= void 0) && !1) << !1 * (b_2 && (b_2[c = 1 + c, 
        !1] ^= 0) || arguments_1 && (arguments_1[c = 1 + c, !1] = !0)) / 0));
        for (var _ = 5; (c += 1) + function() {
            if (r++ + [ NaN ][c = 1 + (1 + c), !0 / (b_1 && (b_1.in = !1))]) {
                switch (c = 1 + c, 0) {
                  case c = 1 + c, 1 ^ {} === (undefined ^ this):
                  case c = 1 + c, !1:
                  case c = 1 + c, !0 <= !1 + (bar_2 = !0):
                  case c = 1 + c, 4 - this + (-0 | this) ^ NaN:
                }
            }
        }() && 0 < _; --_) {
            try {
                for (var e = 5; --b + [ (c += 1) + function() {}, b_1 && b_1.foo, {
                    b: (c = 1 + c, !1)
                }, ,  ] && 0 < --e; ) {
                    var r = (c = 1 + c, b_2 && (b_2[--b + (b_2 ^= (c = 1 + c, c += 1, !1))] = 2 == undefined && -0 ^ undefined), 
                    void (c += 1));
                }
            } catch (a) {
                try {
                    c = 1 + c;
                } finally {}
                for (var n = 5; c = 1 + c, (b_2 = 0 ^ (b_2 && (b_2[c = 1 + c, a && (a.null %= (("a" != undefined) < 1) - 0)] = 1 / 0)) - NaN) && 0 < --n; ) {
                    c = 1 + c;
                }
                var f = --b + ("function" == typeof f && 0 <= --_calls_ && f());
            }
        }
    }()]:
    c += 1, --b, foo_1_2 = !1;
    for (var brake219 = 5; 0 < brake219; --brake219) {
        var b_2_2 = function(a, a) {
            try {
                if (!b_1 || !b_1.c) {
                    return;
                }
                c += 1, b = a;
            } finally {
                for (var _ = 5; b_1 && 0 < _; --_) {
                    return a++ + ("function" == typeof foo_1 && 0 <= --_calls_ && foo_1(NaN, -3));
                }
                var e = a++ + a;
                for (var n in e) {
                    --b;
                }
            }
        }(1, 1, c += 1);
    }
}

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

uglified result:
null NaN NaN 240 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 2, 2019
alexlamsl added a commit to alexlamsl/UglifyJS that referenced this issue Dec 2, 2019
alexlamsl added a commit that referenced this issue Dec 2, 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