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

Closed
alexlamsl opened this issue Mar 18, 2021 · 0 comments · Fixed by #4800
Closed

ufuzz failure #4799

alexlamsl opened this issue Mar 18, 2021 · 0 comments · Fixed by #4800
Labels

Comments

@alexlamsl
Copy link
Collaborator

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

{
    var expr1 = "" + new function Infinity(Infinity_2, b_2) {
        this[b_2 && typeof b_2.next == "function" && --_calls_ >= 0 && b_2.next()] = (((((Infinity && (Infinity.done = "object" > ([ , 0 ].length === 2) < (-3, 
        25))) !== (-2 << null == null / "number")) * ((Infinity_2 && (Infinity_2[c = 1 + c, 
        (Infinity_2 && (Infinity_2.get += (b_2 += null === {}) & 0 * /[a2][^e]+$/)) | (Infinity && (Infinity.null = 5 >>> undefined)) / (25 !== NaN)] <<= "object" == "number")) + ([] << 5) !== (c = c + 1, 
        b_2 += Infinity << 4)) * (-(5 == NaN || "b" < false) !== ("" * 3 << "number" / "object" == (22 !== 38..toString()) % ("" << "a"))) | ((b_2 && (b_2[function(b_2, b_1, a_1) {
            c = 1 + c, b_2 = ((-4 | 4) ^ (0 ^ "a")) - (true === []) % (2 / "");
            c = 1 + c, (false || 4, ([ , 0 ].length === 2) >> 0) + ((-3 | []) ^ "b" - 22);
        }()] = (Infinity_2 && (Infinity_2[[ (c = 1 + c, ("bar" % -0 == (1 | NaN)) <= (-1 > "") + ("foo" && NaN)), (c = 1 + c, 
        (4 << -0 && (NaN, Infinity)) >= ({} != "number") >>> (c = c + 1, 3)), (c = 1 + c, 
        (3 || 25 || 2 > null) && undefined / -1 >>> null - 22) ][c = 1 + c, (("undefined" || false) !== 24..toString() << -5) > void (c = c + 1, 
        1)]] = 25 - -3 + -2 % "")) * (("number" & 22) == 23..toString() * {}))) - ("number" << 23..toString() <= ("number" <= 22) != (undefined > ([ , 0 ].length === 2) ^ (b_2 = [ , 0 ].length === 2 && undefined)))) * ((Infinity_2 <<= (Infinity == NaN) % (this - -5) / ((-0 < 3) >> (-3 === 2))) + ((3 * 23..toString() || 1 | 5) > (-2 / 1 > 1 << -4)))) << (((25 && 1) * (-4 / 38..toString()) >= (c = c + 1, 
        undefined / this), (-5 ^ /[a2][^e]+$/) === (5, -5) ^ "c" >>> NaN <= 4 - -3) & (c = c + 1, 
        (4 > 23..toString() && (Infinity && (Infinity[c = 1 + c, ((true && "foo") ^ undefined / 0) == (4 ^ 38..toString()) >= (Infinity_2 |= false !== undefined)] += -4 && "b"))) - ((-4 & false) === (this != ""))), 
        (("a" / "function", {} % undefined) == (/[a2][^e]+$/ !== [] == (24..toString() != /[a2][^e]+$/))) * ((true * 23..toString() || {} ^ 5) !== (2 <= this) * (false > Infinity)) ^ (c = c + 1, 
        ((c = c + 1, -4) | "object" >>> -3) <= (b_2 && (b_2.var <<= {} + 4)) % (38..toString() - -3))) | ((c = c + 1, 
        (Infinity_2 && (Infinity_2[a++ + (1 === 1 ? a : b)] += ("c" | -0) <= (38..toString() > "bar"))) >= (false % "b" > (25 < -2))) && (("a" || 5) ^ 5 - 22) <= (true !== NaN, 
        {} * Infinity) > (+(null * "undefined") != (-5 % -2 == NaN >>> "undefined"))) >>> (Infinity_2 /= (!(([] < -1 !== false % 4) - 2 * 22 * (-3 * 22)), 
        (Infinity_2 && (Infinity_2[a++ + ((c = 1 + c, (("c" | "undefined") < (c = c + 1, 
        [ , 0 ].length === 2)) * (Infinity_2 && (Infinity_2[a++ + (Infinity && Infinity.next)] = /[a2][^e]+$/ != Infinity == (Infinity ^ false)))) ? (c = 1 + c, 
        (/[a2][^e]+$/ >> "a" !== -2 <= "a") ** (delete -4 | "" >>> {})) : (c = 1 + c, (b_2 && (b_2[1 === 1 ? a : b] = (Infinity_2 = 1 * -0) || -2 % 5)) >> (25 & false | ("b" | "a"))))] = +Infinity >>> 22 + 23..toString())) >> (undefined >>> 4 >>> null % []) == ((Infinity_2 += (Infinity && (Infinity.done = [ , 0 ].length === 2 & NaN)) << 2 % false) != (([ , 0 ][1] || 2) === -3 <= /[a2][^e]+$/)))) ^ (b_2 && (b_2.undefined += (((false * -5 * (4 >= false) ^ ((b_2 && (b_2.var = 4 < {})) | -2 < 0)) & (Infinity_2 *= (([ , 0 ][1], 
        -3) !== ("foo" & NaN)) + ("bar" >> "a") / ("c" != 5))) >= ((this << "b") - ("function" >= 25)) % ((-0, 
        5) !== ("object" | "")) << (c = c + 1, (Infinity & -2) << (4 || 5))) - ((("a" >= {}) << (true || -4) >> ("c" ^ "undefined" ^ [ , 0 ][1] >= "function")) * ((-5 >= [ , 0 ][1], 
        Infinity_2 && (Infinity_2[c = 1 + c, (-5, -5) % ({} * -2) & (b_2 && (b_2.null += ("a" | "c") == "function" / 24..toString()))] /= "c" || "")) === ([ , 0 ].length === 2) % 25 >>> (Infinity_2 &= "" ^ "object")) <= (((-2 | 0) ^ "undefined" + {}) << ((-3 || "undefined") > -2 - null) >= (-2 << [ , 0 ][1] >= null % 1) * (("c" <= false) / (-0 ^ 5))))))) ^ (((2 >>> ([ , 0 ].length === 2) >> (5 === 23..toString())) / (-2 % this * (false > 25)), 
        b_2 && (b_2[new function a_2() {
            this[(c = c + 1) + (typeof f0 == "function" && --_calls_ >= 0 && f0(0, (c = 1 + c, 
            void ((this && []) * ([ , 0 ][1] < 1)))))] = (Infinity && (Infinity[c = 1 + c, (c = c + 1, 
            this * -2) || b_2 && ([ b_2.get ] = [ (-0 ^ {}) !== (b_2 *= ([ , 0 ].length === 2, 
            NaN)) ])] = undefined >= 0)) % (-4 <= true);
            c = 1 + c, (a_2 && (a_2[c = 1 + c, a_2 && (a_2[--a] = ("" !== undefined) - ("foo" > /[a2][^e]+$/) > (-4 <= 4) * ("b" + 3))] = "a" < 22)) < (true ^ {}) < (b_2 = (NaN * "function", 
            "bar" >>> 23..toString()));
        }()] >>>= (c = c + 1, 1) > (c = c + 1, {}) | (-3 ^ 23..toString()) * (b_2 && (b_2.done = 5 >>> 5)))) << (Infinity_2 && (Infinity_2[--b + [ --b + (1 === 1 ? a : b), b_2, a++ + void function*() {
        }().next(), a++ + b--, --b ][a++ + (24..toString() in {
            length: (c = 1 + c, Infinity_2 = ("function" || -2 || NaN >>> 1) << (-4 + -2 < (Infinity !== -4))),
            Infinity: Infinity,
            get: (c = 1 + c, ((b_2 && (b_2.c /= null / "b")) | 4 % 0) & (true || "object") === 2 >> "object")
        })]] = (4 !== "undefined" | -1 >= "a" && ("function" !== /[a2][^e]+$/) + !"", void ([] === 24..toString()) >= (false != null || "a" !== 24..toString())))) >= ((b_2 && (b_2[typeof f0 == "function" && --_calls_ >= 0 && f0(undefined, true, (c = 1 + c, 
        ((-4 ^ "foo") << (Infinity && (Infinity[c = 1 + c, (b_2 && (b_2[--b + /[abc4]/.test(((c = 1 + c, 
        [ , 0 ][1] >>> "foo" === 23..toString() <= 38..toString() | +([ , 0 ].length === 2 ^ /[a2][^e]+$/)) || b || 5).toString())] &= 2 !== /[a2][^e]+$/ == ("" == []))) / (2 * 4 == (b_2 && ([ b_2[c = 1 + c, 
        "foo" - NaN !== ([] | "c") ^ -3 > NaN === ("number" === NaN)] ] = [ true | 4 ])))] += "undefined" == ([ , 0 ].length === 2)))) / ((-0 ^ 5) === 22 > -2)))] %= ((c = c + 1, 
        4) || true >= ([ , 0 ].length === 2)) >>> ((c = c + 1, 25) >= (c = c + 1, "b")))) === ((Infinity && (Infinity[a++ + (typeof f1 == "function" && --_calls_ >= 0 && f1())] **= (25 != "c") + void ([ , 0 ].length === 2))) == ([ , 0 ][1] > "c" === (Infinity_2 += undefined + 22)))) >>> ((0 / 23..toString() && (b_2 = true % ([ , 0 ].length === 2))) << (0 - "bar", 
        38..toString() << 4) & ("bar" ^ "a") - ({}, []) === (c = c + 1, [ , 0 ][1] | 38..toString()))) >> (b_2 += ((b_2 && (b_2.undefined = Infinity ^ -3)) >= (-5 & "bar") == ((23..toString() ^ -1) == ("a" === -2))) > (38..toString() % "object" <= (-0 > 3) === ([ , 0 ].length === 2 & [ , 0 ][1] && -0 + null)) >= (((Infinity_2 && ({
            async: Infinity_2[c = 1 + c, ("" < -1 === (-2 && Infinity)) >> ((-0 & 24..toString()) !== (22 === 22))]
        } = {
            async: (5, 24..toString())
        })) ^ "undefined" % undefined ^ (-2 | "undefined") > ({} >= 38..toString())) & (([ , 0 ].length === 2) * /[a2][^e]+$/ != (c = c + 1, 
        38..toString())) << (true ^ {}) / (-0 << -4)) != ((23..toString() | "undefined") > (24..toString() || 22) && 3 / -2 > (2 && 4)) >= ((this, 
        -2) && "object" == 5) >>> (c = c + 1, "" === "number") <= (b_2 && (b_2.NaN += +"" % ("undefined" === NaN) % ([] >> -2 >> (-4 >> undefined)))) * (b_2 = (([ , 0 ][1] && "c") ^ (Infinity && (Infinity.a = Infinity + 38..toString()))) / ((true, 
        "bar") << (b_2 && (b_2.NaN = 23..toString() * 22))))) << (((b_2 = (false ^ 4, "foo" >= -0) === (c = c + 1, 
        0 || 2)) !== (c = c + 1, ("foo" || "bar") > ("function" <= 2)) ^ (b_2 += Infinity + -3 || [ , 0 ][1] % 38..toString()) === void (-3 >= -5) === ("bar" - "object" > (Infinity && (Infinity[c = 1 + c, 
        c = c + 1, (Infinity_2 = "a" / false) <= -4 - NaN] += ([ , 0 ].length === 2) << -4))) << ([] * 5 & -0 << -1)) % ((b_2 && (b_2[Infinity] = (38..toString() != "b") < (Infinity && (Infinity.c = 25 % "c")) != ("c" ^ "c") <= ("c" && 1) ^ void (25 ^ -4) & ([ , 0 ].length === 2) >= "c" !== "number" >>> ([ , 0 ].length === 2))) <= ((-0 | 24..toString()) << (-0 >>> 3) <= !delete [ , 0 ][1]) * ((("function" ^ -1) >= ("foo" & "undefined")) % ((24..toString() ^ -3) == "bar" < -3))) >>> delete ((({} % NaN) ** (Infinity_2 = 22 == 2) != ((undefined, 
        "") == undefined << 3)) % (24..toString() % 1 & ([] ^ 0) || "undefined" / "" + ("number" < "undefined"))) - ((/[a2][^e]+$/ ^ [ , 0 ].length === 2, 
        "c", {}) * (c = c + 1, [ , 0 ][1] + 23..toString()) !== (38..toString() - [] > ("c" ^ 2)) ** (2 % 5 >> "b" + 23..toString()), 
        b_2 && (b_2.b = (([] ^ -2) >> undefined - "number") % (c = c + 1, 1 !== "b") == (c = c + 1, 
        ("a" & -0) > ("b" && -1)))))) - (b_2 && (b_2[/[abc4]/.test(((c = c + 1) + -!(this << 38..toString() || (b_2 = "a" > 24..toString())) || b || 5).toString())] = ((c = c + 1, 
        Infinity && (Infinity.then &= (this * 2 << +2 <= (Infinity && (Infinity[c = 1 + c, 
        (1 >> Infinity != (22 ^ 5)) <= (3 * "number" | "bar" <= 2)] >>= 23..toString() << ([ , 0 ].length === 2))) - (false < "number"), 
        b_2 && ([ b_2.c ] = [ (Infinity && (Infinity[a++] += ("object" && "") != this % 25), 
        (Infinity_2 %= -4 << -0) >> -2 + undefined) ])))) << (((b_2 && (b_2[a++ + ((c = c + 1) + (typeof f0 == "function" && --_calls_ >= 0 && f0((c = 1 + c, 
        "undefined" > 25 >= (3 ^ {}) && (b_2 && (b_2.b = (-2 !== "undefined") > (b_2 = -5 % 3)))), null)) || 5).toString()[(c = c + 1) + typeof (c = 1 + c, 
        5 % 4 <= 22 >>> "b" & (c = c + 1, 25 + this))]] **= (-3 < [ , 0 ][1] | 3 >>> 24..toString()) >> (b_2 += -4 * "b" === (0 ^ "a")))) === (Infinity && (Infinity.static += -5 == 22 !== (23..toString() && false)) && false + this === (c = c + 1, 
        -1))) >= (-3 - false & -0 >> 2 && void (5 < "object")) >>> (-3 % "" == NaN >= {} ^ ("" ^ [ , 0 ][1] | 2 === NaN)))) / ((((3, 
        NaN) !== "undefined" >= -2 != 24..toString() > "" <= "b" * "object") + (([] | -3) << Infinity + 3) ** ((false, 
        Infinity) << ([ , 0 ].length === 2) * 3) || !((25, null) ^ (1 || "c")) * (((/[a2][^e]+$/ === "c") < (false != 0)) * (null << [] || "c" + false))) & ((("undefined" != -2 || undefined << 5) | (b_2 |= /[a2][^e]+$/ / [] ^ "bar" == -1)) >>> (((Infinity_2 = undefined >>> 1) & 23..toString() != "undefined") >>> (c = c + 1, 
        22 >> 2)) ^ ((Infinity && (Infinity.in <<= 25 === "object" ^ ("number" ^ [ , 0 ].length === 2))) == (22 != false | (c = c + 1, 
        "undefined")) || Infinity_2 && ([ Infinity_2[--b + (b_2 && b_2.b)] ] = [ ([ , 0 ][1] % undefined << (this >> "object")) / (Infinity_2 >>= "function" * 1 == "object" * [ , 0 ][1]) ])))) <= ((c = c + 1, 
        ([ , 0 ].length === 2 && undefined, "bar" ^ {}) <= ("foo" - NaN) / (4 > "number") && (22 < /[a2][^e]+$/ >= ("foo" !== 22)) >> !(4 || "undefined")) === (((c = c + 1, 
        null) / (Infinity <= 4) && 3 >> {} >> NaN / "undefined") >= (4 * 25 >= (c = c + 1, 
        "object")) >> (("foo", -4) === 4 >= 38..toString())) << ((Infinity_2 %= (Infinity_2 += "b" === 23..toString()) != (-5 & -5)) >= (true === 38..toString()) >> (4 | "foo")) % ("bar" - 0 < (38..toString(), 
        2) <= this / "undefined" << ([ , 0 ][1] >>> 22))) * (((delete (false != "function") >>> (undefined != -5 ^ /[a2][^e]+$/ !== "number")) * ([ , 0 ][1] < -3 && 3 >= {} || ("number" ^ 2) > (NaN == -0)) ^ (~22 << false % "foo" && (b_2 = Infinity > NaN === 22 >>> "a")) + ((1 >>> true === "function" > "number") >> ((5 == "object") << ("number" ^ [ , 0 ].length === 2)))) * ((Infinity_2 = ("b" || "b") <= (4 == "a") < (4 % null ^ -3 <= "function") >= (((c = c + 1, 
        3) != 2 - 3) <= (2 < "" && {} % "number"))) ^ (b_2 += (Infinity_2 && (Infinity_2.c += 38..toString() !== "undefined")) != (4 !== undefined) != (-2 == 38..toString() ^ 25 === NaN) && ((c = c + 1, 
        "") ^ (22 || "object"), (-4 == 23..toString()) > (-3 > 23..toString()))))) != (b_2 && (b_2[--b + [ (c = c + 1) + (--b + void (c = c + 1, 
        22 > 38..toString() || -0 <= -2) ? (c = c + 1) + [ ..."" + b_2, b + 1 - .1 - .1 - .1, a++ + --b, {
            "": (c = 1 + c, 3 - 5 === [] % Infinity == (c = c + 1, Infinity & ""))
        }.then ? a++ + [] : 0 === 1 ? a : b, [ (c = 1 + c, (("object" == this) > ([ , 0 ][1] >= null)) >> -(Infinity_2 && (Infinity_2.async -= {} + "a"))), ..."" + Infinity_2, (c = 1 + c, 
        !("foo" | -5) - ([] >= 5 !== (25 | []))) ].c ] : Infinity) ][b + 1 - .1 - .1 - .1]] += ~((("function" + NaN >= (22 <= null)) + (("b" === 5) >> ("undefined" & Infinity)) === 3 / "foo" + /[a2][^e]+$/ % 0 < -4 + NaN - (undefined + -0)) - (Infinity && (Infinity[/[abc4]/g.exec((a++ + ~((Infinity_2 <<= [ , 0 ][1] > "a" & true << 22) ^ ("a" < 3) >>> (24..toString() <= 5)) || b || 5).toString())] >>= ("" & 38..toString(), 
        -5 !== ([ , 0 ].length === 2)) % ((null == "undefined") > delete 25)) && (c = c + 1, 
        "c" > null) / ((-2 || {}) >= ("" >= -1))) == (((0 != 24..toString() ^ -2 < true) / ((0 > {}) - (25 & null)), 
        (/[a2][^e]+$/ < 0) * (38..toString() > 2) && (false || "function") ^ (Infinity_2 &= "number" && "object")) === ("function" << 4 & (Infinity_2 += [ , 0 ].length === 2 || [ , 0 ].length === 2), 
        ([] <= "bar") >>> (5 == Infinity)) <= ("undefined" | true) + (Infinity && (Infinity[c = 1 + c, 
        c = c + 1, "" !== "foo" !== (0 & -2)] &= "foo" == 22)) - (0 ^ "bar") % (true % -3))) || (void (("number" && 24..toString(), 
        23..toString() !== "a") << (("number" && null) | -5 >>> this)) ^ ("" === -1) < -5 / 23..toString() < ((c = c + 1, 
        -2) ^ "foo" % 2) & (b_2 |= "b" * "a" >>> (b_2 && (b_2[c = 1 + c, "bar" + -2 << [ , 0 ][1] - 24..toString() > (0 + "foo" || "a" % null)] %= "object" ^ "function")) & (c = c + 1, 
        "foo") < ("foo" & Infinity)) | ((Infinity && (Infinity[Infinity] = 5 - Infinity < (this <= "c") === (Infinity && ({
            length: Infinity.static
        } = {
            length: Infinity ^ 24..toString()
        })) > (undefined ^ "foo")), (4 >= undefined) % (NaN > 5) | (null, -0) >> "a" % -1) && ([] * "bar", 
        24..toString() <= NaN) + (!22 < ([ , 0 ].length === 2 || "object")) + (b_2 = 22 < "c" !== (-1 | -4) !== (/[a2][^e]+$/ || NaN) >= (NaN && 4)))) + (((5 == "function" | 22 == "bar") - ("function" > "function" != 24..toString() >> 22) == +((/[a2][^e]+$/ & NaN) <= -2 / "")) >> ((Infinity && (Infinity[(c = c + 1) + typeof (c = 1 + c, 
        (([], 2) < ({} <= 5)) / (Infinity % "object" << ("object" > -5)))] = 2 > 22 || /[a2][^e]+$/ & 38..toString())) / (-2 / "bar" != (-2 | undefined)) < ((/[a2][^e]+$/ + 2 | -2 << "function") != [] % undefined >= (b_2 && ({
            static: b_2[c = 1 + c, (22 - 0) * (-5 > /[a2][^e]+$/) && - -2 / (true && true)]
        } = {
            static: Infinity * undefined
        }))))) * ((22 == "a") / (23..toString() | null) * ((NaN ^ NaN) - (25 <= 25)) > (Infinity_2 += (c = c + 1, 
        24..toString()) > (22 || 5) != (c = c + 1, "foo") / (-2 <= 24..toString())) == ((4 >>> 25 >> (5 <= -2)) + ("bar" * 2, 
        c = c + 1, [])) / (((NaN ^ 3) > "function" * -1) + ("function" >> "undefined" && [ , 0 ][1] - this)))))));
        this[(c = c + 1) + (typeof Infinity == "function" && --_calls_ >= 0 && Infinity(38..toString(), ..."" + Infinity))] |= ((c = c + 1, 
        Infinity_2 = ((Infinity_2 && (Infinity_2.null |= ("c" ^ 1) % (Infinity && (Infinity[c = 1 + c, 
        {} - -3 - 38..toString() * "object" != ("object" << 3 ^ (Infinity && (Infinity.undefined = {} ^ -4)))] *= "number" + "object")) + (3 >= "function") % (null >> 3))) & !(25 === 23..toString() ^ (Infinity && (Infinity[c = 1 + c, 
        (-4 || Infinity) - (22 && {}) || (22 && -3) & (Infinity & 1)] = "a" % 22))) || ((b_2 = true !== undefined) < (23..toString() < -0)) >>> (Infinity && (Infinity[a++ + void (("object" && -4) ^ -2 * "bar" ^ (b_2 && (b_2.c = (true ^ undefined) !== ("number" === "a"))))] = "number" === false == (-2 ^ -2))) >> (([ , 0 ].length === 2 | 38..toString(), 
        true <= "foo") & true << 3 === this % "foo")) >> ((Infinity_2 && (Infinity_2.var = -5 != 24..toString() ^ ("" ^ false))) >> (({} | 1) !== 4 >> "b") === ("bar" >= -5) >> (-2 < "a") >= ((1 ^ "function") === -0 <= ([ , 0 ].length === 2)), 
        (((Infinity && (Infinity[c = 1 + c, ("" / -4 | "foo" >> {}) + ((c = c + 1, "c") >> ([] < 5))] = 25 - "foo")) !== (25 | 1)) >>> (23..toString() - "c") % (-2 + null)) + ((/[a2][^e]+$/ !== -0 & 25 !== 2) > (Infinity_2 && ({
            a: Infinity_2[c = 1 + c, (b_2 = /[a2][^e]+$/ * 23..toString() / ([] | this)) * (("number" | "b") << (38..toString() | "c"))]
        } = {
            a: [ , 0 ][1] < ""
        })) + (c = c + 1, 1)))) | (((Infinity_2 && (Infinity_2[/[abc4]/.test((--b + --b || b || 5).toString())] = ("undefined" === 0 ^ ("" && [ , 0 ][1])) + (false > 2) % ("a" >>> 22))) == (5 <= 0 & undefined / 24..toString()) % (("foo" ^ 2) % (-4 + 5))) - (Infinity && (Infinity[a++ + (0 === 1 ? a : b)] += this >>> 0 >= +23..toString() ^ ("function" | [ , 0 ][1]) % (Infinity + 22) | (c = c + 1, 
        null << /[a2][^e]+$/ != (0 ^ "b")))) == ((NaN / 3 | (38..toString(), null)) + (true << -5 & (null ^ -5)) >>> (0 / 0 / (Infinity && (Infinity.static = 4 >>> "undefined")) || Infinity_2 && (Infinity_2.get = this < 24..toString() == (c = c + 1, 
        -1))), (1 % ([ , 0 ].length === 2) === (Infinity_2 && (Infinity_2[c = 1 + c, false >> 4 >= (undefined !== "object") > ((1 ^ [ , 0 ][1]) != (undefined != 22))] = undefined * undefined))) <= (Infinity & /[a2][^e]+$/ || null - -2) && (b_2 && (b_2.var %= (-4 << 2 ^ ("function" && -1)) << (Infinity && (Infinity.foo = 24..toString() << 22)) / (b_2 /= 23..toString() !== 5))))) <= ((((Infinity && (Infinity.c += 0 <= 5)) & ([] | "number")) <= (Infinity_2 = ("c" >= -5) << (4 >> "bar")) | (Infinity_2 && (Infinity_2.undefined += "c" - [] & (b_2 && (b_2.null = "number" || true)) ^ (- -2 | [ , 0 ][1] !== true)))) * (Infinity && (Infinity[a++ + [ --b + b++, ((c = 1 + c, 
        (Infinity_2 && ({
            c: Infinity_2[c = 1 + c, (23..toString() ^ false) + (-5, "function") == (Infinity_2 = null * 23..toString()) <= true % "c"]
        } = {
            c: 5 == 0
        })) >>> (b_2 >>>= -5 && 3) << (-5 >> NaN << ({} && "b"))) || 5).toString()[c = 1 + c, 
        (38..toString() === undefined) >= (/[a2][^e]+$/ >= undefined) !== (c = c + 1, Infinity_2 && (Infinity_2.get = 2 === "a"))], , a++ + (c = 1 + c, 
        (-3 || 1) << (-5 == -1) !== -2 * 24..toString() < -1 << true) ][a++ + delete a]] = ("undefined" !== NaN == "foo" >>> 38..toString()) <= (+ -2 || -4 >= [ , 0 ][1]) >= (Infinity_2 = (NaN | [ , 0 ].length === 2) >>> (-5 || 25) <= delete ([ , 0 ][1] >>> "bar")))) != (b_2 && (b_2.done = (b_2 && (b_2.b += 22 + {} || -4 >> "function" || 0 * "undefined" | Infinity * -3)) / ((25, 
        -1) >= ([ , 0 ].length === 2 | "") | (-1 === /[a2][^e]+$/, c = c + 1, 1)) === (((undefined <= "object") + (0 && -4)) / ((false >= 38..toString()) + void -3) == !("foo" == this) >>> (24..toString() && Infinity, 
        Infinity && (Infinity[c = 1 + c, (c = c + 1, -2, "a") ^ (-1 != "a") >>> (25 ^ 0)] = [ , 0 ][1] > 1))))))) & (((true & false | "b" - 24..toString()) == (-2 | -5) > (Infinity > 38..toString())) * (c = c + 1, 
        ("function" > -4) / ("foo" !== NaN)) * ((-4 != "function" ^ "" >> ([ , 0 ].length === 2)) < ("undefined" < null < 4 * "undefined") > ((b_2 && (b_2.a += (-5 / 25, 
        2 << Infinity))) === -3 >>> [] >= (22 ^ 5))) > (Infinity && (Infinity[(c = c + 1) + b--] = (23..toString() + -4 | 22 - 1) * (b_2 && ({
            async: b_2.done
        } = {
            async: Infinity_2 && (Infinity_2.async %= "undefined" != 2) || ~false
        })) / (("a" << false & delete Infinity) != ("undefined" & "") >> (Infinity && (Infinity.b *= -3 == 5))) <= ((((null || NaN) ^ -0 === /[a2][^e]+$/) === (Infinity != -4) <= (38..toString() <= 24..toString())) < (!-4 << (1 !== -3), 
        ~undefined << (false ^ "function")))))) + (c = c + 1, ((Infinity_2 += "undefined" * false ^ delete -3) == (b_2 >>= 2 / -0 / (/[a2][^e]+$/ % -2))) % (((c = c + 1, 
        Infinity) >= (3 >= 22)) / (23..toString() & "c", Infinity && (Infinity.NaN >>= "c" || Infinity))) % ((Infinity && (Infinity[typeof b !== "symbol"] /= (-1 >= -1 | 22 == 2) === -(this % "number"))) >= (void (38..toString() + this) === (b_2 && (b_2[[].NaN] += (c = c + 1, 
        /[a2][^e]+$/) !== "b" + "number"))))) >>> (((Infinity && ({
            static: Infinity.undefined
        } = {
            static: !!(-0 | 2) - ((/[a2][^e]+$/ + 4 | /[a2][^e]+$/ > 38..toString()) << (false != -3, 
            -5 % [ , 0 ][1]))
        })) ^ (b_2 = (Infinity && (Infinity.null = ([] !== "b") < (-0 >= 1))) >>> (true != NaN || "function" < undefined) >= (-0 ^ -5 || this & 3) ** (("" & false) >> (-0 >> /[a2][^e]+$/)))) - ((b_2 += (4 <= [ , 0 ][1] <= (Infinity & 24..toString())) + (undefined - "b" & -1 !== "foo") ^ (this << 5) * (undefined >= "undefined") !== (23..toString() >> [] || 25 != /[a2][^e]+$/)) + (("foo" | 0) >> (Infinity_2 && (Infinity_2.static = [ , 0 ][1] <= Infinity)) >> (0 && -3) / (0 | 1) | (-2 <= "a" && (3 || [ , 0 ].length === 2)) ^ (22 !== null | 23..toString() == {}))), 
        (((true === 1) < 24..toString() % {}) + ((-4 & false) <= (Infinity && (Infinity.value = -1 || /[a2][^e]+$/))) > (24..toString() - 24..toString() << ("object" === "function")) - (b_2 && (b_2[a++ + void a] = (Infinity == /[a2][^e]+$/) / ("a" == "a"))) > ((this - 4 ^ {} % 3) >= (-2 / -5 === (c = c + 1, 
        "foo"))) >> ~(Infinity_2 = (b_2 && (b_2.c += ([ , 0 ].length === 2) <= "a")) >> ("a" < 25))) >>> ("undefined" - this + ({} | 22) - ((-4 ^ false) >> ("b" != 1)) <= ("b" / 23..toString() & "foo" - -5 ^ false << 38..toString() < -5 + -1) <= (~("foo" ^ 24..toString()) < (Infinity_2 && (Infinity_2.static >>>= NaN - /[a2][^e]+$/) || (c = c + 1, 
        false))) + ((b_2 += this >= "undefined") && undefined ^ "") * ([ , 0 ][1] && "b" && "c" === 23..toString()))) || (((Infinity_2 && (Infinity_2[(c = c + 1) + [ [ ..."" + Infinity_2, (c = 1 + c, 
        ({} < "") + ("a" >= "b") ^ ("undefined" == [ , 0 ][1]) >>> (-3, "b")), (c = 1 + c, 
        (false, "undefined") + undefined * NaN === (Infinity_2 && (Infinity_2.var = "" >> true)) - (Infinity_2 && (Infinity_2.set **= 1 - 23..toString()))), (c = 1 + c, 
        ((/[a2][^e]+$/ !== 22) < (b_2 >>= 2 >> true)) * ("a" ^ true ^ ([ , 0 ].length === 2, 
        23..toString()))) ], a++ ].get] = (("object" && "object") ^ null !== 24..toString()) % ("object" >> "bar") ** (2 / 22) && (b_2 = (2 === "object") << ("object" <= 1) | ([] !== -3 | "object" ^ Infinity)))) !== ((b_2 && (b_2[(c = c + 1) + void +(b_2 && ({
            null: b_2[a++ + {
                NaN: (c = 1 + c, (-4 / 1 || [] <= []) == (-0 >> -3 ^ 4 >>> -3))
            }]
        } = {
            null: -1 >> "undefined" >> (this | {})
        }))] = 2 >= "c" | /[a2][^e]+$/ >>> 23..toString())) ^ -1 + "bar" >>> (c = c + 1, 
        "number")) % ({} % 24..toString() % (-0 != 2) < (Infinity && (Infinity[Infinity && typeof Infinity.null == "function" && --_calls_ >= 0 && Infinity.null()] += (-0 && 0) ^ NaN <= -3))) ^ ((-5 == [ , 0 ][1]) + (Infinity && ({
            Infinity: Infinity.async
        } = {
            Infinity: "a" >> "object"
        })) == ("undefined" == -5) >> (-2 < -3) != (true != {}) % ("" === 0) - ((c = c + 1, 
        undefined) == "" >= 24..toString()), ("number" == "object" ^ 3 >> 5) & (-5 & -2) << (4 || 4) ^ (Infinity && (Infinity.in = [] + -3 === 22 << "number")) !== ((c = c + 1, 
        "b") || 5 >= 25))) << ((({} & -3 ^ (Infinity_2 && (Infinity_2[c = 1 + c, ((([ , 0 ].length === 2) < [ , 0 ][1]) << +"c") + ((c = c + 1, 
        5) && 22 != "number")] = "" | 0))) * ((null !== "b") - ("number", 4)) ^ ("bar" % 1 || b_2 && (b_2[c = 1 + c, 
        (23..toString() && this) != (-5 ^ "function") == (2 + false) / (Infinity_2 && (Infinity_2[c = 1 + c, 
        ([ , 0 ].length === 2 && undefined) >= ("undefined" != "function") === (("c" & "") != (1 === undefined))] += 25 >= 24..toString()))] = "c" >> 23..toString())) - (-2 + true) / (1 ^ -4) ^ (("function" - 3) / (NaN < 23..toString()) ^ void NaN === this < "c") > (c = c + 1, 
        Infinity && (Infinity.NaN = false * 38..toString() - (Infinity && (Infinity.value *= Infinity / ""))))) >= ((("undefined" < true < "number" - "a") + ((Infinity ^ 3) == (c = c + 1, 
        0)) ^ (undefined & 24..toString()) + (24..toString() || -0) << (38..toString() ^ 3, 
        "function" >>> 4)) === (([ , 0 ].length === 2 | this | true << -2) > ((25, 23..toString()) ^ "foo" + 2) || 1 * 2 - ([ , 0 ][1] << -2) != 22 / ([ , 0 ].length === 2) >>> (22 && null))))) * (c = c + 1, 
        ((c = c + 1, (24..toString() !== NaN) + (this ^ -5) < (true >> "object" | {} != [])) || (-1 & 5 || 22 == 24..toString()) > (b_2 && (b_2[--b + Infinity_2] = -5 ^ null ^ (Infinity && (Infinity[c = 1 + c, 
        25 * false <= (1 || 1) === (undefined || null) << 3 - null] += /[a2][^e]+$/ === ([ , 0 ].length === 2))))) != (c = c + 1, 
        c = c + 1, "c" < "object")) > (((-5, "undefined") !== (3 && 2)) << (b_2 && (b_2.get = 2 - true & 22 != "undefined"))) / (-("a" >> ([ , 0 ].length === 2)) | ("b" & 38..toString()) - (-0 || "object")) << ((-0 - 24..toString()) % (2 << -4) || -2 != {} ^ 2 - -2) * ((b_2 = {} && -4) % (c = c + 1, 
        24..toString()) ^ (5 >= 23..toString()) >> "c" - [ , 0 ][1])) < (((5 << -3) + (-2 & "undefined") + (([ , 0 ].length === 2) / "function" | null >>> -0) ^ ((Infinity && (Infinity[c = 1 + c, 
        Infinity_2 && (Infinity_2[a++ + /[abc4]/.test(((c = c + 1) + (typeof b_2 == "function" && --_calls_ >= 0 && b_2()) || b || 5).toString())] **= (c = c + 1, 
        !0) <= (-4 > true) >>> undefined * -0)] &= {} > -5)) - delete new.target) % (c = c + 1, 
        b_2 |= 38..toString() == "a") ^ ((Infinity_2 += !23..toString() || true << "foo") - (22 <= {} ^ +this) | (3 > false ^ -5 << 0) * (c = c + 1, 
        Infinity - Infinity))) << (((2 | /[a2][^e]+$/) >>> (b_2 && (b_2[c = 1 + c, (-1 && []) >= ("foo" <= true) && (c = c + 1, 
        -3 / this)] = "foo" !== "undefined")) !== ("foo" == -0 & 1 * 38..toString()) && (Infinity_2 && (Infinity_2[c = 1 + c, 
        b_2 >>>= (-4 + -4 || -4 << 25, (4 >= undefined) - (-0 ^ "undefined"))] = 24..toString() / "a")) << "c" % "function" >> ("function" >= {} < (3 < this))) ^ ((1 === []) <= (false & 2)) << (3 >> -5 == "c" * undefined) === !([] || 5) / (([ , 0 ].length === 2 ^ -1) / (22 | [ , 0 ].length === 2))) < ((Infinity_2 = ((2 || /[a2][^e]+$/) >= ([ , 0 ].length === 2) % "number") + (-1 ^ -5 || + -3) && ((undefined || 25) >= ("object" | "undefined") && "undefined" < "bar" > [] >>> "bar")) << ((b_2 && (b_2[(c = c + 1) + typeof (c = 1 + c, 
        ({} ^ 1) >>> ("object" > 22) ^ (undefined === 3) % ("b" ^ -1))] **= ("c", "undefined") <= "b" * 38..toString())) >>> ([ , 0 ][1] * "object" == (true === "function"))) / ((-1 ^ 38..toString()) << (-4 | "") >= (this << -0 >= (-0 <= 3)))) % ((Infinity_2 && (Infinity_2[a++] += ([ , 0 ].length === 2) % -5 / (-4 * 2) >>> ((-2 ^ 1) < ("a" ^ 24..toString())))) <= (c = c + 1, 
        true === "function") >>> ((false != 24..toString()) >> ("undefined" && this)) != (Infinity && (Infinity.in = ((([ , 0 ].length === 2) > "undefined" || (b_2 >>>= 1 >= NaN)) == [ , 0 ][1] - 25 - ("object" === -1)) + ((b_2 |= "number" ^ -1) >>> (true >> []) >>> (Infinity_2 && (Infinity_2.set = [] | "object")) * (undefined & []))))) || (b_2 &= (("a" | 5) <= 0 % 5 == (Infinity && (Infinity.set = /[a2][^e]+$/ === -2)) >>> ("c" === undefined)) + ((-"foo" & (23..toString() ^ "c")) >= ((38..toString() && []) ^ NaN / 38..toString())) > ((("object" == true) - (b_2 = 5 < "foo") || (0 <= "c") / (null || 1)) ^ (3 - this >= (25 > /[a2][^e]+$/), 
        22 >= 1 != ([ , 0 ][1] | 1)))) % (((c = c + 1, -1 < "object") === (Infinity_2 += ("" ^ null) / (Infinity_2 = {} !== -3))) >> (("number" == "undefined" !== (23..toString() | "object")) << (Infinity_2 && (Infinity_2[Infinity && Infinity[c = 1 + c, 
        ((1 === 22) > (b_2 += true || 2)) * delete (22 | "object")]] = (true >>> -4, 1 <= ([ , 0 ].length === 2))))) || (-1 < "object") % (null > undefined) === {} - ([ , 0 ].length === 2) - (2 & "bar") != (this != -5 && -5 !== NaN) >> (3 - -0 === 1 / -0)) == ((Infinity_2 && (Infinity_2[--b] >>= (c = c + 1, 
        Infinity && (Infinity[{
            "\t": (c = 1 + c, (("c" >= 25) >> (23..toString() != /[a2][^e]+$/)) - ((b_2 && (b_2[c = 1 + c, 
            (Infinity_2 && (Infinity_2.async += 0 >= -4)) >> (Infinity_2 && (Infinity_2.then = "a" < "bar")) & (true & -3) !== (2 && -5)] += 2 ^ "number")) | "bar" == this))
        }] += (Infinity_2 += 0 - 3) || 25 >> "c")) ^ false << NaN << ("" && /[a2][^e]+$/) >> ((b_2 && (b_2.set = 25 % 25)) | "foo" ^ 24..toString()))) - ((("function" || -0) === ~"bar") << (Infinity_2 += (b_2 += "foo" == -0) && ~true) >> ((([], 
        -1) || "foo" >> Infinity) > (([ , 0 ].length === 2) >> "undefined" < (0 !== 5)))) | (((c = c + 1, 
        /[a2][^e]+$/ != 2) == (3 * "" & -3 != 2)) + ((25, undefined) === "c" << {} == (Infinity ^ 5) >= (38..toString() ^ Infinity)), 
        Infinity_2 ^= 3 << "b" >= ("number" && {}) >= (-4 % "foo" & ("number" && "number")) < (-3 >>> [] == [] / "" ^ (b_2 += -0 | Infinity) << !2))));
        {
            var brake6 = 5;
            while (("a" ^ Infinity ^ "object" === "c") ** -(25 < this) && --brake6 > 0) {
                var brake7 = 5;
                L10243: while ((b = a) && --brake7 > 0) {
                    switch (--b + Infinity_2) {
                      case a++ + void function await() {
                            switch (a++ + (0 === 1 ? a : b)) {
                              case (c = c + 1) + /[abc4]/.test(((c = c + 1) + (typeof f0 == "function" && --_calls_ >= 0 && f0(this, 5)) || b || 5).toString()):
                                {
                                    var expr10 = (c = 1 + c, Infinity_2 **= null % 3 >> -1 / "object" >> ((b_2 = -5 || -5) < (-2 <= 38..toString())));
                                    for (var key10 in expr10) {
                                        c = 1 + c, (c = c + 1, 3 % 24..toString()) | -3 >= [ , 0 ][1] == "function" > 0;
                                    }
                                }
                                L10244: {
                                }
                                break;

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

                              case a++ + void ((Infinity >> undefined === 38..toString() >>> true) % ((Infinity_2 && (Infinity_2[c = 1 + c, 
                                (true >> -2 ^ (-3 && this)) < (await && (await.foo += Infinity != -0 & ("c", 22)))] = -3 - 1)) !== "foo" >= 0)):
                                return c = 1 + c, c = c + 1, 2 !== "foo" | -4 - -2;
                                {
                                }
                                break;

                              case --b + "undefined":
                                c = 1 + c, ((await && (await.b **= (undefined, "undefined"))) ^ -1 > /[a2][^e]+$/) != -0 <= [ , 0 ][1] <= (null | true);
                                break;
                            }
                            var b_2_1 = b_2 += +~((Infinity > 0) - (([ , 0 ].length === 2) <= "undefined"));
                        }():
                        break;

                      case --b + (b_2 && typeof b_2.var == "function" && --_calls_ >= 0 && b_2.var``):
                        var Infinity_2;
                        break;

                      case b--:
                        new function b_1(yield_1, bar, foo_2) {
                            this[{}] = (([ , 0 ].length === 2 == ([ , 0 ].length === 2)) < ("foo" !== /[a2][^e]+$/)) >>> (([], 
                            -5) ^ ("c" || 2));
                            this[b--] += [] / "number" - ("bar" ^ []) - (4 * 5 <= false / 0);
                            this[--b + /[abc4]/g.exec((/[abc4]/g.exec(((c = 1 + c, (25 << "undefined") + (-2 << "c") < (-0 <= NaN) >>> ("b" !== "undefined")) || b || 5).toString()) || b || 5).toString())] = (25 != "b" || "c" && 5) - (-5 << undefined <= (24..toString() || "c"));
                        }();
                        c = c + 1;
                        break;

                      default:
                        {
                            var brake20 = 5;
                            do {
                                b **= a;
                            } while (typeof ((c = c + 1) + !function Infinity() {}()) && --brake20 > 0);
                        }
                        var arguments_2;
                    }
                }
            }
        }
        b_2 && b_2.a;
        {
            var expr24 = "" + (a++ + (typeof b_2 == "function" && --_calls_ >= 0 && b_2()));
            for (let key24 of expr24) {
                c = 1 + c;
                var NaN_2 = expr24[key24];
                var NaN_2 = --b + a++;
            }
        }
    }(...[]);
    for (const key1 of expr1) {
        if ([][key1 && (key1[b = a] = (key1 && (key1.Infinity += "function" % NaN == (Infinity ^ false)), 
        "b" <= "foo" | NaN >>> this))]) {
            c = c + 1;
        } else {
            var a_1 = function f0() {
                var b_1_1 = +function() {
                    {
                        var brake30 = 5;
                        while (typeof f0 == "function" && --_calls_ >= 0 && f0("a") && --brake30 > 0) {
                            try {
                                switch (c = 1 + c, (+2 < ("undefined" >= -4)) - ((5 && "object") >= ("bar" in this))) {
                                  default:
                                    ;

                                  case c = 1 + c, (-1 / NaN <= -1 >>> 23..toString()) / (-4 == 0 === !"a"):
                                    ;
                                    break;

                                  case c = 1 + c, c = c + 1, ([] | -3) < (23..toString() === -5):
                                    ;
                                    break;

                                  case c = 1 + c, a && (a[--b + !function yield() {
                                        c = 1 + c, key1 && (key1.done = ((-3 == true) >> (5 != 24..toString()), c = c + 1, 
                                        a += {} % 2));
                                        c = 1 + c, 5 >> -2 <= (3 <= 23..toString()) | (true >> 24..toString(), Infinity < ([ , 0 ].length === 2));
                                        c = 1 + c, "object" * 38..toString() / (-0 + ([ , 0 ].length === 2)) - ("a" < true & ("object" | true));
                                    }()] %= ([ , 0 ].length === 2 ^ false) != (25 && -3) === (25 !== "function") >>> (this !== "foo")):
                                    ;
                                }
                            } catch (foo_1_1) {
                                c = 1 + c, (("b", 2) == ([] ^ "a")) <= (undefined << "" || (foo_1_1 = "a" % "b"));
                                c = 1 + c, /[a2][^e]+$/ / this !== (this | "object") == ((foo_1_1 += -3 + ([ , 0 ].length === 2)) != (undefined != ""));
                            } finally {
                                c = 1 + c, (1 >>> null, a += 0 > 2) == (NaN / false !== "foo" >> "function");
                                c = 1 + c, !(("function" === -2) >> (-0 | true));
                            }
                        }
                    }
                    --b + (typeof f0 == "function" && --_calls_ >= 0 && f0((c = 1 + c, (23..toString() ^ -0) <= (24..toString() >= 2) | (1 <= 25) >> (1 > "function")), (c = 1 + c, 
                    (c = c + 1, this / 24..toString()) / ("object" / 24..toString() !== false >> 24..toString())), (c = 1 + c, 
                    (-0 - "number") * (22 + []) ^ ([] > -4) % ("c" ^ ""))));
                    switch (b + 1 - .1 - .1 - .1) {
                      case ("function" == 4) % (38..toString() >> -4) + ((5 && false) == (4 === "function")):
                        for (var brake42 = 5; (c = 1 + c, (key1 && (key1.a = ("b" >> Infinity, Infinity || undefined))) + (5 % Infinity ^ 22 / /[a2][^e]+$/)) && brake42 > 0; --brake42) {
                            c = 1 + c, (key1 && (key1[/[abc4]/g.exec(((c = 1 + c, (key1 && (key1[0 === 1 ? a : b] >>>= 3 + [] ^ null % -0)) === 25 + "b" >>> ("" >= [ , 0 ][1])) || b || 5).toString())] = ([] | NaN) * (-0 | ""))) !== ("undefined" === "bar" || [ , 0 ][1] > "foo");
                        }

                      case 0 in [ (c = 1 + c, true + "a" !== ("" === -5) == ([] !== 2) + (-4 < Infinity)) ]:
                        return c = 1 + c, ([ , 0 ].length === 2) - -1 + (a = 23..toString() >>> "foo") & (38..toString() | "a") === (2 || -0);
                        break;

                      case (a++ + (key1 && key1[c = 1 + c, ~("foo" - -5 >> (key1 && (key1[c = 1 + c, ((key1 && (key1.NaN >>>= NaN | 24..toString())) !== 24..toString() << 23..toString()) < (key1 && (key1[--b + ((c = 1 + c, 
                        -(5 <= "a") & (key1 && (key1[--b + a++] %= Infinity < 38..toString() < (this != NaN)))) || 2).toString()[c = 1 + c, 
                        22 * 24..toString() <= undefined % "a" < (key1 && (key1[{}] = -1 + 24..toString() > false >> []))]] += [] >>> false <= 3 % "b"))] += /[a2][^e]+$/ - "b")))]) || 2).toString()[+(-3 % [ , 0 ][1] % ("undefined" / []) << (key1 && (key1[a = (c = 1 + c, 
                        (4 ^ "undefined") < ("undefined" & 24..toString()) ^ (c = c + 1, "function") >>> (-3 == 38..toString()))] += NaN !== 23..toString() ^ ("" | {}))))]:
                        break;

                      case [ (c = 1 + c, c = c + 1, (Infinity == -1) >>> (-3 >>> "a")), (c = 1 + c, (a += ([] === false) % (a += -1 ^ "function")) || key1 && (key1.var = /[a2][^e]+$/ == "" ^ null >> "bar")) ].length:
                        c = c + 1;
                        break;
                    }
                }(), foo_1, b_1;
                if (a++ + ("undefined" in {
                    [a++ + (--b + (b += a))]: (c = c + 1) + (--b + (typeof foo_2 == "object")),
                    length: a++ + -2,
                    c: a++ + (typeof f2 == "function" && --_calls_ >= 0 && f2({
                        a: (c = 1 + c, (-3 === 38..toString(), "object" >> true) | (/[a2][^e]+$/ == "b") << (4 > "bar"))
                    }[c = 1 + c, (-2 >= -2 > (-1 & false)) * ((25, "bar") === "a" - "bar")])),
                    foo: (c = c + 1) + (22 || 1).toString()[a++ + (0 === 1 ? a : b)],
                    in: (c = c + 1) + [ , 0 ][1]
                })) {
                    {}
                    {
                        var bar_2 = function f1(bar = 25, foo = Infinity, b_2) {
                            c = 1 + c, ("c" ^ -5 | -1 ^ NaN) !== (0 <= undefined != (-3 !== null));
                            c = 1 + c, ("" >>> true >= -4 % -0) << (Infinity > "bar") % (key1 && (key1[c = 1 + c, 
                            bar += (("c" != -1) >= (23..toString() & "undefined")) - (2 == -5 ^ ("function" && "bar"))] %= 24..toString() << 4));
                        }([ , 0 ].length === 2, 4);
                    }
                    if (typeof bar_2_1 != "number") {
                        new function(bar, Infinity_1) {
                        }(/[a2][^e]+$/, (c = 1 + c, ("c" % [] != 0 / -0) > (b_1 = (b_1 = this > -3) > (b_1_1 = "b" ^ 25))));
                    }
                }
            }(0, --b + ~a, ..."" + key1);
        }
    }
}

{
    var brake54 = 5;
    L10245: while (--b + (typeof f2 == "function" && --_calls_ >= 0 && f2(-4, -1, 23..toString())) && --brake54 > 0) {
        for (var brake55 = 5; a && brake55 > 0; --brake55) {
            (c = c + 1) + /[abc4]/g.exec((b++ || b || 5).toString());
        }
    }
}

console.log(null, a, b, c, Infinity, NaN, undefined);
// uglified code
// (beautified)
var a_1, _calls_ = 10, a = 100, b = 10, c = 0, expr1 = "" + new function Infinity(Infinity_2, b_2) {
    this[b_2 && "function" == typeof b_2.next && 0 <= --_calls_ && b_2.next()] = ((((!1 !== (Infinity && (Infinity.done = (2 === [ , 0 ].length) < "object" < 25))) * ((Infinity_2 && (Infinity_2[c = 1 + c, 
    (Infinity_2 && (Infinity_2.get += NaN & (b_2 += null === {}))) | (Infinity && (Infinity.null = 5)) / !0] <<= !1)) + ([] << 5) !== (c += 1, 
    b_2 += Infinity << 4)) * (-0 !== (0 == (22 !== 38..toString()) % 0)) | ((b_2 && (b_2[void (c = 1 + (1 + c))] = (Infinity_2 && (Infinity_2[[ !1, (c = 1 + (c = 1 + c), 
    Infinity >= ("number" != {}) >>> 3), 0 ][c = 1 + (c = 1 + (c += 1)), ("undefined" !== 24..toString() << -5) > void (c += 1)]] = NaN)) * (0 == 23..toString() * {}))) - ("number" << 23..toString() <= !1 != ((2 === [ , 0 ].length) < void 0 ^ (b_2 = 2 === [ , 0 ].length && void 0)))) * ((Infinity_2 <<= (NaN == Infinity) % (this - -5)) + (!1 < (3 * 23..toString() || 5)))) << (38..toString(), 
    c += 1, c += 1, 23..toString() < 4 && Infinity && (Infinity[c = 1 + c, 0 == (4 ^ 38..toString()) >= (Infinity_2 |= !0)] += "b"), 
    ({} % void 0 == (/[a2][^e]+$/ !== [] == (24..toString() != /[a2][^e]+$/))) * ((!0 * 23..toString() || 5 ^ {}) !== (2 <= this) * (Infinity < !1)) ^ (c += 1, 
    (0 | (c += 1, -4)) <= (b_2 && (b_2.var <<= {} + 4)) % (38..toString() - -3))) | (c += 1, 
    (!1 <= (Infinity_2 && (Infinity_2[a++ + a] += 0 <= ("bar" < 38..toString()))) && !0 < (-17 <= {} * Infinity)) >>> (Infinity_2 /= (Infinity_2 && (Infinity_2[a++ + (c = 1 + c, 
    (0 < (c += 1, 2 === [ , 0 ].length)) * (Infinity_2 && (Infinity_2[a++ + (Infinity && Infinity.next)] = /[a2][^e]+$/ != Infinity == (!1 ^ Infinity))) ? (c = 1 + c, 
    (!0) ** (!0 | "" >>> {})) : (c = 1 + c, (b_2 && (b_2[a] = (Infinity_2 = -0, -2))) >> 0))] = +Infinity >>> 22 + 23..toString())) >> (0 >>> null % []) == (0 != (Infinity_2 += (Infinity && (Infinity.done = 2 === [ , 0 ].length & NaN)) << NaN))) ^ (b_2 && (b_2.undefined += (((-0 ^ (!0 | (b_2 && (b_2.var = 4 < {})))) & (Infinity_2 *= 1)) >= ((this << "b") - !1) % !0 << (c += 1, 
    (-2 & Infinity) << 4)) - ((({} <= "a") << !0 >> 0) * ((Infinity_2 && (Infinity_2[c = 1 + c, 
    -5 % (-2 * {}) & (b_2 && (b_2.null += 0 == "function" / 24..toString()))] /= "c")) === (2 === [ , 0 ].length) % 25 >>> (Infinity_2 &= 0)) <= (0 <= (-2 ^ "undefined" + {}) << !1)))))) ^ (23..toString(), 
    ((b_2 && (b_2[new function a_2() {
        this[(c += 1) + ("function" == typeof f0 && 0 <= --_calls_ && f0(0, void (c = 1 + c)))] = (Infinity && (Infinity[c = 1 + c, 
        c += 1, -2 * this || b_2 && ([ b_2.get ] = [ (-0 ^ {}) != (b_2 *= NaN) ])] = !1)) % !0, 
        c = 1 + c, a_2 && (a_2[c = 1 + c, a_2 && (a_2[--a] = !1)] = !1), b_2 = "bar" >>> 23..toString();
    }()] >>>= (c += 1, (c += 1, {}) < 1 | (-3 ^ 23..toString()) * (b_2 && (b_2.done = 0))))) << (Infinity_2 && (Infinity_2[--b + [ --b + a, b_2, a++ + void function*() {}().next(), a++ + b--, --b ][a++ + (24..toString() in {
        length: Infinity_2 = "function" << (-6 < (-4 !== Infinity)),
        Infinity: Infinity,
        get: (c = 1 + (c = 1 + c), !1 & (NaN | (b_2 && (b_2.c /= NaN))))
    })]] = !0 <= void 24..toString())) >= ((b_2 && (b_2["function" == typeof f0 && 0 <= --_calls_ && f0(void 0, !0, (c = 1 + c, 
    (-4 << (Infinity && (Infinity[c = 1 + c, (b_2 && (b_2[--b + /[abc4]/.test((c = 1 + c, 
    (0 === 23..toString() <= 38..toString() | +(2 === [ , 0 ].length ^ /[a2][^e]+$/) || b || 5).toString()))] &= 1 == ("" == []))) / (8 == (b_2 && ([ b_2[c = 1 + c, 
    NaN !== ("c" | []) ^ !0] ] = [ 5 ])))] += "undefined" == (2 === [ , 0 ].length)))) / !1))] %= (c += 1, 
    4 >>> (c += 1, (c += 1, "b") <= 25)))) === ((Infinity && (Infinity[a++ + ("function" == typeof f1 && 0 <= --_calls_ && f1())] **= NaN)) == (!1 === (Infinity_2 += NaN)))) >>> ((0 / 23..toString() && (b_2 = !0 % (2 === [ , 0 ].length))) << (38..toString() << 4) & 0 - [] == (c += 1, 
    0 | 38..toString()))) >> (b_2 += (0 <= (b_2 && (b_2.undefined = -3 ^ Infinity)) == (0 == (-1 ^ 23..toString()))) > (38..toString() % "object" <= !1 === (2 === [ , 0 ].length & 0 && 0)) >= ((NaN ^ (Infinity_2 && ({
        async: Infinity_2[c = 1 + c, (!1 === Infinity) >> (!0 !== (-0 & 24..toString()))]
    } = {
        async: 24..toString()
    })) ^ {} >= 38..toString() < -2) & ((2 === [ , 0 ].length) * /[a2][^e]+$/ != (c += 1, 
    38..toString())) << (!0 ^ {}) / 0) != (("undefined" | 23..toString()) > (24..toString() || 22) && !1) >= !1 >>> (c += 1, 
    !1) <= (b_2 && (b_2.NaN += NaN % ([] >> -2 >> -4))) * ((0 ^ (Infinity && (Infinity.a = Infinity + 38..toString()))) / ("bar" << (b_2 && (b_2.NaN = 22 * 23..toString()))))) << (((b_2 = !1 === (c += 1, 
    2)) != (c += 1, !1) ^ (b_2 += Infinity + -3 || 0 % 38..toString(), !1 === ((Infinity && (Infinity[c = 1 + c, 
    c += 1, (Infinity_2 = NaN) <= NaN] += (2 === [ , 0 ].length) << -4)) < NaN) << (5 * [] & 0))) % ((b_2 && (b_2[Infinity] = ("b" != 38..toString()) < (Infinity && (Infinity.c = NaN)) != 1 ^ void 0 & "c" <= (2 === [ , 0 ].length) !== "number" >>> (2 === [ , 0 ].length))) <= ((-0 | 24..toString()) << 0 <= !delete [ , 0 ][1]) * (!1 % (0 == (-3 ^ 24..toString())))) >>> (Infinity_2 = !1, 
    24..toString(), !0 - (c += 1, 23..toString(), 38..toString(), 23..toString(), b_2 && (b_2.b = ((-2 ^ []) >> NaN) % (c += 1, 
    !0) == (c += 1, !0))))))) - (b_2 && (b_2[/[abc4]/.test(((c += 1) + -!(this << 38..toString() || (b_2 = 24..toString() < "a")) || b || 5).toString())] = (c += 1, 
    ((Infinity && (Infinity.then &= (Infinity && (Infinity[c = 1 + c, (1 >> Infinity != 19) <= 0] >>= 23..toString() << (2 === [ , 0 ].length)), 
    b_2 && ([ b_2.c ] = [ (Infinity && (Infinity[a++] += "" != this % 25), (Infinity_2 %= -4) >> NaN) ])))) << (((b_2 && (b_2[a++ + ((c += 1) + ("function" == typeof f0 && 0 <= --_calls_ && f0((c = 1 + c, 
    (3 ^ {}) <= !1 && b_2 && (b_2.b = (b_2 = -2) < !0)), null)) || 5).toString()[(c += 1) + (c = 1 + c, 
    typeof (!0 & (c += 1, 25 + this)))]] **= (!0 | 3 >>> 24..toString()) >> (b_2 += !1))) === (Infinity && (Infinity.static += !1 !== (23..toString() && !1)) && !1 + this === (c += 1, 
    -1))) >= 0 >>> (NaN == {} <= NaN ^ 0))) / (((1 != "" < 24..toString() <= NaN) + ((-3 | []) << Infinity + 3) ** (Infinity << 3 * (2 === [ , 0 ].length)) || !1 * (null << [] || "c" + !1) * !1) & ((!0 | (b_2 |= /[a2][^e]+$/ / [] ^ !1)) >>> (((Infinity_2 = 0) & "undefined" != 23..toString()) >>> (c += 1, 
    5)) ^ ((Infinity && (Infinity.in <<= "number" ^ 2 === [ , 0 ].length ^ !1)) == (!0 | (c += 1, 
    "undefined")) || Infinity_2 && ([ Infinity_2[--b + (b_2 && b_2.b)] ] = [ (NaN << (this >> "object")) / (Infinity_2 >>= !1) ])))) <= (c += 1, 
    ((("bar" ^ {}) <= NaN && 0) === (c += 1, ((null / (Infinity <= 4) && 3 >> {} >> NaN) >= ((c += 1, 
    "object") <= 100) >> (-4 === 38..toString() <= 4)) << ((Infinity_2 %= -5 != (Infinity_2 += "b" === 23..toString())) >= (!0 === 38..toString()) >> 4) % (NaN < (38..toString(), 
    2) <= this / "undefined" << 0))) * ((1 ^ (b_2 = NaN < Infinity === 22) + (!1 >> (!1 << ("number" ^ 2 === [ , 0 ].length)))) * ((Infinity_2 = (-1 != (c += 1, 
    3)) <= !1 <= !1) ^ (b_2 += 1 != (Infinity_2 && (Infinity_2.c += "undefined" !== 38..toString())) != (-2 == 38..toString() ^ !1) && (c += 1, 
    (-4 == 23..toString()) > (23..toString() < -3)))))) != (b_2 && (b_2[--b + [ (c += 1) + (--b + (c += 1, 
    void 38..toString()) ? (c += 1) + [ ..."" + b_2, b + 1 - .1 - .1 - .1, a++ + --b, {
        "": (c = 1 + c, -2 == [] % Infinity == ("" & Infinity))
    }.then ? a++ + [] : b, [ (c = 1 + (c += 1), (!0 < ("object" == this)) >> -(Infinity_2 && (Infinity_2.async -= {} + "a"))), ..."" + Infinity_2, (c = 1 + c, 
    !1 - (5 <= [] !== (25 | []))) ].c ] : Infinity) ][b + 1 - .1 - .1 - .1]] += ~((!1 + (!1 >> ("undefined" & Infinity)) === !1) - (Infinity && (Infinity[/[abc4]/g.exec((a++ + ~((Infinity_2 <<= 0) ^ !1 >>> (24..toString() <= 5)) || b || 5).toString())] >>= (38..toString(), 
    (-5 !== (2 === [ , 0 ].length)) % !1)) && (c += 1, NaN)) == (24..toString(), (!1 * (2 < 38..toString()) && "function" ^ (Infinity_2 &= "object")) === (Infinity_2 += 2 === [ , 0 ].length || 2 === [ , 0 ].length, 
    ([] <= "bar") >>> (5 == Infinity) <= +(1 + (Infinity && (Infinity[c = 1 + c, c += 1, 
    !0] &= !1)))))) || (24..toString(), (void 23..toString() ^ !1 < -5 / 23..toString() < (NaN ^ (c += 1, 
    -2)) & (b_2 |= NaN >>> (b_2 && (b_2[c = 1 + c, "0foo" < "bar-2" << 0 - 24..toString()] %= 0)) & (c += 1, 
    "foo" < ("foo" & Infinity))) | (Infinity && (Infinity[Infinity] = 5 - Infinity < (this <= "c") == 0 < (Infinity && ({
        length: Infinity.static
    } = {
        length: Infinity ^ 24..toString()
    }))), 0)) + ((0 - (0 != 24..toString() >> 22) == 0) >> ((Infinity && (Infinity[(c += 1) + (c = 1 + c, 
    typeof ((2 < ({} <= 5)) / (Infinity % "object" << !1)))] = /[a2][^e]+$/ & 38..toString())) / !0 < (-2 != [] % void 0 >= (b_2 && ({
        static: b_2[c = 1 + c, 0]
    } = {
        static: void 0 * Infinity
    }))))) * (!1 / (null | 23..toString()) * -1 > (Infinity_2 += (c += 1, 22 < 24..toString() != (c += 1, 
    "foo" / (-2 <= 24..toString())))) == (0 + (c += 1, [])) / 0))))))), this[(c += 1) + ("function" == typeof Infinity && 0 <= --_calls_ && Infinity(38..toString(), ..."" + Infinity))] |= (c += 1, 
    ((Infinity_2 = ((Infinity_2 && (Infinity_2.null |= 1 % (Infinity && (Infinity[c = 1 + c, 
    {} - -3 - "object" * 38..toString() != (0 ^ (Infinity && (Infinity.undefined = -4 ^ {})))] *= "numberobject")) + NaN)) & !(25 === 23..toString() ^ (Infinity && (Infinity[c = 1 + c, 
    -4 - {} || 1 & Infinity & -3] = NaN))) || ((b_2 = !0) < (23..toString() < -0)) >>> (Infinity && (Infinity[a++ + void (b_2 && (b_2.c = !0))] = !0)) >> (38..toString(), 
    !1 & 8 == this % "foo")) >> (Infinity_2 && (Infinity_2.var = -5 != 24..toString() ^ 0), 
    ((25 !== (Infinity && (Infinity[c = 1 + c, (-0 | "foo" >> {}) + (c += 1, "c" >> ([] < 5))] = NaN))) >>> (23..toString() - "c") % -2) + ((Infinity_2 && ({
        a: Infinity_2[c = 1 + c, (b_2 = /[a2][^e]+$/ * 23..toString() / ([] | this)) * (0 << ("c" | 38..toString()))]
    } = {
        a: !1
    })) + (c += 1, 1) < 1))) | (((Infinity_2 && (Infinity_2[/[abc4]/.test((--b + --b || b || 5).toString())] = NaN)) == (!1 & void 0 / 24..toString()) % 0) - (Infinity && (Infinity[a++ + b] += this >>> 0 >= +23..toString() ^ 0 % (Infinity + 22) | (c += 1, 
    !1))) == (38..toString(), NaN / (Infinity && (Infinity.static = 4)) || Infinity_2 && (Infinity_2.get = this < 24..toString() == (c += 1, 
    -1)), (1 % (2 === [ , 0 ].length) === (Infinity_2 && (Infinity_2[c = 1 + c, !1] = NaN))) <= (Infinity & /[a2][^e]+$/ || 2) && b_2 && (b_2.var %= 15 << (Infinity && (Infinity.foo = 24..toString() << 22)) / (b_2 /= 5 !== 23..toString())))) <= ((((Infinity && (Infinity.c += !0)) & ("number" | [])) <= (Infinity_2 = 0) | (Infinity_2 && (Infinity_2.undefined += "c" - [] & (b_2 && (b_2.null = "number")) ^ 3))) * (Infinity && (Infinity[a++ + [ --b + b++, (c = 1 + c, 
    ((Infinity_2 && ({
        c: Infinity_2[c = 1 + c, (!1 ^ 23..toString()) + "function" == (Infinity_2 = null * 23..toString()) <= NaN]
    } = {
        c: !1
    })) >>> (b_2 >>>= 3) << -5 || 5).toString()[c = 1 + c, !1 <= (void 0 === 38..toString()) !== (c += 1, 
    Infinity_2 && (Infinity_2.get = !1))]), , a++ + (c = 1 + c, -3 !== -2 * 24..toString() < -2) ][a++ + delete a]] = (1 == "foo" >>> 38..toString()) <= -2 >= (Infinity_2 = (NaN | 2 === [ , 0 ].length) >>> -5 <= !0))) != (b_2 && (b_2.done = (b_2 && (b_2.b += 22 + {} || -4)) / ((2 === [ , 0 ].length | "") <= -1 | (c += 1, 
    1)) === (0 / ((38..toString() <= !1) + void 0) == !("foo" == this) >>> (24..toString(), 
    Infinity && (Infinity[c = 1 + c, 0 ^ (c += 1, "a")] = !1))))))) & (((0 | "b" - 24..toString()) == Infinity > 38..toString() < -1) * (c += 1, 
    0) * ((!0 ^ "" >> (2 === [ , 0 ].length)) < !1 > ((b_2 && (b_2.a += 2 << Infinity)) === 19 <= -3 >>> [])) > (Infinity && (Infinity[(c += 1) + b--] = (23..toString() + -4 | 21) * (b_2 && ({
        async: b_2.done
    } = {
        async: Infinity_2 && (Infinity_2.async %= !0) || -1
    })) / ((0 & delete Infinity) != 0 >> (Infinity && (Infinity.b *= !1))) <= ((0 === (-4 != Infinity) <= (38..toString() <= 24..toString())) < -1)))) + (c += 1, 
    ((Infinity_2 += 1) == (b_2 >>= NaN)) % (c += 1, (!1 <= Infinity) / (23..toString(), 
    Infinity && (Infinity.NaN >>= "c"))) % ((Infinity && (Infinity["symbol" != typeof b] /= 1 == -this % "number")) >= (void 38..toString() === (b_2 && (b_2[[].NaN] += "bnumber" !== (c += 1, 
    /[a2][^e]+$/)))))) >>> (Infinity && ({
        static: Infinity.undefined
    } = {
        static: !0 - ((/[a2][^e]+$/ + 4 | /[a2][^e]+$/ > 38..toString()) << NaN)
    }), b_2 = 1 <= (Infinity && (Infinity.null = ("b" !== []) < !1)) >>> !0, b_2 += +(!1 <= (Infinity & 24..toString())) ^ !1 * (this << 5) !== (23..toString() >> [] || !0), 
    Infinity_2 && (Infinity_2.static = 0 <= Infinity), 23..toString(), ((!1 < 24..toString() % {}) + (0 <= (Infinity && (Infinity.value = -1))) > (24..toString() - 24..toString() << !1) - (b_2 && (b_2[a++ + void 0] = (Infinity == /[a2][^e]+$/) / !0)) > ((this - 4 ^ {} % 3) >= (.4 === (c += 1, 
    "foo"))) >> ~(Infinity_2 = (b_2 && (b_2.c += (2 === [ , 0 ].length) <= "a")) >> !1)) >>> ("undefined" - this + (22 | {}) + 2 <= ("b" / 23..toString() & NaN ^ !1 << 38..toString() < -6) <= (~("foo" ^ 24..toString()) < (Infinity_2 && (Infinity_2.static >>>= NaN) || (c += 1, 
    !1))) + 0 * ((b_2 += "undefined" <= this) && 0))) || (((Infinity_2 && (Infinity_2[(c += 1) + [ [ ..."" + Infinity_2, ({} < "") + !1 ^ 0, (c = 1 + (c = 1 + c), 
    "undefinedNaN" === (Infinity_2 && (Infinity_2.var = 0)) - (Infinity_2 && (Infinity_2.set **= 1 - 23..toString()))), (c = 1 + c, 
    (!0 < (b_2 >>= 1)) * (1 ^ 23..toString())) ], a++ ].get] = ("object" ^ null !== 24..toString()) % 0 && (b_2 = -3 !== [] | "object" ^ Infinity | 0))) !== ((b_2 && (b_2[(c += 1) + void (b_2 && ({
        null: b_2[a++ + {
            NaN: (c = 1 + c, !1)
        }]
    } = {
        null: -1 >> (this | {})
    }))] = !1 | /[a2][^e]+$/ >>> 23..toString())) ^ "-1bar" >>> (c += 1, "number")) % ({} % 24..toString() % !0 < (Infinity && (Infinity[Infinity && "function" == typeof Infinity.null && 0 <= --_calls_ && Infinity.null()] += 0))) ^ (Infinity && ({
        Infinity: Infinity.async
    } = {
        Infinity: 0
    }), c += 1, 24..toString(), 0 ^ (Infinity && (Infinity.in = [] + -3 === 22)) !== (c += 1, 
    "b"))) << ((-3 * (-3 & {} ^ (Infinity_2 && (Infinity_2[c = 1 + c, (((2 === [ , 0 ].length) < 0) << NaN) + (c += 1, 
    !0)] = 0))) ^ (b_2 && (b_2[c = 1 + c, -5 != (23..toString() && this) == 2 / (Infinity_2 && (Infinity_2[c = 1 + c, 
    !0 <= (2 === [ , 0 ].length && void 0) == !1] += 24..toString() <= 25))] = "c" >> 23..toString())) - -1 / -3 ^ (NaN / (NaN < 23..toString()) ^ !1) > (c += 1, 
    Infinity && (Infinity.NaN = !1 * 38..toString() - (Infinity && (Infinity.value *= Infinity / ""))))) >= ((!1 + ((3 ^ Infinity) == (c += 1, 
    0)) ^ (void 0 & 24..toString()) + (24..toString() || -0) << (38..toString(), 0)) === ((2 === [ , 0 ].length | this | !0 << -2) > ("foo2" ^ 23..toString()) || 2 != 22 / (2 === [ , 0 ].length) >>> null)))) * (c += 1, 
    c += 1, ((NaN !== 24..toString()) + (-5 ^ this) < (1 | {} != []) || (b_2 && (b_2[--b + Infinity_2] = -5 ^ (Infinity && (Infinity[c = 1 + c, 
    !1] += /[a2][^e]+$/ === (2 === [ , 0 ].length))))) < 5 != (c += 1, c += 1, !0)) > (!0 << (b_2 && (b_2.get = 1))) / (-("a" >> (2 === [ , 0 ].length)) | ("b" & 38..toString()) - "object") << ((-0 - 24..toString()) % (2 << -4) || -2 != {} ^ 4) * ((b_2 = -4) % (c += 1, 
    24..toString()) ^ (23..toString() <= 5) >> NaN)) < (((5 << -3) + ((2 === [ , 0 ].length) / "function" | 0) ^ ((Infinity && (Infinity[c = 1 + c, 
    Infinity_2 && (Infinity_2[a++ + /[abc4]/.test(((c += 1) + ("function" == typeof b_2 && 0 <= --_calls_ && b_2()) || b || 5).toString())] **= (c += 1, 
    !1))] &= -5 < {})) - !0) % (c += 1, b_2 |= "a" == 38..toString()) ^ ((Infinity_2 += !23..toString() || 1) - (22 <= {} ^ +this) | -6 * (c += 1, 
    Infinity - Infinity))) << ((2 >>> (b_2 && (b_2[c = 1 + c, !1 <= [] && (c += 1, -3 / this)] = !0)) != (!1 & +38..toString()) && (Infinity_2 && (Infinity_2[c = 1 + c, 
    b_2 >>>= 0] = 24..toString() / "a")) << NaN >> ({} <= "function" < (3 < this))) ^ ((1 === []) <= 0) << !1 == !1 / ((2 === [ , 0 ].length ^ -1) / (22 | 2 === [ , 0 ].length))) < ((Infinity_2 = 4 + ((2 === [ , 0 ].length) % "number" <= 2) && [] >>> "bar" < !1) << ((b_2 && (b_2[(c += 1) + (c = 1 + c, 
    typeof ((1 ^ {}) >>> !1 ^ 0))] **= "undefined" <= "b" * 38..toString())) >>> !1) / ((-1 ^ 38..toString()) << -4 >= (!0 <= this << -0))) % ((Infinity_2 && (Infinity_2[a++] += (2 === [ , 0 ].length) % -5 / -8 >>> (-1 < ("a" ^ 24..toString())))) <= (c += 1, 
    !1 >>> ((0 != 24..toString()) >> this)) != (Infinity && (Infinity.in = (-25 == ("undefined" < (2 === [ , 0 ].length) || (b_2 >>>= !1))) + ((b_2 |= -1) >>> (!0 >> []) >>> (Infinity_2 && (Infinity_2.set = "object" | [])) * (void 0 & []))))) || (b_2 &= (0 == (Infinity && (Infinity.set = !1)) >>> !1) + ((NaN & ("c" ^ 23..toString())) >= ((38..toString() && []) ^ NaN / 38..toString())) > (!1 ^ (b_2 = !1, 
    0))) % (c += 1, (!1 === (Infinity_2 += 0 / (-3 !== {}))) >> ((!1 !== ("object" | 23..toString())) << (Infinity_2 && (Infinity_2[Infinity && Infinity[c = 1 + c, 
    !0 * ((b_2 += !0) < !1)]] = 1 <= (2 === [ , 0 ].length)))) || NaN === {} - (2 === [ , 0 ].length) != (-5 != this && !0) >> !1) == ((Infinity_2 && (Infinity_2[--b] >>= (c += 1, 
    (Infinity && (Infinity[{
        "\t": (c = 1 + c, (!1 >> (23..toString() != /[a2][^e]+$/)) - ((b_2 && (b_2[c = 1 + c, 
        (Infinity_2 && (Infinity_2.async += !0)) >> (Infinity_2 && (Infinity_2.then = !0)) & !0] += 2)) | "bar" == this))
    }] += (Infinity_2 += -3) || 25)) ^ 0 >> ((b_2 && (b_2.set = 0)) | "foo" ^ 24..toString())))) - (!1 << (Infinity_2 += (b_2 += !1) && -2) >> ((2 === [ , 0 ].length) >> "undefined" < !0 < -1)) | (c += 1, 
    38..toString(), Infinity_2 ^= 0 <= ({} <= 3) < (-3 >>> [] == [] / "" ^ (b_2 += -0 | Infinity) << !1)))));
    for (var brake6 = 5; ("a" ^ Infinity ^ !1) ** -(25 < this) && 0 < --brake6; ) {
        for (var brake7 = 5; (b = a) && 0 < --brake7; ) {
            switch (--b + Infinity_2) {
              case a++ + void function await() {
                    switch (a++ + b) {
                      case (c += 1) + /[abc4]/.test(((c += 1) + ("function" == typeof f0 && 0 <= --_calls_ && f0(this, 5)) || b || 5).toString()):
                        for (var key10 in c = 1 + c, Infinity_2 **= 0 >> ((b_2 = -5) < (-2 <= 38..toString()))) {
                            c = 1 + c, c += 1, 24..toString();
                        }
                        break;

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

                      case a++ + void (38..toString(), Infinity_2 && (Infinity_2[c = 1 + c, (0 ^ this) < (await && (await.foo += -0 != Infinity & 22))] = -4)):
                        return c = 1 + c, c += 1, -1;

                      case --b + "undefined":
                        c = 1 + c, await && (await.b **= "undefined");
                    }
                    b_2 += +~((0 < Infinity) - ((2 === [ , 0 ].length) <= "undefined"));
                }():
                break;

              case --b + (b_2 && "function" == typeof b_2.var && 0 <= --_calls_ && b_2.var``):
                break;

              case b--:
                new function(yield_1, bar, foo_2) {
                    this[{}] = ((2 === [ , 0 ].length == (2 === [ , 0 ].length)) < !0) >>> -5, this[b--] += [] / "number" - ("bar" ^ []) - !1, 
                    this[--b + /[abc4]/g.exec((/[abc4]/g.exec((c = 1 + c, (b || 5).toString())) || b || 5).toString())] = !0 - (-5 <= (24..toString() || "c"));
                }(), c += 1;
                break;

              default:
                for (var brake20 = 5; b **= a, c += 1, 0 < --brake20; ) {}
            }
        }
    }
    b_2 && b_2.a;
    var key24, expr24 = "" + (a++ + ("function" == typeof b_2 && 0 <= --_calls_ && b_2()));
    for (key24 of expr24) {
        c = 1 + c;
        --b, a++;
    }
}();

for (const key1 of expr1) {
    [][key1 && (key1[b = a] = (key1 && (key1.Infinity += !1), !0 | NaN >>> this))] ? c += 1 : a_1 = function f0() {
        var bar;
        !function() {
            for (var brake30 = 5; 0 <= --_calls_ && f0() && 0 < --brake30; ) {
                try {
                    switch (c = 1 + c, !1 - ("bar" in this <= "object")) {
                      default:
                      case c = 1 + c, (NaN <= -1 >>> 23..toString()) / !0:
                      case c = 1 + c, c += 1, (-3 | []) < (-5 === 23..toString()):
                        break;

                      case c = 1 + c, a && (a[--b + (c = 1 + c, key1 && (key1.done = (24..toString(), c += 1, 
                        a += {} % 2)), c = 1 + c, 23..toString(), 24..toString(), c = 1 + c, !void 38..toString())] %= -3 != (2 === [ , 0 ].length ^ !1) === !0 >>> ("foo" !== this)):
                    }
                } catch (foo_1_1) {
                    foo_1_1 = NaN, c = 1 + (c = 1 + c), foo_1_1 += -3 + (2 === [ , 0 ].length);
                } finally {
                    a += !1, c = 1 + (c = 1 + c);
                }
            }
            switch (--b, 0 <= --_calls_ && f0((c = 1 + c, 23..toString(), 24..toString()), (c = 1 + c, 
            c += 1, 24..toString(), 24..toString(), 24..toString()), c = 1 + c), b + 1 - .1 - .1 - .1) {
              case !1 % (38..toString() >> -4) + !0:
                for (var brake42 = 5; c = 1 + c, (key1 && (key1.a = 1 / 0)) + 5 && 0 < brake42; --brake42) {
                    c = 1 + c, key1 && (key1[/[abc4]/g.exec((c = 1 + c, (0 === (key1 && (key1[b] >>>= 3 + [] ^ NaN)) || b || 5).toString()))] = 0 * (NaN | []));
                }

              case 0 in [ (c = 1 + c, 1 == (2 !== []) + !0) ]:
                return c = 1 + c, a = 23..toString() >>> "foo", 38..toString();

              case (a++ + (key1 && key1[c = 1 + c, ~(NaN >> (key1 && (key1[c = 1 + c, ((key1 && (key1.NaN >>>= NaN | 24..toString())) !== 24..toString() << 23..toString()) < (key1 && (key1[--b + (c = 1 + c, 
                (-0 & (key1 && (key1[--b + a++] %= 1 / 0 < 38..toString() < (NaN != this))) || 2).toString()[c = 1 + c, 
                22 * 24..toString() <= NaN < (key1 && (key1[{}] = -1 + 24..toString() > !1 >> []))])] += [] >>> !1 <= NaN))] += NaN)))]) || 2).toString()[+(NaN % ("undefined" / []) << (key1 && (key1[c = 1 + c, 
                a = 4 < ("undefined" & 24..toString()) ^ (c += 1, "function" >>> (-3 == 38..toString()))] += NaN !== 23..toString() ^ ("" | {}))))]:
                break;

              case [ (c = 1 + c, 0), (c = 1 + (c += 1), (a += (!1 === []) % (a + -1)) || key1 && (key1.var = 0)) ].length:
                c += 1;
            }
        }();
        a++ + ("undefined" in {
            [a++ + (--b + (b += a))]: (c += 1) + (--b + ("object" == typeof foo_2)),
            length: a++ - 2,
            c: a++ + ("function" == typeof f2 && 0 <= --_calls_ && f2({
                a: (c = 1 + c, 0 | (38..toString(), 0))
            }[c = 1 + c, 0])),
            foo: (c += 1) + 22..toString()[a++ + b],
            in: (c += 1) + 0
        }) && (bar = 2 === [ , 0 ].length, c = 1 + (c = 1 + c), key1 && (key1[c = 1 + c, 
        bar += +(("undefined" & 23..toString()) <= !0)] %= 24..toString() << 4), "number" != typeof bar_2_1 && (c = 1 + c));
    }(0, --b + ~a, ..."" + key1);
}

for (var brake54 = 5; --b + ("function" == typeof f2 && 0 <= --_calls_ && f2(-4, -1, 23..toString())) && 0 < --brake54; ) {
    for (var brake55 = 5; a && 0 < brake55; --brake55) {
        c += 1, /[abc4]/g.exec((b++ || b || 5).toString());
    }
}

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

uglified result:
null 5 0 1684 Infinity NaN undefined
// reduced test case (output will differ)

// (beautified)
new function Infinity() {
    console.log(delete new.target);
}();
// output: false
// 
// minify: true
// 
// options: {
//   "mangle": false,
//   "output": {
//     "v8": true
//   },
//   "validate": true
// }
minify(options):
{
  "mangle": false,
  "output": {
    "v8": true
  }
}

Suspicious compress options:
  evaluate
@alexlamsl alexlamsl added the bug label Mar 18, 2021
alexlamsl added a commit to alexlamsl/UglifyJS that referenced this issue Mar 18, 2021
alexlamsl added a commit that referenced this issue Mar 18, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant