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

Closed
alexlamsl opened this issue Dec 9, 2021 · 1 comment · Fixed by #5216
Closed

ufuzz failure #5212

alexlamsl opened this issue Dec 9, 2021 · 1 comment · Fixed by #5216

Comments

@alexlamsl
Copy link
Collaborator

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

switch (((yield, NaN_2 = "object" in {
    then: a++ + [],
    Infinity: a++ + {
        "-2": !function() {
            {
                var expr2 = --b + (typeof f0 == "function" && --_calls_ >= 0 && f0(..."" + a));
                L18009: for (var key2 in expr2) {
                    try {
                        if (c = 1 + c, (c = c + 1, 24..toString()) / (0 && /[a2][^e]+$/) <= ((24..toString() == 2) >= (-1 ^ -2))) {
                            c = 1 + c, Infinity + -4 >= (5 ^ Infinity) && (38..toString(), {}) == 3 / 5;
                        } else {
                            c = 1 + c, !(("c" << /[a2][^e]+$/) - ("a" > 24..toString()));
                        }
                    } catch (foo_2) {
                        c = 1 + c, foo_2 && (foo_2[typeof f1 == "function" && --_calls_ >= 0 && f1(25, (c = 1 + c, 
                        (("b" !== []) << (false <= Infinity)) + (38..toString() >= 23..toString()) / (undefined === "b")))] = (key2 && (key2[(c = c + 1) + [ (c = 1 + c, 
                        -1 % -0 & (foo_2 && (foo_2.async += 3 >>> 0)) & false !== Infinity == (true & -5)), (c = 1 + c, 
                        (foo_2 = key2 && (key2.undefined *= ([ , 0 ].length === 2) <= -5) || "undefined" * "foo") - ("foo" << "undefined" !== ("" === "number"))), (c = 1 + c, 
                        ("a" + false || ("function" || -5)) | (key2 <<= NaN != /[a2][^e]+$/) >= "undefined" / "bar"), (c = 1 + c, 
                        (key2 && ([ key2[typeof foo_1 === "string"] ] = [ Infinity + 1 < true >> -5 ])) ^ /[a2][^e]+$/ << Infinity & ([] | [ , 0 ].length === 2)) ][c = 1 + c, 
                        foo_2 && (foo_2[(c = c + 1) + (typeof f1 == "function" && --_calls_ >= 0 && f1(25))] += 0 % Infinity / (-5 ^ "object")), 
                        "bar" >> 24..toString() > (2 ^ 38..toString())]] = -3 - true ^ (foo_2 && (foo_2.in = 23..toString() != -2)))) >> (22 >> 4 ^ /[a2][^e]+$/ <= -4));
                        c = 1 + c, ("" || 0) << (25 >= "b") || /[a2][^e]+$/ / 38..toString() !== ([ , 0 ][1] != "function");
                    }
                }
            }
            if (b++) {
                switch ((c = 1 + c, ((c = c + 1, 22) ^ -1) >= (true ^ 3) - "b" * 3) ? (c = 1 + c, 
                (-2 !== 22) % (null || "bar") == (("c" && 5) == (3 != "function"))) : (c = 1 + c, 
                5 == null | void "function" && "bar" >>> true != "object" / NaN)) {
                  default:
                    c = 1 + c, (a = void -2 === (-4 != "c")) || (Infinity < "a") >> -2 - [];

                  case --b + (typeof await === "object"):
                    c = 1 + c, (/[a2][^e]+$/ || []) | ("a" && -1) | (a && (a[--b + 24..toString()] += true * "undefined" <= ~"function"));
                    break;

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

                  case (c = c + 1) + typeof yield_1:
                    c = 1 + c, ("b" ^ -0) >> (a <<= "c" && 22) || (a && (a.then = 0 >= 3)) & 22 - 2;
                    break;
                }
            } else {
                var expr14 = (c = c + 1) + ++a;
                for (var key14 in expr14) {
                    try {
                        c = 1 + c, ([ , 0 ].length === 2) >> null >>> (0 ^ "a") ^ (-4 << 2 && 5 ^ "undefined");
                    } finally {
                    }
                }
            }
        }(),
        "\t": --b + (a && typeof a.var == "function" && --_calls_ >= 0 && a.var((c = c + 1) + (b = a)))
    }[{
        var: [ a++ + +(-4 - "bar" != -2 <= this ^ (-3 >>> 23..toString() && 25 >>> "b")), a++ + ("object" in [ (c = 1 + c, 
        (false && "function") != ("c" === -3), (-4 ^ "function") == 2 << -0), ..."" + a, (c = 1 + c, 
        (c = c + 1, this >= true) >>> (1 <= -0 <= (false ^ false))), (c = 1 + c, (Infinity / [] !== (a && ([ a[c = 1 + c, 
        a && (a.b *= (22 << 0, Infinity >>> Infinity) > ([ , 0 ][1] <= "a") << (c = c + 1, 
        [ , 0 ].length === 2))] ] = [ 0 ^ "foo" ]))) - (a = undefined < -4 >= "foo" << -3)), (c = 1 + c, 
        /[a2][^e]+$/ >>> -2 | this >> 3 && ("a" && "c") / (1 ^ null)) ]), a++ + {
            c: (c = 1 + c, (1 == 4) <= 25 * "number" & "" << [ , 0 ][1] !== -3 * -2),
            NaN: (c = 1 + c, (a && (a.then ^= 5 << -3 <= (5 <= null))) * (38..toString() * [] ^ 4 & 0))
        }[(c = c + 1) + (a && typeof a.null == "function" && --_calls_ >= 0 && (c = 1 + c, 
        (("function" | true) != ("foo" !== "bar")) >> ((a = [ , 0 ].length === 2 ^ -2) === 38..toString() > "c"), 
        a.null)())], (--b + [ (c = 1 + c, (2 > 5 >= (-5 <= 25)) << (23..toString() < "b") + ("number" !== this)), (c = 1 + c, 
        void (/[a2][^e]+$/ * "" || (-1, 1))), (c = 1 + c, (-3 >= 4, "undefined" > "") ^ (a = "a" / 38..toString() + ([ , 0 ][1] > 4))) ].a || 7).toString()[--b + {
            then: (c = 1 + c, c = c + 1, a && (a.set |= (true >= []) >> ("bar" >= "undefined"))),
            3: (c = 1 + c, (a *= ([ , 0 ].length === 2 && "bar") % (false > true)) ^ 38..toString() << "function" >= -0 >>> 1)
        }], ...[ ...[ (c = 1 + c, a >>= ("bar" & -5) - (a && (a.b &= 23..toString() >>> "function")) === (c = c + 1, 
        "foo") >> (23..toString() | 23..toString())), (c = 1 + c, ("b" << 23..toString()) - (-3 && [ , 0 ].length === 2) << ("a" != 4 | -3 / [ , 0 ][1])), (c = 1 + c, 
        ("foo" >= ([ , 0 ].length === 2)) * (a && (a[c = 1 + c, a += 4 <= ([ , 0 ].length === 2) == void 24..toString() && (-3 != "object") >>> (a && (a.foo >>= "number" > -5))] = Infinity + [])) ^ (4 >>> 38..toString()) + this * -1) ], ...[ (c = 1 + c, 
        -2 - -4 === (25 ^ "function"), (Infinity << []) * (-4 && "number")), (c = 1 + c, 
        ((a &= "" & 4) || 3 - this) + (undefined >>> "" << (-2 && -2))) ] ] ],
        b: a,
        var: --b + typeof ((c = c + 1) + (--b + (b >>>= a) || a || 3).toString()),
        set: typeof (a && a[--b + (a = ((c = 1 + c, 38..toString() << 38..toString() << -2 / [ , 0 ][1] == ([ , 0 ][1] != "a") >> (a && (a.then = "a" ^ "b"))) || a || 3).toString())]),
        ...(c = c + 1) + (typeof bar_2 === "boolean")
    }],
    then: a && typeof a.get == "function" && --_calls_ >= 0 && a.get("", "", (c = c + 1) + /[abc4]/.test((a && typeof a.c == "function" && --_calls_ >= 0 && a.c(--b + --a, "undefined") || b || 5).toString())),
    value: a++ + [ /[abc4]/g.exec((typeof a == "function" && --_calls_ >= 0 && a(--b + (a = (c = c + 1) + +(23..toString() % 25 > ([ , 0 ].length === 2) % "function" <= (this >= 38..toString()) - (38..toString() | [ , 0 ].length === 2))), a++ + {
        3: (c = 1 + c, (5 === undefined | (a += 24..toString() * [])) === (a && (a[c = 1 + c, 
        (a && (a[a && typeof a.in == "function" && --_calls_ >= 0 && (c = 1 + c, (a = 23..toString() != "function" || 24..toString() >> 4) - (a && (a[(c = c + 1) + a] += (2 === 23..toString()) * (-5 != 0))), 
        a.in)()] = (38..toString() || [], 25 && "bar"))) ^ (("a", -1) ^ [ , 0 ][1] * -5)] = 0 & "b")) > ({} | "object"))
    }.done) || b || 5).toString()) ][b + 1 - .1 - .1 - .1]
}) => -0 in {
    undefined: a++ + (typeof f1 == "function" && --_calls_ >= 0 && f1(-3, null)),
    [NaN_2 && typeof NaN_2.a == "function" && --_calls_ >= 0 && NaN_2.a("undefined", --b + delete (("foo" || "") >= "bar" >>> 5 <= !(yield = 4 >= -2)))]: a++ + (typeof f1 == "function" && --_calls_ >= 0 && f1((--b + (yield && typeof yield.length == "function" && --_calls_ >= 0 && yield.length(undefined, /[a2][^e]+$/, 24..toString())) || 0).toString()[([ , 0 ][1] / ([ , 0 ].length === 2) || 3 > 38..toString()) | (NaN_2 && (NaN_2.a = /[a2][^e]+$/ !== 4)) + ("" < false)], b /= a)),
    next: (c = c + 1) + ((c = c + 1) + yield || a || 3).toString(),
    null: a++ + (b += a)
})((a++ + {}[a++ + !((true < "c" ^ 24..toString() >= NaN) == ([ , 0 ].length === 2 !== Infinity != 4 - 5))] || 6).toString()[--b + (a && a.undefined)], +((false && "b") >= ("function" === 5) ^ (-5 & 25) > -2 - -3), a++ + --b)) {
  case (c = c + 1) + {
        c: a++ + (--b + (a && a[--b + (1 === 1 ? a : b)]) || 2).toString()[a--]
    }.async:
    if (("function" >>> -1 == (a && ([ a.value ] = [ -2 / 38..toString() ]))) + ((undefined && -5) + (23..toString() + -1))) {
        var expr18 = typeof alias0 != "undefined" && alias0;
        L18010: for (var key18 in expr18) {
            {}
        }
    } else {
        for (var brake20 = 5; `${typeof a == "function" && --_calls_ >= 0 && a(-3, 1 === 1 ? a : b)}` && brake20 > 0; --brake20) {}
    }
    break;

  case a++ + /[abc4]/g.exec(([][a && typeof a.var == "function" && --_calls_ >= 0 && a.var(1, --b + (b = a))] || b || 5).toString()):
    for (var brake22 = 5; typeof f0 == "function" && --_calls_ >= 0 && f0() && brake22 > 0; --brake22) {
        for (var brake23 = 5; (c = c + 1, -1 > true === (a >>>= "object" ^ "foo")) && brake23 > 0; --brake23) {
            a;
        }
    }
    break;

  case --b + !function bar_1() {
        {
            var brake25 = 5;
            L18011: while (a++ + (b = a) && --brake25 > 0) {
                c = c + 1;
            }
        }
        {
            var expr27 = typeof Infinity_2 === "unknown";
            L18012: for (const key27 in expr27) {
                c = 1 + c;
                const async = expr27[key27];
                c = c + 1;
            }
        }
        c = c + 1;
        try {
            {
                var NaN_2 = function* c_2(a_2) {
                    try {
                        {
                            var brake33 = 5;
                            while (a++ + (typeof a_2 != "undefined") && --brake33 > 0) {
                                L18013: {
                                    c = 1 + c, (1, -0, 24..toString() || 23..toString()) ^ (4 == "b") < (-1 || false);
                                    c = 1 + c, bar_1 && (bar_1.undefined %= (4 % -1 ^ ([ , 0 ][1], 3)) >= (bar_1 && ([ bar_1.b ] = [ false <= /[a2][^e]+$/ ])) >> (a_2 && (a_2[c = 1 + c, 
                                    (a_2 = "undefined" % "undefined") / (2 || "function") / (bar_1[a++ + --b] = {} % -3 << (-4, 
                                    []))] ^= 0 ^ "c")));
                                    c = 1 + c, ({} >= []) << false / -5, ("number", true) - (null >> [ , 0 ][1]);
                                    c = 1 + c, (1 === Infinity) >> ("" > "") & (a_2 = ("" !== -0) <= "bar" + NaN);
                                }
                            }
                        }
                    } catch (a_2) {
                        switch ({
                            static: (c = 1 + c, -4 < 0 && "function" ^ -2 && (/[a2][^e]+$/ === 25) >> ("number" | 0)),
                            [(c = 1 + c, ("foo" ^ 24..toString()) >= 3 >>> "foo" ^ (-3 || false) < ("function" | false))]: (c = 1 + c, 
                            +(22 >> [ , 0 ][1], a_2 += 25 > 24..toString()))
                        }[c = 1 + c, (+ -0 == !23..toString()) >> ((0, [ , 0 ][1]) !== (-5 && -0))]) {
                          case a_2 && typeof a_2.set == "function" && --_calls_ >= 0 && a_2.set():
                            c = 1 + c, ("" >= -1) + ("number" !== []) < ((a_2 |= 1 ^ null) == 23..toString() >= "undefined");
                            c = 1 + c, (null | 22) >>> ("function" ^ "function") < (-3 ^ -2) >> (38..toString() === 4);
                            break;

                          case (c = 1 + c, (null <= "a") >>> (38..toString() > 24..toString()) & +("c" >>> false)) ? (c = 1 + c, 
                            (true && this) >>> (23..toString() | "bar") >>> ("number" * 1 ^ (22 || NaN))) : (c = 1 + c, 
                            (0 || 23..toString()) - ([ , 0 ][1] == 0) === (undefined | 1) - (-4 !== {})):
                            c = 1 + c, bar_1 && (bar_1[/[abc4]/g.exec((typeof f1 == "function" && --_calls_ >= 0 && f1() || b || 5).toString())] += (c = c + 1, 
                            "bar") <= -2 - Infinity != (-5 & this) - (-5 + "number"));
                            break;

                          case ((-5 ^ "") == -5 % "object") >> (a_2 && (a_2[a++ + [ (c = 1 + c, (-1 & -5) - (22 ^ "object") + (undefined != this ^ (-1, 
                            3))), (c = 1 + c, -([ , 0 ][1] >= 38..toString()) + (true / 2 ^ "undefined" === true)) ].undefined] += ("undefined" != []) % (23..toString() | -4))):
                            c = 1 + c, -3 / undefined < "bar" / Infinity <= ("function" >> -2 | (a_2 && (a_2.async = -4 - 24..toString())));
                            c = 1 + c, (-1 & -3) << (a_2 && (a_2[c = 1 + c, c = c + 1, -2 ^ 24..toString() ^ (a_2 && (a_2.NaN = true !== "number"))] |= "undefined" < 0)) > (0 < Infinity ^ (a_2 = [ , 0 ][1] <= 2));
                            break;

                          case typeof bar_1 == "function" && --_calls_ >= 0 && bar_1(...[ (c = 1 + c, (c = c + 1, 
                            -5) === -0 << 22 && this / null >= (-4 > "bar")) ]):
                            c = 1 + c, ("foo" ^ "bar") % (-3 && "object") && 1 === 22 ^ 3 <= "a";
                            break;
                        }
                    }
                    try {
                        {
                            var yield_1 = function bar(c) {
                            }((c = 1 + c, ("foo" + -0 >>> (Infinity !== -0)) / ((/[a2][^e]+$/ & 24..toString()) == (-1 != 23..toString()))), (c = 1 + c, 
                            5 % 38..toString() < (-1 | -3) ^ "c" % Infinity > 0 % "b"));
                        }
                    } finally {
                        if (--b) {
                            var a_2 = (c = 1 + c, -(c = c + 1, "foo" || [ , 0 ][1]));
                        } else {
                            c = 1 + c, ("a" >> 22 === {} < ([ , 0 ].length === 2)) << (a_2 && (a_2.in >>= "undefined" / -3 !== [ , 0 ][1] + -3));
                        }
                        for (var brake52 = 5; typeof (c = 1 + c, (this % Infinity ^ "bar" >>> "number") > (1 ^ false ^ -4 > 2)) && brake52 > 0; --brake52) {
                            c = 1 + c, ((-5 != "a") + (yield_1 && (yield_1.NaN <<= 5 & false))) % ({} * NaN | undefined <= 2);
                        }
                    }
                }(a++ + [ --b + -((a += (38..toString() || "number") !== [ , 0 ][1] < null) >= (-2 % 1 === ({} !== 38..toString()))), (c = c + 1) + bar_1, a++ + (b += a), bar_1 && bar_1[typeof f1 == "function" && --_calls_ >= 0 && f1()], --b + (typeof bar_1 == "function" && --_calls_ >= 0 && bar_1((c = 1 + c, 
                (this !== undefined) >= (bar_1 && (bar_1[c = 1 + c, ([] << true && (/[a2][^e]+$/ && null)) >>> (("a", 
                -0) >>> ("b" && "b"))] -= 22 ^ -3)) >= ("bar" + "bar") / (true ^ -3))) ? b + 1 - .1 - .1 - .1 : "number") ], 0).next().done;
            }
        } finally {
            switch ((c = c + 1) + /[abc4]/.test((a++ + {
                foo: --b + ((([ , 0 ].length === 2) >>> "undefined") * (null === 23..toString()) | (undefined <= [ , 0 ][1]) >> (1 | [ , 0 ][1])),
                in: --b + b--,
                "-2": /[abc4]/.test((/[abc4]/.test(((c = 1 + c, !(NaN_2 && (NaN_2.get = 2 << NaN)) >= (38..toString() * [] ^ 0 == -0)) || b || 5).toString()) || b || 5).toString()),
                get: 0 === 1 ? a : b,
                __proto__: --b + typeof [ ...[ (c = 1 + c, (("function", true) !== (4 | -1)) % ("function" !== Infinity !== (NaN_2 && (NaN_2[c = 1 + c, 
                null < 3 === 1 << Infinity, -4 / {} >> "object" + "a"] = NaN - Infinity)))), ..."" + NaN_2, (c = 1 + c, 
                (NaN_2 && ([ NaN_2[0 === 1 ? a : b] ] = [ (1 !== -1) * (-1 == "function") ])) ^ (NaN_2 += /[a2][^e]+$/ == 0 ^ 25 + 23..toString())), (c = 1 + c, 
                ("b" + -1, 0 == "bar") >= (-5 / NaN | null !== undefined)), (c = 1 + c, (NaN + -3) % (this === false) / ((2 > 3) + (0 != /[a2][^e]+$/))) ] ].c || {}
            }[(c = c + 1) + NaN_2] || b || 5).toString())) {
              case --b + !function() {}():
                {
                    var brake55 = 5;
                    L18014: while ((1 === 1 ? a : b) && --brake55 > 0) {
                        if (a++ + ("bar" in [ (c = 1 + c, delete 1 !== 4 << {} & (24..toString() & 5 || 1 !== 1)) ])) {
                            c = 1 + c, (NaN_2 += 2 || this) < 24..toString() >> "foo" === (-4 >> true & (this ^ 25));
                        }
                    }
                }
                break;

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

              case --b + {
                    length: b += a,
                    1.5: [ typeof f0 == "function" && --_calls_ >= 0 && f0(), NaN_2 && typeof NaN_2.a == "function" && --_calls_ >= 0 && NaN_2.a(undefined, -2, (c = 1 + c, 
                    (NaN_2 <<= {} % ([ , 0 ].length === 2)) > true << -1 >= (true === 4) * (NaN_2 = "object" | true))) ],
                    NaN: void (38..toString() > "undefined" > (4, [ , 0 ][1]) || ([ , 0 ].length === 2 ^ 38..toString()) >= (c = c + 1, 
                    -3))
                }.a:
                {
                    var brake59 = 5;
                    do {
                        {
                            var brake60 = 5;
                            L18015: do {
                                {
                                    var let_2 = function f0(a_1) {
                                    }([ , 0 ][1], (c = 1 + c, "c" / true >>> (-4 || "number") >= (-0 | "object" !== -5)), NaN);
                                }
                            } while ((b %= a) && --brake60 > 0);
                        }
                    } while (a++ + [ ..."" + bar_1, {
                        3: (c = 1 + c, ("number" > true) - ("b" === "c"), ("foo" === 3) / (-4 >>> ([ , 0 ].length === 2))),
                        next: (c = 1 + c, (void /[a2][^e]+$/ ^ (undefined ^ "object")) - ((c = c + 1, 5) <= 4 >> "a")),
                        length: (c = 1 + c, NaN_2 += (25 << "c" && /[a2][^e]+$/ == -2) % (c = c + 1, "undefined" | 5))
                    }.next, a++ + [ (c = 1 + c, (Infinity == "" ^ Infinity < "undefined") < (NaN_2 && (NaN_2.done = (0 > true) * (bar_1 && (bar_1.async = ([ , 0 ].length === 2) >= "undefined"))))), , (c = 1 + c, 
                    (-2 >>> "b" && [] >= -0) % (({} >= false) >>> "foo" + 2)), (c = 1 + c, 3 % 25 > (true < -5) != (NaN_2 && (NaN_2.in = "number" - 4 <= ({} === "foo")))), (c = 1 + c, 
                    (25 % null, false == "") ^ 25 >> -1 === (0 | [])) ].var, --b + bar_1 ][`}${c = 1 + c, 
                    c = c + 1, ([ , 0 ].length === 2 == "c") >> ("a" <= 3)}${c = 1 + c, (this ^ null) < ([ , 0 ].length === 2) >>> 2 != (false << -1) % (null + 3)}${c = 1 + c, 
                    (c = c + 1, Infinity + "") % ({} << "a" & ("a" & 2))}${c = 1 + c, (true >> true || true + 25) | "a" % -1 > (-5 == null)}`] && --brake59 > 0);
                }
                var b;
                break;

              case a++ + (b && typeof b.var == "function" && --_calls_ >= 0 && b.var(this in [ a++ + ((c = 1 + c, 
                c = c + 1, ([] ^ 3) <= ("a" >= ([ , 0 ].length === 2))) ? (c = 1 + c, (38..toString() ^ -0) + (-3 < "function") - ((NaN_2 && (NaN_2[c = 1 + c, 
                (5 && [ , 0 ].length === 2) / (bar_1 && (bar_1.value += "function" >= 4)) === ([ , 0 ][1] < null) / (this * 38..toString())] = [] * "foo")) === (-4 && "foo"))) : (c = 1 + c, 
                1 >>> Infinity <= (c = c + 1, null) || "function" / true & (let_2 && (let_2[c = 1 + c, 
                ("" == -0) - (bar_1 && (bar_1.NaN |= "function" == Infinity)) >>> (let_2 = -23..toString() != "function" * 1)] = 24..toString() == "number")))), --b + a++, b = a, [] ], ..."" + bar_1, 23..toString())):
                break;
            }
            switch ((c = c + 1) + (typeof f2 == "function" && --_calls_ >= 0 && f2())) {
              case {
                    next: typeof f1 == "function" && --_calls_ >= 0 && f1(--b + (NaN_2 && typeof NaN_2.in == "function" && --_calls_ >= 0 && NaN_2.in((c = 1 + c, 
                    let_2 = (undefined >> {} ^ 24..toString() === /[a2][^e]+$/) >= ((2 || 22) >= -0 >> -4)))), "number", /[abc4]/g.exec(((c = 1 + c, 
                    (-1 ^ [ , 0 ][1]) - ("undefined" - -3) ^ ((b && (b[c = 1 + c, (b += (-2 || 0) % (Infinity != -1)) <= (23..toString() != /[a2][^e]+$/) << ("a", 
                    "a")] = 0 || -4)) | Infinity << -0)) || b || 5).toString())),
                    "": b = a,
                    "-2": (c = c + 1) + !((let_2 && (let_2.value /= -5 + /[a2][^e]+$/)) / ("function" && 22) !== (NaN_2 && (NaN_2[--b + (b && typeof b.value == "function" && --_calls_ >= 0 && b.value((c = 1 + c, 
                    (c = c + 1, 4 | "a") + ((undefined ^ undefined) === (c = c + 1, "foo"))), (c = 1 + c, 
                    (("number" ^ 4) < ("undefined" < "c")) << (([ , 0 ].length === 2) / 0 ^ ({} ^ -2)))))] = true == 38..toString() ^ "object" >= 0))),
                    var: [ a++ + (c = 1 + c, delete "object" % (25 >>> "b") < ((bar_1 && (bar_1.set >>>= "function" >> 25)) >= ("a", 
                    {}))), (c = c + 1) + let_2, [ (c = 1 + c, (let_2 = -0 <= {} >= (-0 ^ "undefined")) >> (-4 * -4 << (this === -3))) ].a ],
                    c: --b + (false in [ b *= a, typeof f2 == "function" && --_calls_ >= 0 && f2(), --b + [ (c = 1 + c, 
                    ("number" << -0) + (24..toString() != this) === (0 >>> 38..toString() == "b" / -5)), (c = 1 + c, 
                    (NaN_2 = "object" < this) > (0 != "undefined") ^ undefined % -3 !== ("b" ^ 23..toString())), (c = 1 + c, 
                    (false && 25) - -0 % "c" <= (+5 === "c" + -2)) ].get, a++ + (bar_1 && bar_1[c = 1 + c, 
                    (-3 << 0) % ({} & 3) << (-5 > "object" <= (null || 25))]), ((c = 1 + c, ((-1 && "c") | (c = c + 1, 
                    "")) === (22, -3) >= (23..toString() & 38..toString())) || 6).toString()[c = 1 + c, 
                    (let_2 && (let_2.done = false & Infinity)) <= (bar_1 && (bar_1[c = 1 + c, b += ("b" > "b") >>> (25 != -4) >>> ("a" << undefined < (c = c + 1, 
                    NaN))] = /[a2][^e]+$/ !== 4)) === (/[a2][^e]+$/ < {} || Infinity | "b")] ])
                }:
                {
                    var expr64 = (let_2 && typeof let_2.in == "function" && --_calls_ >= 0 && let_2.in(..."" + bar_1) || a || 3).toString();
                    L18016: for (var key64 in expr64) {
                        c = 1 + c;
                        var async = expr64[key64];
                        {
                            var b_1 = function f1({
                                a: async_1,
                                set: foo,
                                [(c = 1 + c, ("function" & "bar") / (Infinity >= 25) << ((22 | 22) !== ("function" === "bar")))]: bar
                            }, async_2) {
                                c = 1 + c, "a" * 38..toString() >>> (/[a2][^e]+$/ >= null) | ([ , 0 ][1] >= "c" | this + Infinity);
                                c = 1 + c, ("foo" % "c" <= (-5 == Infinity)) / (({} || 22) == (b = undefined / 4));
                            }({
                                Infinity: undefined,
                                [(c = 1 + c, void (-4 && "number") >> ([ , 0 ].length === 2 ^ "a") % (-5 % Infinity))]: "object"
                            }, a++ + /[abc4]/g.exec(((c = 1 + c, ((true && -3) >>> delete -3) + (undefined + "function") / (undefined <= "function")) || b || 5).toString()));
                        }
                    }
                }
                {
                    {
                        var brake69 = 5;
                        L18017: do {
                            {
                                var brake70 = 5;
                                do {
                                    c = 1 + c, (b && (b.a = (c = c + 1, false) || "bar" << ([ , 0 ].length === 2))) < (c = c + 1, 
                                    38..toString() > 38..toString());
                                } while ((c = 1 + c, ("c" || "foo") % ([ , 0 ][1] + "b") >= (b && (b.static = 23..toString() << -1 > (1 & 22)))) && --brake70 > 0);
                            }
                        } while (--b + [ ..."" + bar_1, ..."" + b, (c = 1 + c, ([ , 0 ].length === 2 || null) != "c" + 1 && (true !== -1) * ("object" !== true)) ] && --brake69 > 0);
                    }
                    {
                        var brake72 = 5;
                        do {
                            try {
                                c = 1 + c, (false ^ "foo") >= -23..toString() | (-1 & -3) >= (4 >= /[a2][^e]+$/);
                            } catch (a_1) {
                            } finally {
                            }
                        } while ({
                            "\t": (c = 1 + c, (1 !== 22 & (2 | -1)) != ("c" == 24..toString()) * ([ , 0 ][1] << "b")),
                            done: (c = 1 + c, (true ^ 38..toString() && false + Infinity) ^ (let_2 %= 25 != undefined) / (2 >> "function"))
                        }[c = 1 + c, (2 < -1 < (1 != 1)) << ("number" === -0, NaN_2 && (NaN_2[c = 1 + c, 
                        "c" % this == (undefined || true) == (/[a2][^e]+$/ !== false != "bar" >= -0)] = /[a2][^e]+$/ >>> -1))] && --brake72 > 0);
                    }
                    var a_1;
                }
                break;

              case --b:
                break;

              case (c = c + 1) + [ a++ + (NaN_2 && typeof NaN_2.b == "function" && --_calls_ >= 0 && NaN_2.b(-3, this, ...[ (c = 1 + c, 
                ((23..toString() === true) >= (-1, -5)) << ((true, 2) | delete /[a2][^e]+$/)), ..."" + let_2, (c = 1 + c, 
                ("c" >> false | "object" ^ "number") <= (-0 ^ "") / ("bar" && {})), (c = 1 + c, 
                (let_2 && (let_2[--b + (typeof f0 == "function" && --_calls_ >= 0 && f0(true))] = "c" != -0 ^ "foo" < -2)) >>> "object" % 1 / (true <= -4)) ])), --b + ("a" in {
                    foo: a++ + (1 === 1 ? a : b),
                    c: a--,
                    a: --b + [ (c = 1 + c, /[a2][^e]+$/ % 2 % ("undefined" <= -2) ^ (NaN_2 && (NaN_2.in = Infinity ^ false)) - (NaN_2 && ([ NaN_2.set ] = [ NaN - 5 ]))), (c = 1 + c, 
                    b = ((c = c + 1, 5) >> ("undefined" == -1)) * ("function" <= -2 || (24..toString() || "function"))) ][c = 1 + c, 
                    (NaN << "b") + ("a" !== Infinity) << (("foo" & "a") == ([ , 0 ].length === 2 != -0))],
                    foo: --b + Infinity
                }), a++ + (let_2 && typeof let_2.value == "function" && --_calls_ >= 0 && let_2.value(-0)), {
                    b: {
                        length: (c = 1 + c, (3 >= [] & (25 || "bar")) / ((c = c + 1, 2) << true - 2)),
                        3: (c = 1 + c, c = c + 1, bar_1 && (bar_1.null = -1 / 5 << (([ , 0 ].length === 2) >>> -3))),
                        in: (c = 1 + c, (4 <= null == (25 !== -3)) <= (2 | undefined && 4 - 22)),
                        null: (c = 1 + c, (bar_1 && (bar_1.Infinity += (let_2 && (let_2[c = 1 + c, (-4, 
                        "function") !== 0 << [ , 0 ][1], (NaN_2 = -1 >= null) != ([ , 0 ].length === 2 == 1)] = 23..toString() != "bar")) != (undefined ^ "foo"))) >>> ((-1 && []) !== (this === [ , 0 ][1]))),
                        value: (c = 1 + c, (let_2 -= "bar" && undefined) % ([ , 0 ][1], 22) >= ("foo" | -4) * (([ , 0 ].length === 2) % false))
                    },
                    value: let_2,
                    var: --b + ((c = 1 + c, (let_2 && (let_2.undefined = -0 - [])) / (([ , 0 ].length === 2) >= 23..toString()) ^ (b && (b.done += "number" >> 4 > (c = c + 1, 
                    "function")))) || 2).toString()[c = 1 + c, (NaN_2 && (NaN_2[b && b.NaN] = (false & NaN) - ({} <= 5))) >>> (NaN ^ "a") + (4 !== ([ , 0 ].length === 2))],
                    async: (c = c + 1) + (b += a),
                    next: (c = c + 1) + (b + 1 - .1 - .1 - .1)
                }.b, (c = c + 1) + (b = a) ][(c = c + 1) + [ typeof f3 == "function" && --_calls_ >= 0 && f3((c = 1 + c, 
                (2 > this == (2 || [])) + (b && (b.NaN += ({} > "object") << ([] & -5))))), +function b_1() {
                    c = 1 + c, !((-3 && 38..toString()) + ([] !== 4));
                    c = 1 + c, ((Infinity | this) === [ , 0 ][1] < null) >= (bar_1 && (bar_1.async = "object" + Infinity + (/[a2][^e]+$/ != -0)));
                    c = 1 + c, this >= -0 && (c = c + 1, -0) || (24..toString() & "object") >> (false & 4);
                    c = 1 + c, (null >>> /[a2][^e]+$/) + (([ , 0 ].length === 2) - false) == ("bar", 
                    24..toString()) >> (NaN <= null);
                }(), typeof f2 == "function" && --_calls_ >= 0 && f2((c = 1 + c, (0 ^ /[a2][^e]+$/) + ("number" >> "object") == (b = false === 1 != -2 <= [ , 0 ][1])), (c = 1 + c, 
                ((bar_1 && (bar_1[c = 1 + c, (NaN_2 += (let_2 = -4 % Infinity) > (bar_1 && (bar_1.set = false == "number"))) >> ((NaN_2 = 1 > this) || bar_1 && (bar_1.foo %= -0 / -1))] ^= -5 + -2)) ^ 1 / 25) <= (22 <= [ , 0 ][1] >= -0 << 3))), a--, void function b_2() {
                    c = 1 + c, (let_2 += void 2 + ("function" | 24..toString())) <= -4 * "object" / (23..toString() << ([ , 0 ].length === 2));
                    c = 1 + c, c = c + 1, (b %= 2 | -3) && 24..toString() >= [ , 0 ][1];
                    c = 1 + c, Infinity << "" & null << undefined, (-0 || 2) & (b %= -1 + false);
                }() ]]:
                for (var brake83 = 5; --b + (b |= a) && brake83 > 0; --brake83) {
                    try {
                        L18018: {
                            c = 1 + c, void (-0 != 1) << (NaN_2 = -0 < -3 || (4 || -5));
                        }
                    } catch (yield) {
                        c = 1 + c, (NaN_2 = Infinity < 25) >>> ("object" | null) && "a" === undefined | 4 - NaN;
                        try {
                            c = 1 + c, undefined > "bar" <= (25 && "a") < -2 - 5 - false % [];
                        } catch (a_2) {
                        }
                    }
                }
                {
                    break;
                    --b + (typeof b_1 === "number");
                    {
                        c = 1 + c, {} % /[a2][^e]+$/ - -24..toString() << (Infinity, 1, -0 + 25);
                    }
                }

              case (c = c + 1) + (b && b[a++ + (typeof f0 == "function" && --_calls_ >= 0 && f0(-2, []))]):
                ;
                break;
            }
        }
    }():
    for (var brake96 = 5; typeof f3 == "function" && --_calls_ >= 0 && f3("bar", b ^= a, typeof f2 == "function" && --_calls_ >= 0 && f2(--b + (typeof f2 == "function" && --_calls_ >= 0 && f2(--b + {
        NaN: (c = 1 + c, ("object" != 2) >>> ("object" < "c") === (("" && "number") ^ (NaN, 
        23..toString()))),
        async: (c = 1 + c, ([] >>> "undefined" ^ ([ , 0 ].length === 2) << NaN) & (this / 24..toString() & (a |= -5 >>> 2))),
        length: (c = 1 + c, a && (a.next %= (a = [ , 0 ].length === 2 && "bar") / (2 - -4)), 
        (1 - 3) % (25 - "bar"))
    }[-1], "object")), "undefined", 38..toString())) && brake96 > 0; --brake96) {
        5;
    }

  case -(((-1 || 0) + (-0 ^ 0)) % (a && (a[--b + []] = Infinity >= 22 < 2 % this))):
    {
        var brake98 = 5;
        do {
            var b_2 = !function() {
                for (var brake100 = 5; -5 && brake100 > 0; --brake100) {
                    return [ typeof b_2 == "function" && --_calls_ >= 0 && b_2((c = 1 + c, (c = c + 1, 
                    5 >> 22) <= (Infinity ^ 38..toString()) % (b_2 && (b_2[c = 1 + c, -0 > "number" < 5 >> -2 !== (b_2 && (b_2[--b + [ (c = 1 + c, 
                    -1 / -2 << (false ^ -5) ^ (b_2 ^= "object" !== "" != (null == ([ , 0 ].length === 2)))), (c = 1 + c, 
                    b_2 && (b_2.async = (4 > this) - "bar" * /[a2][^e]+$/ >> ((c = c + 1, 25) === "a" * "undefined"))), (c = 1 + c, 
                    (undefined | false) <= ("" ^ -5) == ("a" == [] ^ "bar" <= "function")) ].value] += (5, 
                    /[a2][^e]+$/) >= "number" << false))] += 22 * Infinity))), -1) ].get;
                }
                L18019: {
                    if ([ (c = 1 + c, b_2 += ((1 && 3) != (b_2 <<= -0 || 25)) >> (3 >> -1 ^ (c = c + 1, 
                    "undefined"))), (c = 1 + c, (/[a2][^e]+$/ >= 5) >> (2 > "undefined") > ((c = c + 1, 
                    "number") ^ NaN % -2)), (c = 1 + c, 0 == Infinity ^ 4 == 3 && ({} << "a") * (undefined < 24..toString())), (c = 1 + c, 
                    (Infinity >> 24..toString() & (-2, 5)) === (c = c + 1, -[])), (c = 1 + c, (-0 * 1, 
                    38..toString() * -5) !== (4 & /[a2][^e]+$/) > ("foo" | true)) ][b = a]) {
                        var b_2;
                    }
                    if (--b + --b) {
                        L18020: {
                            c = 1 + c, (/[a2][^e]+$/ === -4 | Infinity & -1) ^ ("a" <= 22) >> ("object" <= undefined);
                        }
                    }
                    for (var brake108 = 5; ({
                        var: (c = 1 + c, b_2 && (b_2.b ^= (1 * 38..toString() == 25 <= 2) >= ((b_2 -= -4 || -2) > (-2 == "")))),
                        get: (c = 1 + c, !(this | -5) << (!5 ^ (b_2 += -2 !== 5)))
                    }[c = 1 + c, (null / "foo" & true >> 1) >= ((38..toString() && -1) === /[a2][^e]+$/ >> "c")] ? --b + (undefined + 23..toString() != (38..toString() && "foo") || (c = c + 1, 
                    {} + 23..toString())) : --b + -0) && brake108 > 0; --brake108) {
                        switch (a++ + (24..toString() in [ (c = 1 + c, (b_2 = (Infinity || {}) && (b_2 && (b_2.static >>= -1 > "a"))) !== [ , 0 ][1] + -1 + "function" * 0), (c = 1 + c, 
                        ([] !== -3) < (null && 0) !== (b_2 += delete "number" <= (c = c + 1, this))), (c = 1 + c, 
                        +(b_2 += ~-5 % ("object" - false))) ])) {
                          default:
                            c = 1 + c, 1 ^ -3 | "a" <= this || -3 * 24..toString() && [ , 0 ][1] < 2;
                            c = 1 + c, (24..toString() == 38..toString() ^ -1 % 24..toString()) < (/[a2][^e]+$/ >= 1 ^ 1 > "");

                          case {}:
                            c = 1 + c, ("c" <= 5 && null / -0) & (false !== false) >= "a" >>> 25;
                            break;

                          case --b + (0 === 1 ? a : b):
                            c = 1 + c, (25 > 38..toString(), "c" + -5) >= (-1 >> 2 < -1 >>> 2);
                            break;

                          case b_2 && typeof b_2.NaN == "function" && --_calls_ >= 0 && b_2.NaN((c = 1 + c, 
                            (("b" ^ -4) <= ("" ^ "b")) % (("foo" === "a") >>> (c = c + 1, 3))), 22, ""):
                        }
                    }
                    var b_2_1 = --b + void function() {
                        c = 1 + c, b_2 >>>= ((b_2 && (b_2.null = 25 >= "undefined")) >>> (5 === undefined)) - (-3 >= ([ , 0 ].length === 2) ^ 24..toString() > -3);
                    }(), bar_1 = (/[a2][^e]+$/ - 3 | -1 >>> 1) > (b_2 && (b_2[typeof a_2 === "undefined"] += (-3 || "number") === ([ , 0 ].length === 2 == [])));
                }
                {
                    var expr116 = (c = c + 1) + b_2;
                    L18021: for (var key116 in expr116) {
                        if (--b + [ (c = 1 + c, key116 && ([ key116[a++ + (b_2 && typeof b_2.foo == "function" && --_calls_ >= 0 && b_2.foo())] ] = [ ((false | []) === -0 < "foo") / ((b_2 && (b_2.done = 38..toString() * "b")) / (0 >= 25)) ])), (c = 1 + c, 
                        ("c" % ([ , 0 ].length === 2) !== "object" > 25) >>> (3 >> "function" > ([ , 0 ][1] >= ""))), (c = 1 + c, 
                        (0 == 24..toString()) >>> -3 / "c" & (c = c + 1, 24..toString()) !== 4 - "a") ].in) {
                            L18022: for (var brake118 = 5; [ , 0 ].length === 2 && brake118 > 0; --brake118) {
                                return (c = c + 1) + b_2;
                            }
                        }
                    }
                }
            }();
        } while ({
            0: "a" in {
                [-0 in {
                    in: typeof (b_2 && b_2[c = 1 + c, (([ , 0 ].length === 2) <= "bar" < ([ , 0 ].length === 2) % 1) - (b_2 && (b_2[typeof f3 == "function" && --_calls_ >= 0 && f3("bar")] += (b_2 && (b_2.next = 4 + 1)) << undefined % 5))]),
                    next: 0 === 1 ? a : b,
                    next: --b + -2,
                    [(c = c + 1) + (0 === 1 ? a : b)]: --b + (undefined in {
                        in: (c = 1 + c, (c = c + 1, "object") / ([] >> /[a2][^e]+$/) & 23..toString() >= [] >= {} >>> false),
                        in: (c = 1 + c, (c = c + 1, [ , 0 ][1]) - ("c" + "undefined") == (+[ , 0 ][1] == (38..toString() ^ 25)))
                    })
                }]: b = a,
                "-2": (c = c + 1) + void setImmediate(() => typeof f0 == "function" && --_calls_ >= 0 && f0(-5))
            },
            ...b_2,
            done: a++ + !function() {
                {
                    var brake120 = 5;
                    L18023: while (a++ + /[abc4]/g.exec((a++ + (b = a) || b || 5).toString()) && --brake120 > 0) {
                        switch (--b + a--) {
                          case /[abc4]/.test((b_2 || b || 5).toString()):
                            {
                            }
                            break;

                          case typeof f0 == "function" && --_calls_ >= 0 && f0(25):
                            return;
                            break;

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

                          case typeof b_1 == "undefined":
                            switch (c = 1 + c, (4 * Infinity & "c" - ([ , 0 ].length === 2)) > "b" % {} - (undefined | 3)) {
                              case c = 1 + c, (([ , 0 ].length === 2 != /[a2][^e]+$/) <= (true <= this)) * ("c" < -0 ^ undefined != 5):
                                ;
                                break;

                              case c = 1 + c, (22 >= -2 <= ([] === "a")) >>> (true >= "object") * (b_2 && (b_2[c = 1 + c, 
                                (b_2 && (b_2[c = 1 + c, "foo" >>> -2 > ("c" > /[a2][^e]+$/) !== (undefined !== 38..toString()) < (2 !== true)] *= 22 && -3)) < (false != -4) | (c = c + 1, 
                                ~5)] = "undefined" * 25)):
                                ;

                              case c = 1 + c, (([ , 0 ].length === 2) < undefined ^ NaN != "undefined") < (!4 >= null - true):
                                ;

                              case c = 1 + c, 38..toString() + 2 + (NaN >> 23..toString()) + (null ^ "" || "foo" / Infinity):
                                ;
                            }
                            {
                            }
                            break;
                        }
                    }
                }
                {
                    var brake128 = 5;
                    L18025: while (a++ + {} && --brake128 > 0) {
                        for (var brake129 = 5; --b + (1 === 1 ? a : b) && brake129 > 0; --brake129) {
                            c = c + 1;
                        }
                    }
                }
            }(),
            3: a++ + [].get,
            3: 0 === 1 ? a : b
        }.in && --brake98 > 0);
    }
    {
        c = c + 1;
        [];
        {
            var a_2 = function f2(b_1) {
                function f3(a_1, a_2, bar_1) {
                    return c = 1 + c, (("bar" == -0) <= 23..toString() + -3) << ((c = c + 1, -1) < (25 == "bar"));
                    c = 1 + c, (a_2 = 5 * 2, c = c + 1, true) >>> ("a" % 2 >= ("" && 25));
                }
                function f4(bar_1, foo) {
                    if (c = 1 + c, (foo += (-4 == 1) > (bar_1 && (bar_1.foo = /[a2][^e]+$/ < -4))) | 23..toString() / -2 <= ("", 
                    -4)) {
                        c = 1 + c, (-2 !== ([ , 0 ].length === 2)) > (null != 0) === (undefined == "function") - (false - 22);
                    }
                    {
                        var expr139 = (c = 1 + c, ("undefined" != /[a2][^e]+$/) % ("undefined" & "") + (5 || false) / ("bar" ^ -2));
                        L18026: for (var key139 in expr139) {
                            c = 1 + c;
                            var foo_1 = expr139[key139];
                            c = 1 + c, (-4 & "function", 23..toString() >> /[a2][^e]+$/) - ((c = c + 1, "undefined") != 25 < 23..toString());
                        }
                    }
                }
                var a_1 = f4();
                function f5(b_2) {
                    {
                        return c = 1 + c, (c = c + 1, -3 != "object") << ("function" / undefined < (true <= "foo"));
                    }
                    {
                        var brake142 = 5;
                        while ((c = 1 + c, (2 >= false | (b_1 ^= "foo" >> this)) >>> (-1 >>> false != "bar" % true)) && --brake142 > 0) {
                            c = 1 + c, ((-3 | []) === ([ , 0 ][1] === undefined)) * ("c" / /[a2][^e]+$/ / (0 - 1));
                        }
                    }
                }
                var undefined_1 = f5(b--);
            }(/[a2][^e]+$/, -2, Infinity);
        }
    }
    break;
}

L18027: {
    1 === 1 ? a : b;
    try {
        switch ((c = c + 1) + (b_2 /= a++ + "c")) {
          case typeof bar === "object":
            {
                var brake149 = 5;
                while (++a && --brake149 > 0) {
                    var expr150 = a++ + 25;
                    for (var key150 in expr150) {
                        c = 1 + c;
                        var b_2 = expr150[key150];
                        {}
                    }
                }
            }
            break;

          case a++ + {}:
            if (b = a) {
                for (var brake153 = 5; void ((this >= /[a2][^e]+$/, undefined >>> 3) !== ([ , 0 ][1] !== -2 ^ /[a2][^e]+$/ !== [ , 0 ][1])) && brake153 > 0; --brake153) {
                    for (var brake154 = 5; ++b && brake154 > 0; --brake154) {
                        for (var brake155 = 5; (c = c + 1) + (((-0 ^ "") <= (Infinity, "")) + (([] | [ , 0 ][1]) + true * "undefined")) && brake155 > 0; --brake155) {
                            --b;
                        }
                    }
                }
            }
            break;

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

          case b_2 /= (c = c + 1) + (b + 1 - .1 - .1 - .1):
        }
    } catch (foo) {
        if (a++ + {
            set set(foo) {
                this.foo = (foo = ("c" ^ 1) - (5 >> 1) && (25 % undefined, c = c + 1, "c")) / ("a" >= -2 > -4 - "number" === (false > false) / ("number" !== 23..toString())) !== -(38..toString() > 22) >> (b_2 %= [] - 2) * (25 * 24..toString()) < ((b_2 && (b_2.c += (foo && (foo.get = {} >>> "b")) ^ this === [])) != (foo && (foo[c = 1 + c, 
                (-1 && "number") != /[a2][^e]+$/ >> false === ("number" * null !== (undefined == 22))] += Infinity >>> 5 ^ ("foo" ^ "foo"))));
            },
            b_2: b_2
        }[(c = c + 1) + ("bar" in [ b = a, (c = c + 1) + (b_2 && typeof b_2.foo == "function" && --_calls_ >= 0 && b_2.foo({}, [])), (a_1 => typeof b_2 == "function" && --_calls_ >= 0 && b_2(true, -0, ..."" + a_1))() ])]) {
            var expr165 = this in {
                then: (c = c + 1) + !a
            };
            for (const key165 in expr165) {
                c = 1 + c;
                var await = expr165[key165];
                {
                    var brake166 = 5;
                    do {
                        switch (/[abc4]/.test(([].value || b || 5).toString())) {
                          case [] in {}:
                            c = c + 1;
                            if (--b + ([ foo ] = [ (c = 1 + c, ("c" | 25 | + -5) == ({} * "foo" | (b_2 && (b_2.next >>>= -5 * 4)))), (c = 1 + c, 
                            ("number" && "number") / ("c" <= "function") && (key165 && (key165.async = "object" - undefined < -24..toString()))) ])) {
                                L18028: {
                                }
                            }
                            break;

                          case --b + !b:
                            break;

                          case [ b_2 && typeof b_2.done == "function" && --_calls_ >= 0 && b_2.done((c = 1 + c, 
                            ([] || "c") % ("object" << "foo") || -1 + -1 + ("b" <= Infinity)), 25, 38..toString()), (c = c + 1) + ((c = 1 + c, 
                            (3 > -3 || "object" + this) == (key165 && (key165.set -= [ , 0 ][1] + "c" + (await && ([ await.b ] = [ "b" >>> Infinity ]))))) || 7).toString()[c = 1 + c, 
                            (key165 && ({
                                then: key165[c = 1 + c, (this * Infinity >> (-3, "bar")) + ((c = c + 1, 25) >>> (24..toString(), 
                                1))]
                            } = {
                                then: -1 >>> NaN
                            })) != (-5 === "c") ^ "c" >>> null == (null !== "function")] ]:
                            break;

                          case a--:
                            await && typeof await.foo == "function" && --_calls_ >= 0 && await.foo(23..toString(), -5, 0);
                            switch (a++ + b_2) {
                              case (3 ^ true) >> (2 << -3) || [ , 0 ][1] << 1 === (-1 ^ [ , 0 ].length === 2):
                                c = 1 + c, ("object" <= "a") - (b_2 && (b_2[c = 1 + c, ("" - "c" <= (4 <= "c")) / ("object" >> "undefined" ^ NaN & false)] += "number" & /[a2][^e]+$/)) >>> (4 % /[a2][^e]+$/ < [] * -1);
                                c = 1 + c, "c" << -2 >>> (b_2 %= "foo" >= "c") !== (38..toString() | "function") % (23..toString() ^ -2);
                                break;

                              case a++ + ("number" in {
                                    var: (c = 1 + c, (c = c + 1, false === 5) || ([ , 0 ].length === 2 && -5) ^ "number" << Infinity)
                                }):
                                c = 1 + c, -0 <= 3 < ("" <= -3) && -4 < null != (false != 22);
                                break;

                              case --b + !function yield_2() {
                                }():
                                break;

                              default:
                                c = 1 + c, ("object" ^ "number") / void "foo" || ([ , 0 ][1] || -2) < (1 || "function");
                            }
                            break;
                        }
                    } while ((c = c + 1) + {
                        "": b_2 && typeof b_2.var == "function" && --_calls_ >= 0 && b_2.var((c = 1 + c, 
                        (await && (await.done <<= (foo && (foo[c = 1 + c, (await && (await.async = 1 > "bar" ^ ~{})) > void (-1 * -2)] += null !== 38..toString())) !== -1 >> this)) >>> ((4 === /[a2][^e]+$/) > "function" >>> this)), 38..toString(), -5),
                        [typeof foo == "function" && --_calls_ >= 0 && foo("function", (c = 1 + c, ((c = c + 1, 
                        -0) || +"number") != 25 - true + (Infinity >>> "c")), (c = 1 + c, await && (await.a = (b_2 && (b_2.b |= "undefined" !== "c" ^ (4 || {}))) == "bar" % 4 + ({} >>> 22))))]: false in {
                            [(c = 1 + c, ("number" / 2 >> (25 === "c")) / (25 >> [] >> (-0 >>> true)))]: (c = 1 + c, 
                            -2 * [] >>> ([ , 0 ].length === 2 !== 4) < (5 - 23..toString() !== ("bar" ^ 0))),
                            0: (c = 1 + c, await && ([ await.null ] = [ (5 < 2 && -4 != ([ , 0 ].length === 2)) === ([ , 0 ][1] >>> [] === (foo && (foo[c = 1 + c, 
                            !(5 % import.meta) >>> (!"foo" != (23..toString() & -4))] = 5 >>> "number"))) ])),
                            static: (c = 1 + c, (key165 && (key165.done = (await += "number" | "c") & (NaN & 0))) ^ /[a2][^e]+$/ * "foo" - (4 + this)),
                            "-2": (c = 1 + c, c = c + 1, c = c + 1, [] ^ "number")
                        },
                        static: (c = c + 1) + (b_2 && b_2[++b])
                    } && --brake166 > 0);
                }
            }
        } else {
            switch ((--b + (foo = (c = c + 1) + +b) || a || 3).toString()) {
              case --b + (b + 1 - .1 - .1 - .1):
                {}
                break;

              case "":
                break;

              case (c = c + 1) + (foo && foo[--b + ((c = c + 1) + /[abc4]/.test(((c = 1 + c, "object" << Infinity != (5 && 22) == (c = c + 1, 
                -1 * -1)) || b || 5).toString()))]):
                c = c + 1;
                break;

              case b_2 && typeof b_2.undefined == "function" && --_calls_ >= 0 && b_2.undefined(typeof f7 == "function" && --_calls_ >= 0 && f7((c = 1 + c, 
                (22 ^ 24..toString()) == (-4 == "object") !== ((4 && 38..toString()) !== (-3 == -0))), "bar", 4)):
                {
                    var brake181 = 5;
                    L18029: while (String.raw`\\${c = 1 + c, 38..toString() <= "b" >= (-5, "a") && ("b" ^ 4) << (c = c + 1, 
                    null)}${c = 1 + c, (b_2 *= [ , 0 ][1] >> 5 << "bar" / "a") === ([ , 0 ][1] === "bar") << (c = c + 1, 
                    -3)}${c = 1 + c, (+{} >>> (b_2 += 38..toString() | -5)) % (("undefined" >= {}) - (3 || 23..toString()))}$${c = 1 + c, 
                    (foo && (foo[a++ + [ (c = 1 + c, (2 & 23..toString()) >= (1 || null) && -3 % undefined << ("object" === [])), , (c = 1 + c, 
                    b_2 && (b_2.Infinity = "function" >>> [] != -2 % 4), (c = c + 1, [ , 0 ].length === 2) * ("b" ^ 22)), (c = 1 + c, 
                    (foo && (foo[--b + (1 === 1 ? a : b)] = ("a" <= -4) << (23..toString() === "bar"))) & (foo && ([ foo.foo ] = [ ([] | -0) == 4 <= 3 ]))) ]] = "foo" != -2 && 24..toString() - "undefined")) << (b_2 && ({
                        b: b_2.c
                    } = {
                        b: (4 < null) + (foo = 38..toString() >>> "bar")
                    }))}${c = 1 + c, b_2 && (b_2.value = [] !== 4 & (NaN ^ undefined) || (foo = 3 ^ "function") + (0 === {}))}` && --brake181 > 0) {
                        try {
                            c = 1 + c, (-2 & 3 && null < -0) << (2 + 24..toString(), [] - {});
                        } catch (arguments) {
                        }
                    }
                }
                var async;
            }
            switch (typeof foo_2 != "number") {
              case --b + (b_2 && b_2.null):
                {
                    c = 1 + c, ((25 != 0) << (-1 >> true)) % (b_2 = (-3 <= 38..toString()) / (-4 | false));
                    c = 1 + c, ({} || "number") ^ ("bar" ^ "object") | (25 != ([ , 0 ].length === 2)) / (5 != ([ , 0 ].length === 2));
                    c = 1 + c, (Infinity || "number") === (foo && ({
                        c: foo.b
                    } = {
                        c: -3 !== -3
                    })) == (void 1 != (c = c + 1, 24..toString()));
                    c = 1 + c, ([ , 0 ][1] == "number" || "foo" | 22) * ((/[a2][^e]+$/ && 22) === 24..toString() % null);
                }
                L18030: for (var brake191 = 5; a++ + ((c = 1 + c, (3 == -0 ^ 22 != -5) <= !25 % (-0 + -2)) || 6).toString()[c = 1 + c, 
                (5 === 0 != 1 >= this) >> ((0 || {}) !== 0 - false)] && brake191 > 0; --brake191) {
                }
                break;

              case a++ + (Infinity in [ (c = 1 + c, (async = 1 < 0) | [] % 2 | (-0 && 0) >= ("function" !== -2)), (c = 1 + c, 
                (async = "undefined" == 23..toString()) ^ 1 >> -3 ^ Infinity >> "c" == {} - 4), (c = 1 + c, 
                (async = 3 & -1) != ("function" | [ , 0 ].length === 2) === (([ , 0 ].length === 2) % "foo" === 3 <= 2)), (c = 1 + c, 
                ((b_2 && (b_2.null = Infinity !== 4)) === 24..toString() > NaN) < (async && (async[/[abc4]/.test(((c = 1 + c, 
                (38..toString() != "undefined") >= (-3 & 22) | "number" + 0 <= (true >= 4)) || b || 5).toString())] = (b_2 = {} !== 23..toString()) << (4, 
                Infinity)))), (c = 1 + c, (async && ([ async.null ] = [ (c = c + 1, 3) && -3 / -4 ])) >> ((1 == 22) <= ("foo" <= 25))) ] || 6).toString()[typeof f0 == "function" && --_calls_ >= 0 && f0((c = 1 + c, 
                ([] === -0 != ("bar" != this)) % ((b_2 && (b_2[c = 1 + c, foo |= ("object" !== 5) / (false || undefined) > (22 > "number" || "function" && this)] <<= 23..toString() - 23..toString())) / (true !== false))))]:
                {}
                break;

              default:
              case typeof (a++ + "bar"):
                break;
            }
        }
        {
            var brake194 = 5;
            do {
            } while (--b + ++b && --brake194 > 0);
        }
    } finally {
        {
            var brake196 = 5;
            L18031: do {
            } while (a++ + [ b--, (c = c + 1) + (typeof b_2 == "function" && --_calls_ >= 0 && b_2()), 2 in [ --b + ++a, typeof f0 == "function" && --_calls_ >= 0 && f0((c = 1 + c, 
            (0 >= 0 != (0 ^ this)) - ((/[a2][^e]+$/ != "foo") < ("c" == undefined))), (c = 1 + c, 
            ("a" || -1) != (this == null) === "bar" >>> -1 << ([ , 0 ][1] & -5)), ..."" + b_2), (c = c + 1) + {
                length: (c = 1 + c, (b_2 && (b_2[{
                    get: (c = 1 + c, (-3 ^ -1) / (0 !== 38..toString()) + (!1 === (b_2 /= "bar" >> {})))
                }[c = 1 + c, (24..toString() && null) - (23..toString() ^ "c") || (-5 == undefined) / (-5 >>> -4)]] -= NaN >>> {} != true + "function")) + ((c = c + 1, 
                -4) >= (-4 !== false))),
                set in(foo_1) {
                    this.static -= -5 && -3;
                },
                0: (c = 1 + c, (delete "" !== (1, Infinity)) % (b_2 && (b_2.c = 22 - [ , 0 ][1] < ("a" ^ "c")))),
                static: (c = 1 + c, 25 >= "b" === "bar" > 25 | (-0 && Infinity) >>> (b_2 && (b_2.b <<= 38..toString() ^ []))),
                static: (c = 1 + c, (b_2 && (b_2.async = 25 === -2 === (5 ^ "b"))) << (-1 * [] && 2 >= -0))
            }.value ], --b + (1 === 1 ? a : b), a++ + 0 ][a++ + b_2] && --brake196 > 0);
        }
        {
            var brake198 = 5;
            L18032: do {
                --b + (1 === 1 ? a : b);
            } while ((c = c + 1) + {
                __proto__: (c = c + 1) + (a++ + (b_2 && typeof b_2.set == "function" && --_calls_ >= 0 && b_2.set(--b + (typeof f6 == "function" && --_calls_ >= 0 && f6((c = 1 + c, 
                ("a" === 38..toString() | "" != []) >>> ((b_2 && ([ b_2[c = 1 + c, (false < Infinity) << ("function" !== -2) <= ((b_2 += "a" && 3) < 22 >>> "function")] ] = [ NaN !== [] ])) >> "object" + 4))))))) || {},
                foo: --b + /[abc4]/.test((--b + +function() {}() || b || 5).toString()),
                "\t": --b + b_2,
                get then() {
                    if (a++ + (typeof f7 == "function" && --_calls_ >= 0 && f7((c = 1 + c, ("b" << 5 ^ false * null) !== "undefined" % {} > (c = c + 1, 
                    "undefined")), (c = 1 + c, b_2 = (false | -0) / ("foo" == 38..toString()) == (NaN !== NaN && (b_2 && (b_2.value = Infinity * 38..toString())))), 24..toString()))) {} else {
                        var expr202 = {
                            in() {
                            },
                            [(c = 1 + c, ("a" || "a") > (b_2 &= 3 >= "function") < false / ([ , 0 ].length === 2) >>> +0)]: (c = 1 + c, 
                            ("", 38..toString()) && this != -1 || (b_2 && (b_2[c = 1 + c, (25 ^ [ , 0 ].length === 2) << (b_2 && (b_2[c = 1 + c, 
                            void ("b" <= "a") <= ((NaN, Infinity) !== 23..toString() * null)] += Infinity > -4)) >>> (23..toString() != /[a2][^e]+$/ && 22 == this)] = "b" + null)) * (5 - this)),
                            set: (c = 1 + c, (2 - "a" || 22 % -1) ^ (-2 && "bar") >= (this | null)),
                            undefined: (c = 1 + c, !(undefined ^ 38..toString(), {} || 25))
                        }.static;
                        for (const key202 in expr202) {
                            c = 1 + c;
                            var bar = expr202[key202];
                            var undefined_2 = (c = 1 + c, 5 + -2 & (/[a2][^e]+$/ & [ , 0 ][1]) && (-2 << {}) / (-3 & "object"));
                        }
                    }
                    return;
                }
            }.NaN && --brake198 > 0);
        }
    }
    if (a++ + !async function() {
        b--;
        {
            var brake207 = 5;
            while (a++ + /[abc4]/.test((~b || b || 5).toString()) && --brake207 > 0) {
                var expr208 = {
                    var: [].a,
                    [a++ + b_2]: b--,
                    [a++ + (b + 1 - .1 - .1 - .1)]: typeof f0 == "function" && --_calls_ >= 0 && f0("number"),
                    ...b_2,
                    in: (c = c + 1) + [ (c = 1 + c, b_2 && (b_2.undefined = 25 && 1 && (c = c + 1, 24..toString()) || this == 3 == this >>> null)), ..."" + b_2, (c = 1 + c, 
                    (5 >= 1 && (false && undefined)) ^ (void "undefined", null !== Infinity)), (c = 1 + c, 
                    ("" ^ 5) == (c = c + 1, null) != (38..toString() !== {}) >= ("" >= "number")), (c = 1 + c, 
                    ((undefined ^ 4) >= (null !== "function")) << (c = c + 1, c = c + 1, "")) ].then
                }[--b + (38..toString() in {
                    in: typeof (c = 1 + c, (b_2 += ("c" >>> "a") + ("number" ^ -1)) - (([ , 0 ].length === 2) < -3 >= (1 < 22))),
                    var: a++ + ((b_2 = -5 && 5) >> ("c" >>> 4) || (b_2 && (b_2.NaN <<= "bar" == 38..toString())) + (4 & {})),
                    then: a++ + (b_2 && b_2.next)
                })];
                for (var key208 in expr208) {
                    c = 1 + c;
                    var foo_1 = expr208[key208];
                }
            }
        }
    }()) {
        if (--b + [ a++ + (1 === 1 ? a : b), /[abc4]/g.exec((--b + (typeof f3 == "function" && --_calls_ >= 0 && f3(2, -2)) || b || 5).toString()), a++ + (38..toString() in {
            "\t": a++ + --a
        }), b_2 ].Infinity) {
            var undefined = function f6(async, arguments, foo) {
                {
                    var expr212 = a++ + (async && async[--b + -(((c = c + 1, 2) < ~"object") * ((22 >>> -3) * (0 >> "undefined")))]);
                    for (const key212 in expr212) {
                        c = 1 + c;
                        var foo_2 = expr212[key212];
                        {
                            var brake213 = 5;
                            do {
                                try {
                                    {
                                    }
                                } catch (key212_1) {
                                    c = 1 + c, (38..toString() > Infinity || false != "") & (-1 - "b", 3 & "");
                                    c = 1 + c, (25 <= -1) * (38..toString() === "") + (([ , 0 ].length === 2 === "undefined") < ([ , 0 ].length === 2 === -4));
                                }
                            } while (([ , 0 ].length === 2) in {
                                1.5: (c = 1 + c, (foo_2 >>= (c = c + 1, 2) >= -0 << 4) || (c = c + 1, {}) * (25 === 22)),
                                then: (c = 1 + c, (-4 > 23..toString()) + (2 >= 23..toString()) > ("a" ^ 23..toString()) + false % "object"),
                                next: (c = 1 + c, (2 <= "object") * (foo_2 && (foo_2.next &= true & 38..toString())) || "object" % "" == [] >= 22),
                                value: (c = 1 + c, (this / "b" && -1 >> ([ , 0 ].length === 2)) % ((4 || "foo") != (async += "foo" >> /[a2][^e]+$/)))
                            } && --brake213 > 0);
                        }
                    }
                }
                L18033: for (var brake218 = 5; a++ + ((c = c + 1) + typeof foo) && brake218 > 0; --brake218) {
                    var expr219 = /[abc4]/g.exec(((c = c + 1) + (1 === 1 ? a : b) || b || 5).toString());
                    for (const key219 in expr219) {
                        c = 1 + c;
                        var b_2 = expr219[key219];
                        {
                            var NaN_1 = function f7(foo, async, bar_2) {
                            }((c = 1 + c, (5 && [ , 0 ][1]) === (NaN || [ , 0 ][1]) !== (-1 != "function") << (([ , 0 ].length === 2) <= "number")), (c = 1 + c, 
                            (undefined & -4) - ("undefined" & NaN) >>> ([] >= 23..toString() ^ -4 >>> 5)), 2);
                        }
                    }
                }
            }(--b + /[abc4]/.test(((c = c + 1) + +b || b || 5).toString()), void function await() {
                {
                    var expr221 = (c = 1 + c, (5 !== "b") / (3, 25) !== (undefined && ([ undefined[--b + (- -1 % (Infinity * "undefined") != (delete -2 ^ "undefined" << "object"))] ] = [ NaN / 25 < (1 >= /[a2][^e]+$/) ]))) ? (c = 1 + c, 
                    b_2 = (b_2 && (b_2.set = ([ , 0 ].length === 2) % 3 >= 1 - -0)) <= ({} > 3 <= (25 !== "bar"))) : (c = 1 + c, 
                    await && (await[[]] = ("a" <= null & ("object", "c")) !== ((23..toString() && "undefined") == 1 <= 1)));
                    for (var [ key221 ] in expr221) {
                        c = 1 + c;
                        var bar_1 = expr221[key221];
                        {
                            return c = 1 + c, c = c + 1, ([] | -3) != "object" * -0;
                        }
                    }
                }
                L18034: {
                    c = 1 + c, (-5 === "c") + (false >= []) || (-5 !== 38..toString()) % ("object" % Infinity);
                }
            }());
        }
    }
}

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

switch (((yield, NaN_2) => -0 in {
    undefined: a++ + ("function" == typeof f1 && 0 <= --_calls_ && f1(-3, null)),
    [NaN_2 && "function" == typeof NaN_2.a && 0 <= --_calls_ && NaN_2.a("undefined", --b + (yield = !0))]: a++ + ("function" == typeof f1 && 0 <= --_calls_ && f1((--b + (yield && "function" == typeof yield.length && 0 <= --_calls_ && yield.length(undefined, /[a2][^e]+$/, 24..toString())) || 0).toString()[(0 / (2 === [ , 0 ].length) || 38..toString() < 3) | (NaN_2 && (NaN_2.a = !0)) + !1], b /= a)),
    next: (c += 1) + ((c += 1) + yield || a || 3).toString(),
    null: a++ + (b += a)
})((a++ + {}[a++ + !((!1 ^ NaN <= 24..toString()) == (2 === [ , 0 ].length !== 1 / 0 != -1))] || 6).toString()[--b + (a && a.undefined)], 0, (a++, 
--b))) {
  case (c += 1) + {
        c: a++ + (--b + (a && a[--b + a]) || 2).toString()[a--]
    }.async:
    if ((0 == (a && ([ a.value ] = [ -2 / 38..toString() ]))) + ((undefined && -5) + (23..toString() + -1))) {
        var key18, expr18 = "undefined" != typeof alias0 && alias0;
        for (key18 in expr18) {}
    } else {
        for (var brake20 = 5; "" + ("function" == typeof a && 0 <= --_calls_ && a(-3, a)) && 0 < brake20; --brake20) {}
    }
    break;

  case a++ + /[abc4]/g.exec(([][a && "function" == typeof a.var && 0 <= --_calls_ && a.var(1, --b + (b = a))] || b || 5).toString()):
    for (var brake22 = 5; "function" == typeof f0 && 0 <= --_calls_ && f0() && 0 < brake22; --brake22) {
        for (var brake23 = 5; c += 1, !1 === (a >>>= 0) && 0 < brake23; --brake23) {}
    }
    break;

  case --b + !function bar_1() {
        for (var brake25 = 5; a++ + (b = a) && 0 < --brake25; ) {
            c += 1;
        }
        var bar, expr27 = "unknown" == typeof Infinity_2;
        for (const key27 in expr27) {
            c = 1 + c;
            const async = expr27[key27];
            c += 1;
        }
        c += 1;
        try {
            var NaN_2 = function*(a_2) {
                try {
                    for (var brake33 = 5; a++ + (void 0 !== a_2) && 0 < --brake33; ) {
                        c = 1 + c, 24..toString() || 23..toString(), c = 1 + c, bar_1 && (bar_1.undefined %= (bar_1 && ([ bar_1.b ] = [ !1 ])) >> (a_2 && (a_2[c = 1 + c, 
                        (a_2 = NaN) / 2 / (bar_1[a++ + --b] = {} % -3 << [])] ^= 0)) <= 3), c = 1 + (c = 1 + c), 
                        a_2 = !1;
                    }
                } catch (a_2) {
                    switch ({
                        static: 0,
                        [(c = 1 + (c = 1 + c), 3 <= ("foo" ^ 24..toString()) ^ !0)]: (c = 1 + c, +(a_2 += 24..toString() < 25))
                    }[c = 1 + c, (-0 == !23..toString()) >> !1]) {
                      case a_2 && "function" == typeof a_2.set && 0 <= --_calls_ && a_2.set():
                        c = 1 + c, a_2 |= 1, 23..toString(), c = 1 + c, 38..toString();
                        break;

                      case c = 1 + c, !1 >>> (38..toString() > 24..toString()) & 0 ? (c = 1 + c, this >>> ("bar" | 23..toString()) >>> 22) : (c = 1 + c, 
                        23..toString() - !0 == (1 | undefined) - (-4 !== {})):
                        c = 1 + c, bar_1 && (bar_1[/[abc4]/g.exec(("function" == typeof f1 && 0 <= --_calls_ && f1() || b || 5).toString())] += (c += 1, 
                        !1 != (-5 & this) - "-5number"));
                        break;

                      case !1 >> (a_2 && (a_2[a++ + [ (undefined != this ^ 3) - 27, (c = 1 + (c = 1 + c), 
                        0 - (38..toString() <= 0)) ].undefined] += ("undefined" != []) % (-4 | 23..toString()))):
                        c = 1 + c, a_2 && (a_2.async = -4 - 24..toString()), c = 1 + c, a_2 && (a_2[c = 1 + c, 
                        c += 1, -2 ^ 24..toString() ^ (a_2 && (a_2.NaN = !0))] |= !1), a_2 = !0;
                        break;

                      case "function" == typeof bar_1 && 0 <= --_calls_ && bar_1((c = 1 + c, 0 == (c += 1, 
                        -5))):
                        c = 1 + c;
                    }
                }
                try {
                    var yield_1 = (c = 1 + c, 24..toString(), 23..toString(), c = 1 + c, void 38..toString());
                } finally {
                    --b ? (c = 1 + c, c += 1, a_2 = NaN) : (c = 1 + c, a_2 && (a_2.in >>= !0));
                    for (var brake52 = 5; c = 1 + c, 0 < brake52; --brake52) {
                        c = 1 + c, yield_1 && (yield_1.NaN <<= 0);
                    }
                }
            }(a++ + [ --b - ((a += !1 !== (38..toString() || "number")) >= (-0 === ({} !== 38..toString()))), (c += 1) + bar_1, a++ + (b += a), bar_1 && bar_1["function" == typeof f1 && 0 <= --_calls_ && f1()], --b + ("function" == typeof bar_1 && 0 <= --_calls_ && bar_1((c = 1 + c, 
            NaN <= ((this !== undefined) >= (bar_1 && (bar_1[c = 1 + c, ([] << !0 && null) >>> 0] -= -21))))) ? b + 1 - .1 - .1 - .1 : "number") ]).next().done;
        } finally {
            switch ((c += 1) + /[abc4]/.test((a++ + {
                foo: --b + (((2 === [ , 0 ].length) >>> "undefined") * (null === 23..toString()) | (undefined <= 0) >> 1),
                in: --b + b--,
                "-2": /[abc4]/.test((/[abc4]/.test((c = 1 + c, (!(NaN_2 && (NaN_2.get = 2)) >= (38..toString() * [] ^ !0) || b || 5).toString())) || b || 5).toString()),
                get: b,
                __proto__: --b + typeof [ (c = 1 + c, !0 % (!0 !== (NaN_2 && (NaN_2[c = 1 + c, -4 / {} >> "objecta"] = NaN)))), ..."" + NaN_2, (c = 1 + c, 
                (NaN_2 && ([ NaN_2[b] ] = [ 0 ])) ^ (NaN_2 += !1 ^ 25 + 23..toString())), (NaN | null !== undefined) <= !1, (c = 1 + (c = 1 + c), 
                NaN % (!1 === this)) ].c || {}
            }[(c += 1) + NaN_2] || b || 5).toString())) {
              case --b + !0:
                for (var brake55 = 5; a && 0 < --brake55; ) {
                    a++ + ("bar" in [ (c = 1 + c, !0 !== 4 << {} & (5 & 24..toString() || !1)) ]) && (c = 1 + c, 
                    NaN_2 += 2, 24..toString());
                }
                break;

              case a:
                break;

              case --b + {
                    length: b += a,
                    1.5: [ "function" == typeof f0 && 0 <= --_calls_ && f0(), NaN_2 && "function" == typeof NaN_2.a && 0 <= --_calls_ && NaN_2.a(undefined, -2, (c = 1 + c, 
                    (NaN_2 <<= {} % (2 === [ , 0 ].length)) > !0 << -1 >= !1 * (NaN_2 = 1))) ],
                    NaN: void (0 < ("undefined" < 38..toString()) || (38..toString(), c += 1))
                }.a:
                var b, brake59 = 5;
                do {
                    var brake60 = 5;
                    do {
                        var let_2 = void (c = 1 + c);
                    } while ((b %= a) && 0 < --brake60);
                } while (a++ + [ ..."" + bar_1, [ c = 1 + c, (c = 1 + c, (0 ^ undefined) - !1), (c = 1 + (c += 1), 
                NaN_2 += !1 % (c += 1, 5)) ][1], a++ + [ (c = 1 + c, 0 < (NaN_2 && (NaN_2.done = !1 * (bar_1 && (bar_1.async = "undefined" <= (2 === [ , 0 ].length)))))), , (-0 <= []) % ((!1 <= {}) >>> "foo2"), (c = 1 + (c = 1 + c), 
                1 != (NaN_2 && (NaN_2.in = NaN <= ("foo" === {})))), (c = 1 + c, !0 ^ 0 == (0 | [])) ].var, --b + bar_1 ]["}" + (c = 1 + c, 
                c += 1, (2 === [ , 0 ].length == "c") >> !1) + (c = 1 + c, (null ^ this) < (2 === [ , 0 ].length) >>> 2 != 0) + (c = 1 + c, 
                (1 / 0 + "") % ({} << "a" & 0)) + (c = 1 + (c += 1), 26)] && 0 < --brake59);
                break;

              case a++ + (b && "function" == typeof b.var && 0 <= --_calls_ && b.var(this in [ a++ + (c = 1 + c, 
                c += 1, (3 ^ []) <= ((2 === [ , 0 ].length) <= "a") ? (c = 1 + c, (-0 ^ 38..toString()) + !1 - ("foo" === (NaN_2 && (NaN_2[c = 1 + c, 
                (2 === [ , 0 ].length) / (bar_1 && (bar_1.value += !1)) == !1 / (this * 38..toString())] = "foo" * [])))) : (c = 1 + c, 
                c += 1, NaN & (let_2 && (let_2[c = 1 + c, !0 - (bar_1 && (bar_1.NaN |= !1)) >>> (let_2 = NaN != -23..toString())] = "number" == 24..toString())))), --b + a++, b = a, [] ], ..."" + bar_1, 23..toString())):
            }
            switch ((c += 1) + ("function" == typeof f2 && 0 <= --_calls_ && f2())) {
              case {
                    next: "function" == typeof f1 && 0 <= --_calls_ && f1(--b + (NaN_2 && "function" == typeof NaN_2.in && 0 <= --_calls_ && NaN_2.in((c = 1 + c, 
                    let_2 = !0 <= (undefined >> {} ^ 24..toString() === /[a2][^e]+$/)))), "number", /[abc4]/g.exec((c = 1 + c, 
                    (NaN ^ (0 | (b && (b[c = 1 + c, (b += -0) <= (23..toString() != /[a2][^e]+$/) << "a"] = -4))) || b || 5).toString()))),
                    "": b = a,
                    "-2": (c += 1) + !((let_2 && (let_2.value /= -5 + /[a2][^e]+$/)) / 22 !== (NaN_2 && (NaN_2[--b + (b && "function" == typeof b.value && 0 <= --_calls_ && b.value((c = 1 + c, 
                    c += 1, 4 + ((undefined ^ undefined) === "foo")), (c = 1 + (c += 1), !1 << ((2 === [ , 0 ].length) / 0 ^ -2 ^ {}))))] = 1 == 38..toString() ^ !1))),
                    var: [ a++ + (c = 1 + c, 1 < ((bar_1 && (bar_1.set >>>= 0)) >= {})), (c += 1) + let_2, [ (c = 1 + c, 
                    (let_2 = 0 <= (-0 <= {})) >> (16 << (-3 === this))) ].a ],
                    c: --b + (!1 in [ b *= a, "function" == typeof f2 && 0 <= --_calls_ && f2(), --b + [ (c = 1 + c, 
                    +(24..toString() != this) === (0 >>> 38..toString() == NaN)), (c = 1 + c, !0 < (NaN_2 = "object" < this) ^ undefined % -3 != ("b" ^ 23..toString())), (c = 1 + c, 
                    !1) ].get, a++ + (bar_1 && bar_1[c = 1 + c, -3 % (3 & {}) << !0]), (c = 1 + c, (("c" | (c += 1, 
                    "")) === (23..toString() & 38..toString()) <= -3 || 6).toString()[c = 1 + c, (let_2 && (let_2.done = 0)) <= (bar_1 && (bar_1[c = 1 + c, 
                    b += 0 >>> ("a" << undefined < (c += 1, NaN))] = !0)) === (/[a2][^e]+$/ < {} || 0)]) ])
                }:
                var key64, expr64 = (let_2 && "function" == typeof let_2.in && 0 <= --_calls_ && let_2.in(..."" + bar_1) || a || 3).toString();
                for (key64 in expr64) {
                    c = 1 + c;
                    var async = expr64[key64];
                    ([ {
                        [(c = 1 + c, 0)]: bar
                    } ] = [ {
                        Infinity: undefined,
                        [(c = 1 + c, void 0 >> (2 === [ , 0 ].length ^ "a") % -5)]: "object"
                    }, (a++, /[abc4]/g.exec((c = 1 + c, ((-3 >>> !0) + (undefined + "function") / (undefined <= "function") || b || 5).toString()))) ]), 
                    c = 1 + c, 38..toString(), c = 1 + c, b = undefined / 4;
                }
                var brake69 = 5;
                do {
                    for (var brake70 = 5; c = 1 + c, b && (b.a = (c += 1, "bar" << (2 === [ , 0 ].length))), 
                    c += 1, 38..toString(), 38..toString(), c = 1 + c, (b && (b.static = 0 < 23..toString() << -1)) <= NaN && 0 < --brake70; ) {}
                } while (--b + [ ..."" + bar_1, ..."" + b, (c = 1 + c, "c1" != (2 === [ , 0 ].length || null) && 1) ] && 0 < --brake69);
                var brake72 = 5;
                do {
                    try {
                        c = 1 + c, 23..toString();
                    } catch (a_1) {}
                } while ({
                    "\t": (c = 1 + c, 1 != 0 * ("c" == 24..toString())),
                    done: (c = 1 + c, (!0 ^ 38..toString() && 1 / 0) ^ (let_2 %= 25 != undefined) / 2)
                }[c = 1 + c, !1 << (NaN_2 && (NaN_2[c = 1 + c, "c" % this == (undefined || !0) == 1] = 0))] && 0 < --brake72);
                break;

              case --b:
                break;

              case (c += 1) + [ a++ + (NaN_2 && "function" == typeof NaN_2.b && 0 <= --_calls_ && NaN_2.b(-3, this, (c = 1 + c, 
                (-5 <= (!0 === 23..toString())) << 3), ..."" + let_2, 0 <= 0 / {}, (c = 1 + (c = 1 + c), 
                (let_2 && (let_2[--b + ("function" == typeof f0 && 0 <= --_calls_ && f0(!0))] = 1)) >>> NaN))), --b + ("a" in {
                    foo: a++ + a,
                    c: a--,
                    a: --b + [ (c = 1 + c, NaN ^ (NaN_2 && (NaN_2.in = 0)) - (NaN_2 && ([ NaN_2.set ] = [ NaN ]))), (c = 1 + c, 
                    c += 1, b = 5 * (24..toString() || "function")) ][c = 1 + c, 1 << (0 == (2 === [ , 0 ].length != -0))],
                    foo: --b + 1 / 0
                }), a++ + (let_2 && "function" == typeof let_2.value && 0 <= --_calls_ && let_2.value(-0)), [ {
                    length: (c = 1 + c, ([] <= 3 & 25) / 0),
                    3: (c = 1 + (c += 1), c += 1, bar_1 && (bar_1.null = -.2 << ((2 === [ , 0 ].length) >>> -3))),
                    in: !1 <= (2 | undefined && -18),
                    null: (c = 1 + (c = 1 + c), (bar_1 && (bar_1.Infinity += (let_2 && (let_2[c = 1 + c, 
                    (NaN_2 = !1) != (2 === [ , 0 ].length == 1)] = "bar" != 23..toString())) != ("foo" ^ undefined))) >>> ([] !== (0 === this))),
                    value: (c = 1 + c, (let_2 -= undefined) % 22 >= (2 === [ , 0 ].length) % !1 * -4)
                }, (--b, c = 1 + c, ((let_2 && (let_2.undefined = -0 - [])) / ((2 === [ , 0 ].length) >= 23..toString()) ^ (b && (b.done += (c += 1, 
                "function") < 0)) || 2).toString()[c = 1 + c, (NaN_2 && (NaN_2[b && b.NaN] = 0 - ({} <= 5))) >>> +(4 !== (2 === [ , 0 ].length))]), (c += 1, 
                b += a), c += 1 ][0], (c += 1) + (b = a) ][(c += 1) + [ "function" == typeof f3 && 0 <= --_calls_ && f3((c = 1 + c, 
                (this < 2 == 2) + (b && (b.NaN += ("object" < {}) << (-5 & []))))), +function() {
                    c = 1 + c, 38..toString(), c = 1 + c, bar_1 && (bar_1.async = "object" + 1 / 0 + !0), 
                    c = 1 + c, -0 <= this && (c += 1, -0) || 24..toString(), c = 1 + c, 24..toString();
                }(), "function" == typeof f2 && 0 <= --_calls_ && f2(0 == (b = !0), (c = 1 + (c = 1 + c), 
                (.04 ^ (bar_1 && (bar_1[c = 1 + c, (NaN_2 += (let_2 = -4) > (bar_1 && (bar_1.set = !1))) >> ((NaN_2 = this < 1) || bar_1 && (bar_1.foo %= 0))] ^= -7))) <= !0)), a--, (c = 1 + c, 
                let_2 += void 0 + ("function" | 24..toString()), 23..toString(), c = 1 + c, c += 1, 
                (b %= -1) && 24..toString(), c = 1 + c, void (b %= -1)) ]]:
                for (var brake83 = 5; --b + (b |= a) && 0 < brake83; --brake83) {
                    try {
                        c = 1 + c, NaN_2 = 4;
                    } catch (yield) {
                        c = 1 + c, NaN_2 = !1;
                        try {
                            c = 1 + c;
                        } catch (a_2) {}
                    }
                }
                break;

              case (c += 1) + (b && b[a++ + ("function" == typeof f0 && 0 <= --_calls_ && f0(-2, []))]):
            }
        }
    }():
    for (var brake96 = 5; "function" == typeof f3 && 0 <= --_calls_ && f3("bar", b ^= a, "function" == typeof f2 && 0 <= --_calls_ && f2(--b + ("function" == typeof f2 && 0 <= --_calls_ && f2(--b + {
        NaN: (c = 1 + c, 1 == ("" ^ 23..toString())),
        async: (c = 1 + c, ([] >>> "undefined" ^ (2 === [ , 0 ].length) << NaN) & (this / 24..toString() & (a |= -5 >>> 2))),
        length: (c = 1 + c, a && (a.next %= (a = 2 === [ , 0 ].length && "bar") / 6), NaN)
    }[-1], "object")), "undefined", 38..toString())) && 0 < brake96; --brake96) {}

  case 1 % (a && (a[--b + []] = !0 < 2 % this)):
    var brake98 = 5;
    do {
        var b_2 = !function() {
            var b_2, brake100 = 5;
            if (0 < brake100) {
                return [ "function" == typeof b_2 && 0 <= --_calls_ && b_2((c = 1 + c, c += 1, 0 <= (1 / 0 ^ 38..toString()) % (b_2 && (b_2[c = 1 + c, 
                !1 !== (b_2 && (b_2[--b + [ (c = 1 + c, 0 ^ (b_2 ^= 1 != (null == (2 === [ , 0 ].length)))), (c = 1 + c, 
                b_2 && (b_2.async = (this < 4) - NaN >> (NaN === (c += 1, 25)))), (c = 1 + c, (!1 | undefined) <= -5 == ("a" == [] ^ !0)) ].value] += !1))] += 1 / 0))), -1) ].get;
            }
            c = 1 + c, b_2 += (3 != (b_2 <<= 25)) >> (0 ^ "undefined"), c = 1 + (c += 1), c = 1 + (c = 1 + (c += 1)), 
            24..toString(), c = 1 + (c += 1), 38..toString(), b = a, --b + --b && (c = 1 + c);
            for (var brake108 = 5; ({
                var: (c = 1 + c, b_2 && (b_2.b ^= (0 == +38..toString()) >= (!1 < (b_2 -= -4)))),
                get: !(-5 | this) << (!1 ^ (b_2 += !0))
            }[c = 1 + (c = 1 + c), (0 === (38..toString() && -1)) <= 0] ? --b + (undefined + 23..toString() != (38..toString() && "foo") || (c += 1, 
            {} + 23..toString())) : --b) && 0 < brake108; --brake108) {
                switch (a++ + (24..toString() in [ (c = 1 + c, NaN !== (b_2 = b_2 && (b_2.static >>= !1))), (c = 1 + c, 
                (-3 !== []) < null !== (b_2 += !0 <= (c += 1, this))), (c = 1 + c, +(b_2 += NaN)) ])) {
                  default:
                    c = 1 + c, -4 | "a" <= this || 24..toString(), c = 1 + c, 24..toString(), 38..toString(), 
                    24..toString();

                  case {}:
                    c = 1 + c;
                    break;

                  case --b + b:
                    c = 1 + c, 38..toString();
                    break;

                  case b_2 && "function" == typeof b_2.NaN && 0 <= --_calls_ && b_2.NaN((c = 1 + c, 
                    !0 % (!1 >>> (c += 1, 3))), 22, ""):
                }
            }
            --b, c = 1 + c, b_2 >>>= ((b_2 && (b_2.null = !1)) >>> (5 === undefined)) - ((2 === [ , 0 ].length) <= -3 ^ -3 < 24..toString()), 
            b_2 && (b_2[void 0 === a_2] += -3 === (2 === [ , 0 ].length == []));
            for (var brake118 in (c += 1) + b_2) {
                if (--b + [ (c = 1 + c, brake118 && ([ brake118[a++ + (b_2 && "function" == typeof b_2.foo && 0 <= --_calls_ && b_2.foo())] ] = [ (!1 === (!1 | [])) / ((b_2 && (b_2.done = "b" * 38..toString())) / !1) ])), (c = 1 + c, 
                ("c" % (2 === [ , 0 ].length) !== !1) >>> !0), (c = 1 + c, (0 == 24..toString()) >>> NaN & NaN !== (c += 1, 
                24..toString())) ].in) {
                    brake118 = 5;
                    if (2 === [ , 0 ].length && 0 < brake118) {
                        return (c += 1) + b_2;
                    }
                }
            }
        }();
    } while ({
        0: "a" in {
            [-0 in {
                in: typeof (b_2 && b_2[c = 1 + c, ((2 === [ , 0 ].length) <= "bar" < (2 === [ , 0 ].length) % 1) - (b_2 && (b_2["function" == typeof f3 && 0 <= --_calls_ && f3("bar")] += (b_2 && (b_2.next = 5)) << undefined % 5))]),
                next: b,
                next: --b - 2,
                [(c += 1) + b]: --b + (undefined in {
                    in: (c = 1 + c, c += 1, "object" / ([] >> /[a2][^e]+$/) & 23..toString() >= [] >= {} >>> !1),
                    in: (c = 1 + c, c += 1, NaN == (0 == (25 ^ 38..toString())))
                })
            }]: b = a,
            "-2": (c += 1) + void setImmediate(() => "function" == typeof f0 && 0 <= --_calls_ && f0(-5))
        },
        ...b_2,
        done: a++ + !function() {
            for (var brake120 = 5; a++ + /[abc4]/g.exec((a++ + (b = a) || b || 5).toString()) && 0 < --brake120; ) {
                switch (--b + a--) {
                  case /[abc4]/.test((b_2 || b || 5).toString()):
                    break;

                  case "function" == typeof f0 && 0 <= --_calls_ && f0(25):
                    return;

                  case --b + (--b + (c = 1 + c, (0 != this) / (b_2 += !1) == (1 ^ {} + this) ? (c = 1 + c, 
                    "foo" == (b_2 && (b_2[{
                        done: (c = 1 + c, !0 << (2 === [ , 0 ].length || -1))
                    }] = NaN))) : (c = 1 + c, b_2 && (b_2[a++ + [ (c = 1 + c, 38..toString() >> 0 <= NaN < !1 / (b_2 = "c" < 38..toString())) ].then] = (this != 24..toString() == NaN) <= 0))) ? --b + (b_2 && b_2[c = 1 + c, 
                    {} <= 25 < -5 == !0]) : (c += 1, NaN)):
                    break;

                  case "undefined" == typeof b_1:
                    switch (c = 1 + c, "b" % {} - (3 | undefined) < (1 / 0 & "c" - (2 === [ , 0 ].length))) {
                      case c = 1 + c, ((2 === [ , 0 ].length != /[a2][^e]+$/) <= (!0 <= this)) * (!1 ^ 5 != undefined):
                        break;

                      case c = 1 + c, (!0 <= ("a" === [])) >>> !1 * (b_2 && (b_2[c = 1 + c, (b_2 && (b_2[c = 1 + c, 
                        !1 != (undefined !== 38..toString()) < !0] *= -3)) < !0 | (c += 1, -6)] = NaN)):
                      case c = 1 + c, ((2 === [ , 0 ].length) < undefined ^ !0) < !0:
                      case c = 1 + c, 38..toString() + 2 + (NaN >> 23..toString()) + NaN:
                    }
                }
            }
            for (var brake128 = 5; a++ + {} && 0 < --brake128; ) {
                for (var brake129 = 5; --b + a && 0 < brake129; --brake129) {
                    c += 1;
                }
            }
        }(),
        3: (a++, b)
    }.in && 0 < --brake98);
    c += 1;
    var a_2 = function() {
        !function(bar_1, foo) {
            for (var key139 in c = 1 + c, c = 1 + (c = (foo += (bar_1 && (bar_1.foo = !1)) < !1) | 23..toString() / -2 <= -4 ? 1 + c : c), 
            NaN) {
                c = 1 + c;
                c = 1 + c, 23..toString(), c += 1, 23..toString();
            }
        }();
        b--, c = 1 + c, c += 1;
    }();
}

try {
    switch ((c += 1) + (b_2 /= a++ + "c")) {
      case "object" == typeof bar:
        for (var brake149 = 5; ++a && 0 < --brake149; ) {
            var key150, expr150 = 25 + a++;
            for (key150 in expr150) {
                c = 1 + c, b_2 = expr150[key150];
            }
        }
        break;

      case a++ + {}:
        (b = a) && (brake153 = 5);
        break;

      case !0 in [ "number" in [ b_2 && b_2[--b + {
            b_2: b_2
        }[b--]] ], a++ + {
            [a++ + NaN]: a++ + (c += 1, -(23..toString() - "object" | (b_2 && (b_2.then &= !1)) - ([] >> (2 === [ , 0 ].length))))
        }, --b + (--b + (b_2 && b_2.undefined)) ]:
        --b, --b, c = 1 + c, 23..toString(), 24..toString(), c = 1 + c, 24..toString(), 
        b_2 && (b_2.undefined += 23..toString() && this % 25), c = 1 + (c = 1 + c), 23..toString(), 
        --b, c = 1 + c, 24..toString(), --b, b_2 && b_2.b, a++, c = 1 + c, 2 === [ , 0 ].length && 24..toString(), 
        c = 1 + c, b_2 += !0, 38..toString(), c = 1 + c, 23..toString(), --b;
        break;

      case b_2 /= (c += 1) + (b + 1 - .1 - .1 - .1):
    }
} catch (foo) {
    if (a++ + {
        set set(foo) {
            this.foo = (c += 1, (foo = "c") / (!1 === !1 / ("number" !== 23..toString())) !== -(22 < 38..toString()) >> (b_2 %= [] - 2) * (25 * 24..toString()) < ((b_2 && (b_2.c += (foo && (foo.get = {} >>> "b")) ^ this === [])) != (foo && (foo[c = 1 + c, 
            !0 == (NaN !== (22 == undefined))] += 0))));
        },
        b_2: b_2
    }[(c += 1) + ("bar" in [ b = a, (c += 1) + (b_2 && "function" == typeof b_2.foo && 0 <= --_calls_ && b_2.foo({}, [])), "function" == typeof b_2 && 0 <= --_calls_ && b_2(!0, -0, ..."" + void 0) ])]) {
        var expr165 = this in {
            then: (c += 1) + !a
        };
        for (const key165 in expr165) {
            c = 1 + c;
            var await = expr165[key165], brake166 = 5;
            do {
                switch (/[abc4]/.test(([].value || b || 5).toString())) {
                  case [] in {}:
                    --b, foo = [ (c = 1 + (c += 1), -5 == ("foo" * {} | (b_2 && (b_2.next >>>= -20)))), c = 1 + c ][0];
                    break;

                  case --b + !b:
                  case [ b_2 && "function" == typeof b_2.done && 0 <= --_calls_ && b_2.done((c = 1 + c, 
                    [] % 0 || -2), 25, 38..toString()), (c += 1) + (c = 1 + c, (!0 == (key165 && (key165.set -= "0c" + (await && ([ await.b ] = [ 0 ])))) || 7).toString()[c = 1 + c, 
                    0 != (key165 && ({
                        then: key165[c = 1 + c, (this * (1 / 0) >> "bar") + (c += 1, 25 >>> (24..toString(), 
                        1))]
                    } = {
                        then: -1 >>> NaN
                    })) ^ !1]) ]:
                    break;

                  case a--:
                    switch (await && "function" == typeof await.foo && 0 <= --_calls_ && await.foo(23..toString(), -5, 0), 
                    a++ + b_2) {
                      case 2:
                        c = 1 + c, b_2 && (b_2[c = 1 + c, NaN] += 0), c = 1 + c, b_2 %= !0, 38..toString(), 
                        23..toString();
                        break;

                      case a++ + ("number" in {
                            var: (c = 1 + c, c += 1, 0 ^ (2 === [ , 0 ].length && -5))
                        }):
                        c = 1 + c;
                        break;

                      case --b + !0:
                        break;

                      default:
                        c = 1 + c;
                    }
                }
            } while ((c += 1) + {
                "": b_2 && "function" == typeof b_2.var && 0 <= --_calls_ && b_2.var((c = 1 + c, 
                (await && (await.done <<= (foo && (foo[c = 1 + c, void 0 < (await && (await.async = !1 ^ ~{}))] += null !== 38..toString())) !== -1 >> this)) >>> ("function" >>> this < !1)), 38..toString(), -5),
                ["function" == typeof foo && 0 <= --_calls_ && foo("function", (c = 1 + c, 24 != NaN), (c = 1 + (c += 1), 
                await && (await.a = (b_2 && (b_2.b |= 5)) == NaN + ({} >>> 22))))]: !1 in {
                    [0 / (25 >> [] >> 0)]: (c = 1 + (c = 1 + c), -2 * [] >>> (2 === [ , 0 ].length !== 4) < (5 - 23..toString() != 0)),
                    0: (c = 1 + c, await && ([ await.null ] = [ !1 == (0 >>> [] === (foo && (foo[c = 1 + c, 
                    !(5 % import.meta) >>> (0 != (-4 & 23..toString()))] = 5))) ])),
                    static: (c = 1 + c, (key165 && (key165.done = 0 & (await += 0))) ^ NaN - (4 + this)),
                    "-2": (c = 1 + c, c += 1, c += 1, "number" ^ [])
                },
                static: (c += 1) + (b_2 && b_2[++b])
            } && 0 < --brake166);
        }
    } else {
        switch ((--b + (foo = (c += 1) + +b) || a || 3).toString()) {
          case --b + (b + 1 - .1 - .1 - .1):
          case "":
            break;

          case (c += 1) + (foo && foo[--b + ((c += 1) + /[abc4]/.test((c = 1 + c, (1 == (c += 1, 
            1)).toString())))]):
            c += 1;
            break;

          case b_2 && "function" == typeof b_2.undefined && 0 <= --_calls_ && b_2.undefined("function" == typeof f7 && 0 <= --_calls_ && f7((c = 1 + c, 
            0 == (22 ^ 24..toString()) != (!1 !== 38..toString())), "bar", 4)):
            for (var async, brake181 = 5; String.raw`\\${c = 1 + c, "a" <= (38..toString() <= "b") && 4 << (c += 1, 
            null)}${c = 1 + c, (b_2 *= 0) == !1 << (c += 1, -3)}${c = 1 + c, (+{} >>> (b_2 += -5 | 38..toString())) % (({} <= "undefined") - 3)}$${c = 1 + c, 
            (foo && (foo[a++ + [ (c = 1 + c, 1 <= (2 & 23..toString()) && -3 % undefined << ("object" === [])), , (c = 1 + c, 
            b_2 && (b_2.Infinity = "function" >>> [] != -2), 22 * (c += 1, 2 === [ , 0 ].length)), (c = 1 + c, 
            (foo && (foo[--b + a] = !1 << ("bar" === 23..toString()))) & (foo && ([ foo.foo ] = [ 0 == (-0 | []) ]))) ]] = 24..toString() - "undefined")) << (b_2 && ({
                b: b_2.c
            } = {
                b: !1 + (foo = 38..toString() >>> "bar")
            }))}${c = 1 + c, b_2 && (b_2.value = 4 !== [] & (NaN ^ undefined) || (foo = 3) + (0 === {}))}` && 0 < --brake181; ) {
                try {
                    c = 1 + c, 24..toString();
                } catch (arguments) {}
            }
        }
        switch ("number" != typeof foo_2) {
          case --b + (b_2 && b_2.null):
            c = 1 + c, b_2 = (-3 <= 38..toString()) / -4, c = 1 + (c = 1 + c), foo && ({
                c: foo.b
            } = {
                c: !1
            }), c += 1, 24..toString(), c = 1 + c, 24..toString();
            for (var brake191 = 5; a++ + (c = 1 + c, 6..toString()[c = 1 + c, (0 != this <= 1) >> (0 !== {})]) && 0 < brake191; --brake191) {}
            break;

          case a++ + (1 / 0 in [ (async = !1) | [] % 2 | !1, (c = 1 + (c = 1 + c), 0 ^ (async = "undefined" == 23..toString()) ^ 0 == {} - 4), (c = 1 + c, 
            (async = 3) != ("function" | 2 === [ , 0 ].length) == ((2 === [ , 0 ].length) % "foo" === !1)), (c = 1 + c, 
            ((b_2 && (b_2.null = !0)) === NaN < 24..toString()) < (async && (async[/[abc4]/.test((c = 1 + c, 
            (20 <= ("undefined" != 38..toString()) | !1 || b || 5).toString()))] = (b_2 = {} !== 23..toString()) << 1 / 0))), (c = 1 + c, 
            (async && ([ async.null ] = [ (c += 1, .75) ])) >> !0) ] || 6).toString()["function" == typeof f0 && 0 <= --_calls_ && f0((c = 1 + c, 
            (-0 === [] != ("bar" != this)) % ((b_2 && (b_2[c = 1 + c, foo |= this < !0 / undefined] <<= 23..toString() - 23..toString())) / !0)))]:
            break;

          default:
          case typeof (a++ + "bar"):
        }
    }
    for (var brake194 = 5; --b + ++b && 0 < --brake194; ) {}
} finally {
    for (var brake196 = 5; a++ + [ b--, (c += 1) + ("function" == typeof b_2 && 0 <= --_calls_ && b_2()), 2 in [ --b + ++a, "function" == typeof f0 && 0 <= --_calls_ && f0((1 != (0 ^ this)) - (!0 < ("c" == undefined)), (c = 1 + (c = 1 + c), 
    "a" != (null == this) === 0), ..."" + b_2), (c += 1) + {
        length: (c = 1 + c, (b_2 && (b_2[{
            get: (c = 1 + c, 2 / (0 !== 38..toString()) + (!1 === (b_2 /= "bar" >> {})))
        }[c = 1 + c, (24..toString() && null) - ("c" ^ 23..toString()) || (-5 == undefined) / 15]] -= NaN >>> {} != !0 + "function")) + (c += 1, 
        !1)),
        set in(foo_1) {
            this.static -= -3;
        },
        0: (c = 1 + c, !0 % (b_2 && (b_2.c = !1))),
        static: (c = 1 + c, !0 | -0 >>> (b_2 && (b_2.b <<= 38..toString() ^ []))),
        static: (c = 1 + c, (b_2 && (b_2.async = !1)) << (-1 * [] && !0))
    }.value ], --b + a, 0 + a++ ][a++ + b_2] && 0 < --brake196; ) {}
    for (var brake198 = 5; --b, (c += 1) + {
        __proto__: (c += 1) + (a++ + (b_2 && "function" == typeof b_2.set && 0 <= --_calls_ && b_2.set(--b + ("function" == typeof f6 && 0 <= --_calls_ && f6((c = 1 + c, 
        ("a" === 38..toString() | "" != []) >>> ((b_2 && ([ b_2[c = 1 + c, 2 <= ((b_2 += 3) < 22)] ] = [ NaN !== [] ])) >> "object4"))))))) || {},
        foo: --b + /[abc4]/.test((--b + NaN || b || 5).toString()),
        "\t": --b + b_2,
        get then() {
            if (!(a++ + ("function" == typeof f7 && 0 <= --_calls_ && f7((c = 1 + c, 0 !== "undefined" % {} > "undefined"), (c = 1 + (c += 1), 
            b_2 = 0 / ("foo" == 38..toString()) == (b_2 && (b_2.value = 1 / 0 * 38..toString()))), 24..toString())))) {
                var expr202 = {
                    in() {},
                    [(c = 1 + c, (b_2 &= !1) < "a" < !1 / (2 === [ , 0 ].length) >>> 0)]: (c = 1 + c, 
                    38..toString() && -1 != this || (b_2 && (b_2[c = 1 + c, (25 ^ 2 === [ , 0 ].length) << (b_2 && (b_2[c = 1 + c, 
                    void 0 <= (1 / 0 != null * 23..toString())] += !0)) >>> (23..toString() != /[a2][^e]+$/ && 22 == this)] = "bnull")) * (5 - this)),
                    set: 0 ^ (null | this) <= "bar",
                    undefined: (c = 1 + (c = 1 + c), 38..toString(), !1)
                }.static;
                for (const key202 in expr202) {
                    c = 1 + c;
                    expr202[key202], c = 1 + c;
                }
            }
        }
    }.NaN && 0 < --brake198; ) {}
}

a++ + !async function() {
    b--;
    for (var brake207 = 5; a++ + /[abc4]/.test((~b || b || 5).toString()) && 0 < --brake207; ) {
        var key208, expr208 = {
            var: [].a,
            [a++ + b_2]: b--,
            [a++ + (b + 1 - .1 - .1 - .1)]: "function" == typeof f0 && 0 <= --_calls_ && f0("number"),
            ...b_2,
            in: (c += 1) + [ (c = 1 + c, b_2 && (b_2.undefined = (c += 1, 24..toString() || 3 == this == this >>> null))), ..."" + b_2, 1, (c = 1 + (c = 1 + c), 
            5 == (c += 1, null) != !1 <= (38..toString() !== {})), (c = 1 + c, (!0 <= (4 ^ undefined)) << (c += 1, 
            c += 1, "")) ].then
        }[--b + (38..toString() in {
            in: (c = 1 + c, typeof ((b_2 += -1) - (!0 <= ((2 === [ , 0 ].length) < -3)))),
            var: a++ + ((b_2 = 5) >> 0),
            then: a++ + (b_2 && b_2.next)
        })];
        for (key208 in expr208) {
            c = 1 + c;
            expr208[key208];
        }
    }
}() && --b + [ a++ + a, /[abc4]/g.exec((--b + ("function" == typeof f3 && 0 <= --_calls_ && f3(2, -2)) || b || 5).toString()), a++ + (38..toString() in {
    "\t": a++ + --a
}), b_2 ].Infinity && (undefined = function(async, foo) {
    var expr212 = a++ + (async && async[--b + -0 * (c += 1, !1)]);
    for (const key212 in expr212) {
        c = 1 + c;
        for (var foo_2 = expr212[key212], brake213 = 5; (2 === [ , 0 ].length) in {
            1.5: (c = 1 + c, (foo_2 >>= (c += 1, !0)) || !1 * (c += 1, {})),
            then: (c = 1 + c, (23..toString() < -4) + (23..toString() <= 2) > ("a" ^ 23..toString()) + NaN),
            next: (c = 1 + c, !1 * (foo_2 && (foo_2.next &= !0 & 38..toString())) || NaN == 22 <= []),
            value: (c = 1 + c, (this / "b" && -1 >> (2 === [ , 0 ].length)) % (4 != (async += 0)))
        } && 0 < --brake213; ) {}
    }
    for (var brake218 = 5; a++ + ((c += 1) + typeof foo) && 0 < brake218; --brake218) {
        var expr219 = /[abc4]/g.exec(((c += 1) + a || b || 5).toString());
        for (const key219 in expr219) {
            c = 1 + c;
            expr219[key219], c = 1 + (c = 1 + c), 23..toString();
        }
    }
}(--b + /[abc4]/.test(((c += 1) + +b || b || 5).toString()), void function await() {
    var key221, expr221 = (c = 1 + c, .04 !== (undefined && ([ undefined[--b + !0] ] = [ !1 ])) ? (c = 1 + c, 
    b_2 = (b_2 && (b_2.set = 1 <= (2 === [ , 0 ].length) % 3)) <= (3 < {} <= !0)) : (c = 1 + c, 
    await && (await[[]] = 0 !== (1 == (23..toString() && "undefined")))));
    for ([ key221 ] in expr221) {
        c = 1 + c;
        return c = 1 + c, c += 1, NaN != (-3 | []);
    }
    c = 1 + c, !1 + ([] <= !1) || 38..toString();
}())), setImmediate(() => console.log(null, a, b, c, 1 / 0, NaN, undefined));
original result:
Error: Script execution aborted.
    at run_code_exec (/home/runner/work/UglifyJS/UglifyJS/test/sandbox.js:298:35)
    at Object.exports.run_code (/home/runner/work/UglifyJS/UglifyJS/test/sandbox.js:35:16)
    at run_code (/home/runner/work/UglifyJS/UglifyJS/test/ufuzz/index.js:2084:20)
    at Object.<anonymous> (/home/runner/work/UglifyJS/UglifyJS/test/ufuzz/index.js:2459:25)
    at Module._compile (module.js:653:30)
    at Object.Module._extensions..js (module.js:664:10)
    at Module.load (module.js:566:32)
    at tryModuleLoad (module.js:506:12)
    at Function.Module._load (module.js:498:3)
    at Function.Module.runMain (module.js:694:10)
    at startup (bootstrap_node.js:204:16)
    at bootstrap_node.js:625:3
uglified result:
null 350 90 1064 Infinity NaN undefined
// reduced test case (output will differ)

// (beautified)
((NaN_2 = [ ([] = 0), ...0 ]) => 0)();
// output: Error: Script execution aborted.
// minify: TypeError: 0 is not iterable
// options: {
//   "mangle": false,
//   "output": {
//     "v8": true
//   },
//   "validate": true
// }
minify(options):
{
  "mangle": false,
  "output": {
    "v8": true
  }
}

Suspicious compress options:
  default_values
  unused
@alexlamsl
Copy link
Collaborator Author

@kzc TIL combination of arrow function, default parameter, destructuring syntax & rest syntax would silently crash Node.js v8

$ cat test.js
((a = [ [] = [], ...[] ]) => console.log("PASS"))();
$ node -v
v6.17.1
$ cat test.js | node
PASS
$
$ node -v
v8.17.0
$ cat test.js | node

$
$ node -v
v10.24.1
$ cat test.js | node
PASS
$

This was referenced Dec 10, 2021
alexlamsl added a commit that referenced this issue Dec 11, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant