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 #5743
Comments
// uglified code
// (beautified)
var _calls_ = 10, a = 100, b = 10, c = 0;
var Infinity_2 = --b + ((![] != (this ^ "a")) + ("undefined" > 2 | this << "foo"));
switch ((c = c + 1) + "function") {
case 22:
{
var c_2 = function d() {}("function");
}
if ((c = c + 1) + [ c_2 && typeof c_2.b == "function" && --_calls_ >= 0 && c_2.b("foo") ].in) {
for (var brake5 = 5; !(((Infinity_2 &= ("foo", [])) ^ "number" == 38..toString()) * ((3 ^ 2) == (Infinity_2 && (Infinity_2.done = 25 === "")))) && brake5 > 0; --brake5) {
c = c + 1;
}
} else {
for (var brake7 = 5; b + 1 - .1 - .1 - .1 && brake7 > 0; --brake7) {
for (var brake8 = 5; --b && brake8 > 0; --brake8) {
var brake9 = 5;
do {
--b + [ -(c = c + 1, 22 % 23..toString()) ];
} while ((c = c + 1) + ((c_2 = ~38..toString() ^ this - -2) >> (("undefined" > "function") >> [] - [])) && --brake9 > 0);
}
}
}
{
var expr11 = Infinity;
for (var key11 in expr11) {
{
var brake12 = 5;
while (a++ + (delete (((25 & {}) >= NaN - 2) + ({} >= {} === (Infinity_2 += {} * 23..toString()))) || a || 3).toString() && --brake12 > 0) {
typeof f1 == "function" && --_calls_ >= 0 && f1(--b + -0);
}
}
}
}
break;
case a++ + delete b:
break;
case (c = c + 1) + "b":
{
var brake15 = 5;
do {
var foo_2 = 1 === 1 ? a : b;
} while (((c = c + 1) + --b ? --b + {}[foo_2 && foo_2[typeof f2 == "function" && --_calls_ >= 0 && f2()]] : --b + (foo_2 && typeof foo_2.b == "function" && --_calls_ >= 0 && foo_2.b())) && --brake15 > 0);
}
var Infinity_2 = a++ + (Infinity_2 && typeof Infinity_2.async == "function" && --_calls_ >= 0 && Infinity_2.async(new function(e) {
this[typeof Infinity_2_1 != "special"] ^= (("number" < "object" !== 23..toString() > true) < (h ^= ([ , 0 ][1] >>> "undefined",
"a" == "foo")) | (4 >= -0 == 22 < "object", !this && 3 >>> "number") && ((3 ^ "bar") === 23..toString() - 24..toString() & ((22 || -4) & (false && "function"))) + ((h |= false & []) ^ -1 & "number" || h && (h.get = h && (h[c = 1 + c,
("b" & 3) + (c = c + 1, 23..toString()) >> (false > [] < "foo" + 24..toString())] = [] != "") && "b" & "object")),
(4 / 4 !== ({} === "number")) << (Infinity_2 && (Infinity_2[(c = c + 1) + a++] &&= (Infinity_2 += "bar" || "c") + (null > true))) >>> (c = c + 1,
-4 ^ -1) - ("c" ^ false ^ ({} | -3)) ^ (/[a2][^e]+$/ < 4 | 24..toString() !== [ , 0 ][1]) >= (null << NaN & 1 >= 24..toString()) != ("b" === {} === ("function" & undefined)) >> (([ , 0 ].length === 2 ^ /[a2][^e]+$/) << ("object" != 25)));
if ({
c: --b + {}
}[(c = c + 1) + [ (c = 1 + c, (e && (e[(c = c + 1) + (typeof f1 == "function" && --_calls_ >= 0 && f1())] *= (c_2 && (c_2.b = 22 << 25)) <= (null & "a"))) === ((c = c + 1,
2) !== (Infinity_2 && (Infinity_2.NaN = [] | "function")))), (c = 1 + c,
(25 % null < ([ , 0 ].length === 2 || 25)) + ((h && (h.get = "function" << "bar")) < -1 % "b")), (c = 1 + c,
(("object" | 24..toString()) !== -2 > -4) >= (2 * null > (-5 != 38..toString()))) ]]) {
var f = 5;
L10069: do {
{
var g = function i(j) {}();
}
} while ((c = c + 1) + (((c = 1 + c, c_2 && (c_2.__proto__ = void -2 <= NaN >> -4 & !((-42n).toString() >= 38..toString()))) ? (c = 1 + c,
(Infinity_2 = e ^ "foo") * (false & "a") - (Infinity_2 && (Infinity_2[a++ + (b = a)] = "a" == 0 == undefined < "undefined"))) : (c = 1 + c,
([ , 0 ].length === 2 != 25 ^ ("object" || null)) >= (25 != this || "number" % "function"))) ? (([ , 0 ].length === 2) + -1 & (c = c + 1,
"number")) == ([ , 0 ][1] < -3) >>> (-2 !== false) : typeof Infinity_2 == "function" && --_calls_ >= 0 && Infinity_2()) && --f > 0);
} else {
var h = function k() {
c = 1 + c, (([ , 0 ].length === 2) < [ , 0 ][1] || +null) + (false <= -5 | ("c",
[]));
c = 1 + c, (22 != null) * (-2 != this) & 23..toString() / e == (-0 === []);
c = 1 + c, /[a2][^e]+$/ * [] >>> void false <= (38..toString() << 22 != (1 || -5));
}("c", "object");
}
}(1))), bar = "object" * -1 << (Infinity_2 && (Infinity_2[c = 1 + c, bar && (bar[a++ + a--] = (c_2 && ([ c_2.next ] = [ undefined >> -0 >> (Infinity >>> -5) ])) >>> (-0 >> true < ({} | 2)))] = "undefined" && "object")) !== "c" * -4 % (-1 - true);
;
case (c = c + 1) + ~a:
{
var b = function l(arguments, m) {
class n {
Infinity = --b;
}
{
{
var o = function A(B, C, D) {
L10070: for (var E = 5; (c = 1 + c, ("" && 0) !== (22 === false) != (m && ({
"": m[c = 1 + c, bar &&= (5 - 24..toString() ^ 38..toString() >>> Number(0xdeadn << 16n | 0xbeefn)) >> "a" + 22 + 5 % true]
} = {
"": "b" > 4
})) << ("object" > "c")) && E > 0; --E) {
c = 1 + c, (NaN & -5 & (c = c + 1, 24..toString())) % ((/[a2][^e]+$/ ^ 23..toString()) === (-4 | -1));
}
{
var F = 5;
L10071: while ((c = 1 + c, ("b" / Infinity >= ({} !== "number")) >>> ((c = c + 1,
"a") <= ("number" <= -0))) && --F > 0) {
c = 1 + c, "a" === [ , 0 ][1] ^ ([ , 0 ].length === 2 ^ "function") && (B && (B[c = 1 + c,
([ , 0 ].length === 2 !== "foo", ([ , 0 ].length === 2) << 2) & -(3 << -3)] = -5 !== 25)) % (-4 != "bar");
}
}
var G;
}();
}
{
var p = 5;
do {
{
var q = --b + (typeof f3 == "function" && --_calls_ >= 0 && f3((c = 1 + c,
c_2 **= ((c = c + 1, 38..toString()) < ("a" ?? -4)) << (2 * 24..toString() >>> ([] !== [])))));
for (var [ r ] in q) {
{
var s = 5;
while (a++ + Infinity_2 && --s > 0) {
return;
}
}
}
}
} while (a++ + (2 in [ (c = c + 1) + ((c = 1 + c, ("function" >= this) + ([] > "a") << (undefined << undefined && [ , 0 ].length === 2 & "foo")) || a || 3).toString(), (c = c + 1) + [] ]) && --p > 0);
}
{
var t = 5;
while (a++ && --t > 0) {
var u = 5;
L10072: do {
{
var v = 5;
do {
{
var w = 5;
L10073: while ((c = 1 + c, (c = c + 1, -3 & [ , 0 ].length === 2) && true <= [ , 0 ][1] != (bar && (bar.c += 24..toString() !== 1))) && --w > 0) {
c = 1 + c, (undefined & "object") * ![ , 0 ][1] <= 24..toString() >> "foo" >> (22 !== /[a2][^e]+$/);
}
}
} while (a++ && --v > 0);
}
} while (--b + (typeof foo_2 == "function" && --_calls_ >= 0 && foo_2()) && --u > 0);
}
}
{
var x = 5;
while (--b + (25 in []) && --x > 0) {
{
var y = 5;
do {
c = 1 + c, void 38..toString() >>> (m && (m.var = NaN === 23..toString())) > (22 + null || NaN && /[a2][^e]+$/);
} while ((c = 1 + c, ("b" >>> 3) % (1 < null) / ({} && "a",
NaN, -2)) && --y > 0);
}
}
}
}
{
var z = function H(I) {}(this, ..."" + c_2);
}
}("object");
}
if (Infinity_2 && Infinity_2[[ bar && (bar.in += ((23..toString() == /[a2][^e]+$/) > (0 > -0)) / -(NaN | 25)), [ b ||= a ][a++ + ((c = c + 1) + [ -0 in [ (c = 1 + c,
(false ?? undefined) >>> -1 - -0, (38..toString() ^ undefined) & 38..toString() < 0) ], ..."" + Infinity_2 ][a++])] ][(c = c + 1) + -((c_2 && (c_2.get += + -5 == "a" % 0)) > (b && (b[c_2] += "undefined" & true | (c = c + 1,
"number"))))]]) {
[ +({} >> ([ 3n ][0] > 2) | "foo" + -0 && (c = c + 1, {}) * (/[a2][^e]+$/ >= 1)) ][--b + --b];
}
switch (--b + {
...--b + "c"
}) {
default:
try {
c = c + 1;
} catch (J) {
for (var brake53 = 5; (b = a) && brake53 > 0; --brake53) {
try {
{
var expr55 = (c = c + 1) + foo_2;
L10074: for (let K in expr55) {
c = 1 + c;
var Infinity_2_2 = expr55[K];
try {
{
var brake57 = 5;
L10075: do {
c = 1 + c, (1 * 5 > ("function" <= undefined)) * ~(-4 <= -3);
} while ((c = 1 + c, !([ , 0 ][1], 0) || (b += -4 ^ -4 | undefined !== "bar")) && --brake57 > 0);
}
} catch (c_2) {
c = 1 + c, (-3 && {}) >= (true ^ 25) || Infinity - -5 > void -1;
c = 1 + c, Infinity_2 && (Infinity_2[(c = c + 1) + (!"a" & 38..toString() * /[a2][^e]+$/ ?? (-0 && true) <= ({} == 1))] *= (("undefined" == "c") - ("undefined" > "undefined")) / (24..toString() <= 23..toString() === [ , 0 ][1] < "object"));
}
}
}
} finally {
L10076: for (var brake61 = 5; (c = c + 1) + (J && J[c = 1 + c,
J && (J[{
length: (c = 1 + c, (24..toString() || undefined || !null) & (Infinity % 23..toString() || /[a2][^e]+$/ <= -2))
}.var] &= "bar" / "" - (Infinity_2 >>>= 25 !== -5) !== (b && (b.null = "undefined" >>> ([ , 0 ].length === 2) & false * 25)))]) && brake61 > 0; --brake61) {}
}
}
} finally {
for (var brake63 = 5; a++ + {
b: b--
}[(c = c + 1) + b] && brake63 > 0; --brake63) {
switch (a++ + +b) {
case "a" in {
"\t": Infinity_2 && typeof Infinity_2.get == "function" && --_calls_ >= 0 && Infinity_2.get`${c = 1 + c,
"function" != 23..toString() == "bar" / "b" && ([] + true) % (Infinity ?? 5)}${c = 1 + c,
((38..toString() || 5) <= (-5 !== null)) / ((25 || "number") <= ("c" ^ ""))}`
}:
switch (b += (c = 1 + c, (false == 38..toString() | "number" !== /[a2][^e]+$/) << ("number" > "object",
-2 <= this))) {
default:
c = 1 + c, 4 + -0 > ("object" != -2) === (("foo" ?? 24..toString()) !== ([ , 0 ].length === 2 == "b"));
c = 1 + c, (Infinity_2 && (Infinity_2[b--] |= (c = c + 1,
"") <= (true == "bar"))) >> ((false ?? 5) & (38..toString(),
"foo"));
c = 1 + c, (-3 > 24..toString() === (foo_2 &= undefined << "foo")) <= (24..toString() - "b" === "object" < "undefined");
case --b + (b &= a):
c = 1 + c, (c_2 && (c_2[c = 1 + c, (38..toString() >> "c" ^ (Infinity_2 && ([ Infinity_2[c = 1 + c,
(/[a2][^e]+$/ === "foo", 2 ?? []) !== (("a" || true) !== delete -0)] ] = [ true ^ "undefined" ]))) < (Infinity_2 = 22 < "number" ^ 24..toString() === 2)] = NaN % this)) <= "function" >> undefined != ("foo" | 0) + (38..toString() || []);
break;
case ~((c = c + 1, 25) - (undefined ?? null) << ((c = c + 1,
"bar") > "undefined" ** 24..toString())):
c = 1 + c, (-5 <= Infinity || -3 ^ {}) < ([ , 0 ][1] <= true) * (this >= 22);
c = 1 + c, Infinity_2 && (Infinity_2[a++] -= ((0 || undefined) == -3 + "object") < (("object" ^ 0) & ("undefined" || 24..toString())));
case b--:
c = 1 + c, c = c + 1, this % "bar" <= (b && (b[c = 1 + c,
("" != "b") > 25 % 5, 23..toString() !== "b" !== (23..toString() & -0)] = undefined || "undefined"));
break;
}
switch (/[abc4]/.test(((c = 1 + c, ((22 & -0) <= (-3 >= "bar")) / ((0 === 4) >= (22 || [ 3n ][0] > 2))) || b || 5).toString())) {
case a++ + {
in: (c = 1 + c, (38..toString() === 0 ^ -1 <= -2) == (c = c + 1,
"object") > (Infinity_2 += (22, [ , 0 ].length === 2))),
c: (c = 1 + c, (c_2 ^= 0 === 4 && -5 < -2) && !(c_2 = 25 * ""))
}.length:
break;
case --b + Infinity_2:
c = 1 + c, Infinity_2 && (Infinity_2.done = 38..toString() === "b" ^ (Infinity_2 && ({
0: Infinity_2.done
} = {
0: NaN & 1
})) ^ undefined * "b" - (-1 !== this));
break;
case (c = c + 1) + 24..toString():
c = 1 + c, ([ , 0 ].length === 2) * 38..toString() * (5 < Infinity) << (-2 > "b" !== (/[a2][^e]+$/ === -3));
break;
case 1 === 1 ? a : b:
c = 1 + c, (false << -0 < {} - -4) ** ((c_2 && (c_2[c = 1 + c,
((c_2 && (c_2[c = 1 + c, bar && (bar[a++ + Infinity_2] = (25 >>> 3 > (24..toString() == 4)) * ((Infinity_2 **= /[a2][^e]+$/ ?? 22) * ("foo" != this)))] += 3 - -3)) > (2 < "")) >>> (("bar" ?? []) ^ (c = c + 1,
{}))] += Number(0xdeadn << 16n | 0xbeefn) % 23..toString())) < (4 == {}));
break;
}
a++ + (Infinity_2 && Infinity_2.__proto__);
break;
default:
case [ {
get: (c = 1 + c, void ("c" - -0) > (3 > "foo") >> (3 && false))
}[c = 1 + c, ((this | 5) & !"object") === (undefined || false) / ([] <= ([ , 0 ].length === 2))], ((c = 1 + c,
(c = c + 1, "function") < ({} ^ 24..toString()) !== (-3 !== 2 ^ (5 && this))) || 5).toString()[c = 1 + c,
(23..toString() >= Infinity) / (NaN == [ , 0 ][1]) <= ((bar && (bar[c = 1 + c,
("bar" / "object" <= /[a2][^e]+$/ >> ([ , 0 ].length === 2)) * (Infinity_2 && (Infinity_2.var += (bar = "bar" === undefined) && [ , 0 ][1] % ([ , 0 ].length === 2)))] = 23..toString() < "foo")) < 24..toString() / "bar")], (c = c + 1) + a++ ].done:
{}
{
var a_1 = function L() {}("undefined", "function", 24..toString());
}
c = c + 1;
break;
case --b + (!b || 1).toString()[true]:
try {
c = 1 + c, ((c = c + 1, false) ^ NaN << -2) != (c = c + 1,
false - null);
} catch (M) {
c = 1 + c, (foo_2 && (foo_2[a++ + /[abc4]/.test(((c = 1 + c,
bar && (bar.async <<= "a" % "undefined" < (b && (b.in &&= NaN << 22)) || NaN / "object" <= (-1 ^ -5))) || b || 5).toString())] &= "a" >> [] | 25 << "")) & (bar && (bar.a -= 23..toString() ?? Infinity)) === (4 == -3);
}
;
break;
}
}
c = c + 1;
}
case --b + (typeof f4 == "function" && --_calls_ >= 0 && f4("function", -5, --b + (foo_2 && typeof foo_2.next == "function" && --_calls_ >= 0 && (c_2,
foo_2.next)(5, --b + b, 1)))):
L10077: for (var brake86 = 5; void function N() {
var O;
{
var P = 5;
do {
{
var Q = 5;
L10078: while ((--b + !a ? (c = c + 1) + (c = 1 + c, (2 >>> "function") / (-0 / undefined) << (25 > "c") - (null === -2)) : a++ + --b) && --Q > 0) {
var R = 5;
while (function aa() {} && --R > 0) {
return;
c = 1 + c, (5 % "object" - (5 <= -0)) % ((38..toString() || -1) + (-5 >= 4));
}
}
}
} while ([ --b + b++, typeof f6 == "function" && --_calls_ >= 0 && f6(NaN) ][a++ + {
a: (c = 1 + c, -1 << "bar" << 23..toString() - -2 >= ("object" && 3 || "number" % ([ , 0 ].length === 2)))
}.b] && --P > 0);
}
try {
for (var S = 5; {} in [] && S > 0; --S) {
return --b + --b;
}
} catch (ba) {
class ca {
#foo = typeof a_2 == "string";
3(da, ea) {
this.set = (c = c + 1, Object.isExtensible(b) && (b[c = 1 + c,
(Infinity_2 += (foo_2 = 38..toString() !== false) ^ [ , 0 ][1] * Infinity) & /[a2][^e]+$/ < -2 <= (25 === [ , 0 ][1])] = true >= -3)) ^ (c = c + 1,
"b" !== 1);
this.a = (5 >> undefined | -3 << 5) < (5 | [ , 0 ][1]) * (this || "b");
}
}
{
var T = 5;
L10079: do {
try {
c = 1 + c, (-5 === 0) * (-4 * /[a2][^e]+$/) & ("" >> 2,
38..toString() < 2);
} catch (fa) {} finally {}
} while ({
get: (c = 1 + c, (22 > Infinity || ba && (ba[c = 1 + c,
("undefined" == false) / ("object", /[a2][^e]+$/) < ([ , 0 ][1] || 5) / (true !== -4)] &= 1 !== false)) * ((ba /= 25 & NaN) != (Infinity_2 && (Infinity_2.var = 3 % 3))))
}.next && --T > 0);
}
{
var U = --b + (b /= a);
for (var V in U) {
c = 1 + c;
var W = U[V];
}
}
var N;
} finally {
{}
for (var X = 5; a++ + function ga() {} && X > 0; --X) {
var Y = 5;
while ((c = 1 + c, (c = c + 1, "object" - 22) || this != -3 & NaN >= "") && --Y > 0) {
c = 1 + c, b && (b.Infinity = (38..toString() | null) > "bar" >>> -1 !== -(-4 < -5));
}
}
var Z = typeof f4 == "function" && --_calls_ >= 0 && f4((c = 1 + c,
((2 ^ [ , 0 ].length === 2) !== (c = c + 1, "undefined")) >>> ("bar" - "object" != ($ && ($[c = 1 + c,
Infinity_2 && (Infinity_2[typeof (--b + a++)] = false * -5 & "" - true ?? (!"c" && true >= 24..toString()))] &= "c" <= 2)))), 3), $ = typeof (c = 1 + c,
void ((undefined != 5) << (22, -4)));
{
var _ = 5;
do {
c = 1 + c, -(NaN % ([ , 0 ].length === 2)) == ("number" + 1 | (c = c + 1,
"bar"));
} while ((c = c + 1) + (0 in {
var: (c = 1 + c, ((5 || 25) ?? true << -0) !== (2 || -2) >= (24..toString() === "c")),
"-2": (c = 1 + c, (Infinity_2 && (Infinity_2[[ (c = 1 + c,
~("number" * 23..toString() - ("b" ?? Infinity))), (c = 1 + c,
("" < -0 && true == true) / ((false, 24..toString()) >>> (N && (N.var -= false >> -4)))) ]] += 23..toString() - "a" && "" | "function")) % (([ , 0 ][1] == -1) % (-5) ** ([ , 0 ].length === 2))),
null: (c = 1 + c, (N && (N.NaN /= 22 >>> NaN), c_2 && (c_2[c = 1 + c,
([ , 0 ].length === 2 == Infinity === (-3 | 4)) * ("bar" >> "function" !== 4 * "foo")] -= "a" >> "object")) < ("object" << {}) % ("c" !== -2))
}) && --_ > 0);
}
var N = NaN;
}
}() && brake86 > 0; --brake86) {
var bar = function ha(ia, ja) {}(a++ + (b += a), -5, (c = c + 1) + b);
}
break;
case 5 in [ b ^= a ]:
{
try {
if (/[abc4]/.test((a++ + -((-2 / "" & -1 * [ , 0 ][1]) != ((2 || /[a2][^e]+$/) ?? 22 == "object")) || b || 5).toString())) {
var brake116 = 5;
while (a++ + (b + 1 - .1 - .1 - .1) && --brake116 > 0) {
switch ((c = c + 1) + "foo") {
case a++ + {
static: (c = 1 + c, Infinity_2 = ((Infinity_2 && (Infinity_2[c = 1 + c,
(-4 >= 2 == ("c" ^ "b")) + (~"number" < 1 << this)] = 23..toString() + 5)) & "number" === null) !== (([ , 0 ][1] ^ false) == Number(0xdeadn << 16n | 0xbeefn) >= (-42n).toString()))
}.static:
c = 1 + c, 4 ^ "a" && 23..toString() < "b" || ("foo" || NaN) >= ([] | 3);
c = 1 + c, ((b && (b.b /= ("object", -5))) === (foo_2 = NaN <= -0)) <= (2 >= null && -5 < "foo");
c = 1 + c, ((-5 | -4) == (Infinity_2 = this !== "number")) - ((NaN === this) < (foo_2 && (foo_2.NaN = "function" ^ [])));
break;
case --b + /[abc4]/.test(((c = 1 + c, (3 % false == (foo_2 = [ , 0 ][1] & /[a2][^e]+$/)) / (c = c + 1,
{} & {})) || b || 5).toString()):
c = 1 + c, (c_2 && (c_2.get += "foo" | 38..toString() ?? (Infinity_2 && (Infinity_2.b >>>= /[a2][^e]+$/ > !0o644n)))) != (25 || "") < (5 < "foo");
c = 1 + c, ("function" < 1 > 23..toString() * Infinity) + !([ , 0 ].length === 2 === false);
break;
default:
c = 1 + c, (c = c + 1, c = c + 1, "b") ^ -3 >= NaN == null < 2;
c = 1 + c, (2 | 25) << /[a2][^e]+$/ * "number" << ("b" | 23..toString(),
-1 >>> undefined);
c = 1 + c, c = c + 1, ("a" && 3) >= (bar && (bar.var &= NaN * 1));
case a++ + {
in: (c = 1 + c, ((c_2 && (c_2[c = 1 + c, (true == "c") < (0 != -1) ?? ("b" < 22) << (foo_2 = Infinity ^ "foo")] += -4 % "a")) / (c = c + 1,
3)) ** (("c" || "c") >>> -0 + null)),
"-2": (c = 1 + c, (("number" << 5) - (22 === true)) * ((c = c + 1,
"number") && void 5))
}[c = 1 + c, c_2 = (Infinity >> "b" >>> ("foo" < "a")) - (-1 / "function",
-5 >= -2)]:
c = 1 + c, (c_2 && (c_2[c = 1 + c, ("c" != ([ , 0 ].length === 2),
4 & 38..toString()) - (22 + 24..toString()) * (-4 <= 23..toString())] = null && null)) === 2 >= true ^ ((foo_2 && (foo_2.Infinity += "foo" ?? true)) ?? (b = NaN & "bar"));
break;
}
}
} else {
(c = c + 1) + (0 === 1 ? a : b);
}
} catch (ka) {} finally {}
}
break;
case a++ + (typeof bar == "function" && --_calls_ >= 0 && bar("function")):
{
var brake128 = 5;
while ((c = c + 1) + /[abc4]/g.exec(((c = c + 1) + foo_2 || b || 5).toString()) && --brake128 > 0) {
L10080: for (var brake129 = 5; --b + ((bar && (bar[b += (c = 1 + c,
(undefined - -3) % ("function" * {}) << ((foo_2 = [] ^ this) >= 2 + true))] ??= false == 1 ^ (c_2 = "object" ?? /[a2][^e]+$/))) > (-5 | "bar" || true % (-42n).toString())) && brake129 > 0; --brake129) {
continue;
}
}
}
c = c + 1;
{
var brake132 = 5;
while ((c = c + 1) + b-- && --brake132 > 0) {
bar;
}
}
break;
}
break;
}
var a_1 = typeof a_2 == "function" && --_calls_ >= 0 && a_2(++a, a++ + (foo_2 && typeof foo_2.Infinity == "function" && --_calls_ >= 0 && foo_2.Infinity(1 === 1 ? a : b, "b"))), a_2 = (c = c + 1) + [ (c = c + 1) + (b && b.var), (c = c + 1) + (foo_2 = typeof foo === "special"), typeof bar == "function" && --_calls_ >= 0 && bar(a++ + void function la() {
try {
if (b = a) {
switch (c = 1 + c, b >>= ("c" / -0 + ({} > [ , 0 ][1])) % (-1 == 38..toString() || "undefined" >> "a")) {
case c = 1 + c, ("undefined" && this) % (-5 && 23..toString()) ^ 25 + 2 - !-0:
;
break;
default:
;
case c = 1 + c, !("object" || "bar") === ((22 || "number") && -2 + 5):
;
break;
case c = 1 + c, (Infinity == ([ , 0 ].length === 2)) * (25 || [ , 0 ][1]) ^ (na && ({
done: na.undefined
} = {
done: (-0 ?? -1) < (c = c + 1, "object")
})):
;
break;
}
} else {
var ma = 5;
do {
c = 1 + c, (bar && (bar.set += -3 != 5)) < void "", ([ , 0 ][1] | 25) & "object" !== 0;
} while ((c = 1 + c, (0 / "c" < ("bar" | {})) >> (1 <= 5 != (-2 && -5))) && --ma > 0);
}
} catch (pa) {}
{
var na = function qa(ra, sa) {
c = 1 + c, (([ , 0 ][1] | -5) ^ ("foo", 1)) == ({} < 22, c = c + 1,
[ , 0 ].length === 2);
}((c = c + 1) + (b = (c = 1 + c, undefined >> NaN >= ("foo" !== "number") < (0 >= 2 || 4 ^ [ , 0 ].length === 2))), "bar");
}
c = c + 1;
try {
switch (--b + (c = 1 + c, (b /= (38..toString() ^ "undefined") - ([ , 0 ].length === 2,
"b")) ^ (null >>> undefined) * (undefined || ""))) {
case na && na.value:
break;
default:
case (ta => {})(false):
case --b + [ (c = 1 + c, (-5 >= "b" ^ Infinity >= 23..toString()) * ((-5 ?? []) != null > /[a2][^e]+$/)), (c = 1 + c,
23..toString() === /[a2][^e]+$/ != ("number" ^ 0) ^ (null || 0) + (-1 << {})), (c = 1 + c,
(c_2 && ([ c_2[(c = c + 1) + ("a" in [ ...[ (c = 1 + c, (-1 % 23..toString() + (b = -1 ^ 2)) * (void -2 * (5 >> "function"))) ], (c = 1 + c,
(([ , 0 ].length === 2 && [ , 0 ][1]) == 2 / "a") - ((Infinity_2 && (Infinity_2.a = 5 ^ true)) !== ([ , 0 ].length === 2 != "number"))) ])] ] = [ "" < -5 || true != /[a2][^e]+$/ ])) | (b && (b[--b + void (((bar && (bar.done &&= {} === 24..toString())) !== -3 >> {}) - ((/[a2][^e]+$/ ^ {}) === ([ , 0 ][1],
-5)))] += ([ , 0 ].length === 2) * 2 == (foo_2 = 24..toString() / "undefined")))), (c = 1 + c,
"c" === "" ^ (c = c + 1, /[a2][^e]+$/) ^ "object" >>> 1 !== ({} ^ undefined)), (c = 1 + c,
c = c + 1, delete 0 / (Number(0xdeadn << 16n | 0xbeefn) * {})) ].var:
c = 1 + c, (bar = 4 > 0, 2 % 38..toString()) | (-3, 24..toString()) === 1 >> 25;
break;
}
} catch (ua) {
switch (c = 1 + c, (na && (na.get -= "" << Infinity)) != /[a2][^e]+$/ <= /[a2][^e]+$/ == (a_2 = (this - "number",
2 === 0))) {
case c = 1 + c, -(/[a2][^e]+$/ ^ [ , 0 ][1]) === ({} | {}) / ([] << "function"):
;
break;
case c = 1 + c, (na && (na.async = !"b" >> 5 ** 24..toString())) / ((3 !== null) > -1 >>> -0):
;
break;
case c = 1 + c, ("object" ^ 23..toString()) !== ([ , 0 ].length === 2) > -3 ^ (ua = void false >= (foo_2 && (foo_2[c = 1 + c,
([ , 0 ][1] / "c" >> (3 <= "undefined")) + (c = c + 1, 38..toString()) / (ua && (ua[c = 1 + c,
("foo" >>> 4) % (NaN & 22) ^ (-0 ?? /[a2][^e]+$/ ?? Infinity <= -5)] += {} + "bar"))] ^= false !== ([ , 0 ].length === 2)))):
;
break;
default:
;
}
} finally {
c = 1 + c, na && (na[--b + (typeof bar != "unknown")] = -4 >>> "b" <= ("" && true) || (0 | "c") ^ (b && (b.NaN = [ , 0 ][1] % true)));
{
return;
c = 1 + c, (b && (b.value += [ , 0 ][1] === -0 ?? ("foo" && 4))) != (c = c + 1,
"") < 3 % -2;
}
{
var oa = 5;
L10081: do {
c = 1 + c, (c = c + 1, "foo" != false) ** ((-0 ^ "b") <= ("b" | undefined));
} while ((c = 1 + c, 0 >= -2 | [ , 0 ][1] ^ null && ("function" ^ -1) > (([ , 0 ].length === 2) > -3)) && --oa > 0);
}
{
return;
c = 1 + c, (-1 | "" || ("" || this)) + (("" != 38..toString()) << (4 > 22));
}
}
}(), 22, 38..toString()) ];
console.log(null, a, b, c, Infinity, NaN, undefined);
|
// reduced test case (output will differ)
var _calls_ = 10, a = 100, b = 10, c = 0;
var Infinity_2 = ((--b) + ((((!([]))!=(this^"a")) + (("undefined">2)|(this<<"foo")))));
switch (((c = c + 1) + ("function"))) {
case (22):
{var c_2 = function f0(){
}
("function");}
if (((c = c + 1) + ([(c_2 && typeof c_2.b == "function" && --_calls_ >= 0 && c_2.b("foo"))].in)))for (var brake5 = 5; (!((((Infinity_2&=("foo",[]))^("number"==0x26.toString()))*((3^2)==(Infinity_2 && (Infinity_2.done=(25. ===""))))))) && brake5 > 0; --brake5)c = c + 1; else for (var brake7 = 5; (b + 1 - 0.1 - 0.1 - 0.1) && brake7 > 0; --brake7)for (var brake8 = 5; (--(b)) && brake8 > 0; --brake8){var brake9 = 5; do {((--b) + ([((-((c = c + 1, (22%23..toString())))))]));} while (((c = c + 1) + (((c_2=((~(0x26.toString()))^(this - (-2))))>>(("undefined">"function")>>([] - []))))) && --brake9 > 0);}
{var expr11 = (Infinity); for (var key11 in expr11) {{var brake12 = 5; while ((a++ + ( ((delete ((((25. &({}))>=(NaN - 2)) + ((({})>=({}))===(Infinity_2+=(({})*23..toString())))))) || a || 3).toString() )) && --brake12 > 0){
(typeof f1 == "function" && --_calls_ >= 0 && f1(((--b) + ((-0)))));
}}}}
break;
case (a++ + (delete b)):
break;
case ((c = c + 1) + ("b")):
{var brake15 = 5; do {var foo_2 = (1 === 1 ? a : b);} while ((((c = c + 1) + (--/* ignore */b)) ? ((--b) + (({
})[(foo_2 && foo_2[(typeof f2 == "function" && --_calls_ >= 0 && f2())])])) : ((--b) + (foo_2 && typeof foo_2.b == "function" && --_calls_ >= 0 && foo_2.b()))) && --brake15 > 0);}
var Infinity_2 = (a++ + (Infinity_2 && typeof Infinity_2.async == "function" && --_calls_ >= 0 && Infinity_2.async((new function (Infinity){
this[((typeof Infinity_2_1 != "special"))]^=(((((("number"<"object")!==(23..toString()>true))<(foo_2^=(([,0][1]>>>"undefined"),("a"=="foo"))))|(((4>=(-0))==(22<"object")),((!(this))&&(3>>>"number"))))&&((((3^"bar")===(23..toString() - 24 .toString()))&((22||(-4))&(false&&"function"))) + (((foo_2|=(false&[]))^((-1)&"number"))||(foo_2 && (foo_2.get=((foo_2 && (foo_2[(c = 1 + c, ((("b"&3) + (c = c + 1, 23..toString()))>>((false>[])<("foo" + 24 .toString()))))]=([]!="")))&&("b"&"object"))))))),(((((4/4)!==(({})==="number"))<<(Infinity_2 && (Infinity_2[((c = c + 1) + (a++))]&&=((Infinity_2+=("bar"||"c")) + (null>true)))))>>>((c = c + 1, ((-4)^(-1))) - (("c"^false)^(({})|(-3)))))^(((( /[a2][^e]+$/ <4)|(24 .toString()!==[,0][1]))>=((null<<NaN)&(1>=24 .toString())))!=((("b"===({}))===("function"&undefined))>>((([,0].length === 2)^ /[a2][^e]+$/ )<<("object"!=25. ))))));
if ((({
c: ((--b) + (({}))),
})[((c = c + 1) + ([(c = 1 + c, ((Infinity && (Infinity[((c = c + 1) + (typeof f1 == "function" && --_calls_ >= 0 && f1()))]*=((c_2 && (c_2.b=(22<<25. )))<=(null&"a"))))===((c = c + 1, 2)!==(Infinity_2 && (Infinity_2.NaN=([]|"function")))))), (c = 1 + c, (((25. %null)<(([,0].length === 2)||25. )) + ((foo_2 && (foo_2.get=("function"<<"bar")))<((-1)%"b")))), (c = 1 + c, ((("object"|24 .toString())!==((-2)>(-4)))>=((2*null)>((-5)!=0x26.toString()))))]))])){var brake19 = 5; L10069: do {{var Infinity_2_2 = function f1(let_2){
;
}
();}} while (((c = c + 1) + (((c = 1 + c, (c_2 && (c_2.__proto__=(((void ((-2)))<=(NaN>>(-4)))&(!(((-42n).toString()>=0x26.toString()))))))) ? (c = 1 + c, (((Infinity_2=(Infinity^"foo"))*(false&"a")) - (Infinity_2 && (Infinity_2[(a++ + (b = a))]=(("a"==0)==(undefined<"undefined")))))) : (c = 1 + c, (((([,0].length === 2)!=25. )^("object"||null))>=((25. !=this)||("number"%"function"))))) ? ((((([,0].length === 2) + (-1))&(c = c + 1, "number"))==(([,0][1]<(-3))>>>((-2)!==false)))) : (typeof Infinity_2 == "function" && --_calls_ >= 0 && Infinity_2()))) && --brake19 > 0);} else {var foo_2 = function b_2(){
(c = 1 + c, (((([,0].length === 2)<[,0][1])||(+(null))) + ((false<=(-5))|("c",[]))));
(c = 1 + c, (((22!=null)*((-2)!=this))&((23..toString()/Infinity)==((-0)===[]))));
(c = 1 + c, ((( /[a2][^e]+$/ *[])>>>(void (false)))<=((0x26.toString()<<22)!=(1||(-5)))));
}
("c", "object");}
}(1))))), bar = (((("object"*(-1))<<(Infinity_2 && (Infinity_2[(c = 1 + c, (bar && (bar[(a++ + (a--))]=((c_2 && ([ c_2.next ] = [ ((undefined>>(-0))>>(Infinity>>>(-5))) ]))>>>(((-0)>>true)<(({})|2))))))]=("undefined"&&"object"))))!==(("c"*(-4))%((-1) - true))));
;
/* fall-through */
case ((c = c + 1) + (~a)):
{var b = function f2(arguments, foo_1){
class C0 {
Infinity = (--/* ignore */b);
}
{
{var undefined_1 = function f3(bar_1, bar_2, yield_2){
L10070: for (var brake29 = 5; (c = 1 + c, (((""&&0)!==(22===false))!=((foo_1 && ({ '': foo_1[(c = 1 + c, (bar&&=(((5 - 24 .toString())^(0x26.toString()>>>Number(0XDEADn << 16n | 0xbeefn)))>>(("a" + 22) + (5%true)))))] } = { '': ("b">4) }))<<("object">"c")))) && brake29 > 0; --brake29)(c = 1 + c, (((NaN&(-5))&(c = c + 1, 24 .toString()))%(( /[a2][^e]+$/ ^23..toString())===((-4)|(-1)))));
{var brake31 = 5; L10071: while ((c = 1 + c, ((("b"/Infinity)>=(({})!=="number"))>>>((c = c + 1, "a")<=("number"<=(-0))))) && --brake31 > 0)(c = 1 + c, ((("a"===[,0][1])^(([,0].length === 2)^"function"))&&((bar_1 && (bar_1[(c = 1 + c, (((([,0].length === 2)!=="foo"),(([,0].length === 2)<<2))&(-((3<<(-3))))))]=((-5)!==25. )))%((-4)!="bar"))));}
var await_1;
}
();}
{var brake34 = 5; do {{var expr35 = ((--b) + (typeof f3 == "function" && --_calls_ >= 0 && f3((c = 1 + c, (c_2**=(((c = c + 1, 0x26.toString())<("a"??(-4)))<<((2*24 .toString())>>>([]!==[])))))))); for (var [ key35 ] in expr35) {{var brake36 = 5; while ((a++ + (Infinity_2)) && --brake36 > 0)/*3*/return;}}}} while ((a++ + (2 in [((c = c + 1) + ( ((c = 1 + c, ((("function">=this) + ([]>"a"))<<((undefined<<undefined)&&(([,0].length === 2)&"foo")))) || a || 3).toString() )), ((c = c + 1) + ([]))])) && --brake34 > 0);}
{var brake38 = 5; while ((a++) && --brake38 > 0){var brake39 = 5; L10072: do {{var brake40 = 5; do {{var brake41 = 5; L10073: while ((c = 1 + c, ((c = c + 1, ((-3)&([,0].length === 2)))&&((true<=[,0][1])!=(bar && (bar.c+=(24 .toString()!==1)))))) && --brake41 > 0)(c = 1 + c, (((undefined&"object")*(!([,0][1])))<=((24 .toString()>>"foo")>>(22!== /[a2][^e]+$/ ))));}} while ((a++) && --brake40 > 0);}} while (((--b) + (typeof foo_2 == "function" && --_calls_ >= 0 && foo_2())) && --brake39 > 0);}}
{var brake43 = 5; while (((--b) + (25. in [])) && --brake43 > 0){
{var brake45 = 5; do {(c = 1 + c, (((void (0x26.toString()))>>>(foo_1 && (foo_1.var=(NaN===23..toString()))))>((22 + null)||(NaN&& /[a2][^e]+$/ ))));} while ((c = 1 + c, ((("b">>>3)%(1<null))/((({})&&"a"),(NaN,(-2))))) && --brake45 > 0);}
}}
}
{var a_2 = function f4(foo_1){
}
(this, ...("" + c_2));}
}
("object");}
if ((Infinity_2 && Infinity_2[([((bar && (bar.in+=(((23..toString()== /[a2][^e]+$/ )>(0>(-0)))/(-((NaN|25. ))))))), ([(b ||= a)][(a++ + (((c = c + 1) + ([((-0) in [(c = 1 + c, (((false??undefined)>>>((-1) - (-0))),((0x26.toString()^undefined)&(0x26.toString()<0))))]), ...("" + Infinity_2)][(a/* ignore */++)]))))])][((c = c + 1) + (-(((c_2 && (c_2.get+=((+((-5)))==("a"%0))))>(b && (b[(c_2)]+=(("undefined"&true)|(c = c + 1, "number"))))))))])]))([(+((((({})>>([3n][0] > 2))|("foo" + (-0)))&&((c = c + 1, ({}))*( /[a2][^e]+$/ >=1)))))][((--b) + (--(b)))]);
switch (((--b) + (({
...(((--b) + ("c"))),
})))) {
default:
try {c = c + 1; } catch (b_1) {
for (var brake53 = 5; (b = a) && brake53 > 0; --brake53)try {{var expr55 = ((c = c + 1) + (foo_2)); L10074: for (let key55 in expr55) {c = 1 + c; var Infinity_2_2 = expr55[key55]; try {{var brake57 = 5; L10075: do {(c = 1 + c, (((1*5)>("function"<=undefined))*(~(((-4)<=(-3))))));} while ((c = 1 + c, ((!(([,0][1],0)))||(b+=(((-4)^(-4))|(undefined!=="bar"))))) && --brake57 > 0);} } catch (c_2) {
(c = 1 + c, ((((-3)&&({}))>=(true^25. ))||((Infinity - (-5))>(void ((-1))))));
(c = 1 + c, (Infinity_2 && (Infinity_2[((c = c + 1) + ((((!("a"))&(0x26.toString()* /[a2][^e]+$/ ))??(((-0)&&true)<=(({})==1)))))]*=((("undefined"=="c") - ("undefined">"undefined"))/((24 .toString()<=23..toString())===([,0][1]<"object"))))));
}}} } finally {
L10076: for (var brake61 = 5; ((c = c + 1) + (b_1 && b_1[(c = 1 + c, (b_1 && (b_1[(({
length: (c = 1 + c, (((24 .toString()||undefined)||(!(null)))&((Infinity%23..toString())||( /[a2][^e]+$/ <=(-2))))),
}).var)]&=((("bar"/"") - (Infinity_2>>>=(25. !==(-5))))!==(b && (b.null=(("undefined">>>([,0].length === 2))&(false*25. ))))))))])) && brake61 > 0; --brake61){
;}
}
} finally {
for (var brake63 = 5; (a++ + (({
b: (b--),
})[((c = c + 1) + (b))])) && brake63 > 0; --brake63)switch ((a++ + (+b))) {
case ("a" in ({
" ": (Infinity_2 && typeof Infinity_2.get == "function" && --_calls_ >= 0 && Infinity_2.get`${(c = 1 + c, ((("function"!=23..toString())==("bar"/"b"))&&(([] + true)%(Infinity??5))))}${(c = 1 + c, (((0x26.toString()||5)<=((-5)!==null))/((25. ||"number")<=("c"^""))))}`),
})):
switch ((b+=(c = 1 + c, (((false==0x26.toString())|("number"!== /[a2][^e]+$/ ))<<(("number">"object"),((-2)<=this)))))) {
default:
(c = 1 + c, (((4 + (-0))>("object"!=(-2)))===(("foo"??24 .toString())!==(([,0].length === 2)=="b"))));
(c = 1 + c, ((Infinity_2 && (Infinity_2[(b--)]|=((c = c + 1, "")<=(true=="bar"))))>>((false??5)&(0x26.toString(),"foo"))));
(c = 1 + c, ((((-3)>24 .toString())===(foo_2&=(undefined<<"foo")))<=((24 .toString() - "b")===("object"<"undefined"))));
case ((--b) + (b &= a)):
(c = 1 + c, (((c_2 && (c_2[(c = 1 + c, (((0x26.toString()>>"c")^(Infinity_2 && ([ Infinity_2[(c = 1 + c, ((( /[a2][^e]+$/ ==="foo"),(2??[]))!==(("a"||true)!==(delete ((-0))))))] ] = [ (true^"undefined") ])))<(Infinity_2=((22<"number")^(24 .toString()===2)))))]=(NaN%this)))<=("function">>undefined))!=(("foo"|0) + (0x26.toString()||[]))));
break;
case (~((((c = c + 1, 25. ) - (undefined??null))<<((c = c + 1, "bar")>("undefined"**24 .toString()))))):
(c = 1 + c, ((((-5)<=Infinity)||((-3)^({})))<(([,0][1]<=true)*(this>=22))));
(c = 1 + c, (Infinity_2 && (Infinity_2[(a++)]-=(((0||undefined)==((-3) + "object"))<(("object"^0)&("undefined"||24 .toString()))))));
/* fall-through */
case (b--):
(c = 1 + c, (c = c + 1, ((this%"bar")<=(b && (b[(c = 1 + c, (((""!="b")>(25. %5)),((23..toString()!=="b")!==(23..toString()&(-0)))))]=(undefined||"undefined"))))));
break;
}
switch (( /[abc4]/.test(((c = 1 + c, (((22&(-0))<=((-3)>="bar"))/((0===4)>=(22||([3n][0] > 2))))) || b || 5).toString()) )) {
case (a++ + (({
in: (c = 1 + c, (((0x26.toString()===0)^((-1)<=(-2)))==((c = c + 1, "object")>(Infinity_2+=(22,([,0].length === 2)))))),
c: (c = 1 + c, ((c_2^=((0===4)&&((-5)<(-2))))&&(!((c_2=(25. *"")))))),
}).length)):
break;
case ((--b) + (Infinity_2)):
(c = 1 + c, (Infinity_2 && (Infinity_2.done=(((0x26.toString()==="b")^(Infinity_2 && ({ 0: Infinity_2.done } = { 0: (NaN&1) })))^((undefined*"b") - ((-1)!==this))))));
break;
case ((c = c + 1) + (24 .toString())):
(c = 1 + c, (((([,0].length === 2)*0x26.toString())*(5<Infinity))<<(((-2)>"b")!==( /[a2][^e]+$/ ===(-3)))));
break;
case (1 === 1 ? a : b):
(c = 1 + c, (((false<<(-0))<(({}) - (-4)))**((c_2 && (c_2[(c = 1 + c, (((c_2 && (c_2[(c = 1 + c, (bar && (bar[(a++ + (Infinity_2))]=(((25. >>>3)>(24 .toString()==4))*((Infinity_2**=( /[a2][^e]+$/ ??22))*("foo"!=this))))))]+=(3 - (-3))))>(2<""))>>>(("bar"??[])^(c = c + 1, ({})))))]+=(Number(0XDEADn << 16n | 0xbeefn)%23..toString())))<(4==({})))));
break;
}
(a++ + (Infinity_2 && Infinity_2.__proto__));
break;
default:
case ([(({
get: (c = 1 + c, ((void (("c" - (-0))))>((3>"foo")>>(3&&false)))),
})[(c = 1 + c, (((this|5)&(!("object")))===((undefined||false)/([]<=([,0].length === 2)))))]), ( ((c = 1 + c, (((c = c + 1, "function")<(({})^24 .toString()))!==(((-3)!==2)^(5&&this)))) || 5).toString()[(c = 1 + c, (((23..toString()>=Infinity)/(NaN==[,0][1]))<=((bar && (bar[(c = 1 + c, ((("bar"/"object")<=( /[a2][^e]+$/ >>([,0].length === 2)))*(Infinity_2 && (Infinity_2.var+=((bar=("bar"===undefined))&&([,0][1]%([,0].length === 2)))))))]=(23..toString()<"foo")))<(24 .toString()/"bar"))))] ), ((c = c + 1) + (a/* ignore */++))].done):
{
}
{var a_1 = function f5(){
;
}
("undefined", "function", 24 .toString());}
c = c + 1;
break;
case ((--b) + ( ((!b) || 1).toString()[(true)] )):
try {(c = 1 + c, (((c = c + 1, false)^(NaN<<(-2)))!=(c = c + 1, (false - null)))); } catch (await) {
(c = 1 + c, ((foo_2 && (foo_2[(a++ + ( /[abc4]/.test(((c = 1 + c, (bar && (bar.async<<=((("a"%"undefined")<(b && (b.in&&=(NaN<<22))))||((NaN/"object")<=((-1)^(-5))))))) || b || 5).toString()) ))]&=(("a">>[])|(25. <<""))))&((bar && (bar.a-=(23..toString()??Infinity)))===(4==(-3)))));
}
;
break;
}
c = c + 1;
}
case ((--b) + (typeof f4 == "function" && --_calls_ >= 0 && f4("function", (-5), ((--b) + (foo_2 && typeof foo_2.next == "function" && --_calls_ >= 0 && ((c_2), foo_2.next)(5, ((--b) + (b)), 1)))))):
L10077: for (var brake86 = 5; (void function yield_1(){
;
var async;
{var brake89 = 5; do {{var brake90 = 5; L10078: while ((((--b) + (!a)) ? ((c = c + 1) + ((c = 1 + c, (((2>>>"function")/((-0)/undefined))<<((25. >"c") - (null===(-2))))))) : (a++ + (--(b)))) && --brake90 > 0){var brake91 = 5; while ((function yield_1(){
;
}) && --brake91 > 0){ /*2*/ return
(c = 1 + c, (((5%"object") - (5<=(-0)))%((0x26.toString()||(-1)) + ((-5)>=4))))}}}} while (([((--b) + (b++)), (typeof f6 == "function" && --_calls_ >= 0 && f6(NaN))][(a++ + (({
a: (c = 1 + c, ((((-1)<<"bar")<<(23..toString() - (-2)))>=(("object"&&3)||("number"%([,0].length === 2))))),
}).b))]) && --brake89 > 0);}
;
try {for (var brake95 = 5; (({}) in []) && brake95 > 0; --brake95){ return ((--b) + (--(b)))} } catch (c_2) { class C1 {
#foo = ((typeof a_2 == "string"));
3(b_2, await_1){
this.set=((c = c + 1, (Object.isExtensible(b) && (b[(c = 1 + c, ((Infinity_2+=((foo_2=(0x26.toString()!==false))^([,0][1]*Infinity)))&(( /[a2][^e]+$/ <(-2))<=(25. ===[,0][1]))))]=(true>=(-3)))))^(c = c + 1, ("b"!==1)));
this.a=(((5>>undefined)|((-3)<<5))<((5|[,0][1])*(this||"b")));
;
}
}
{var brake98 = 5; L10079: do {try {(c = 1 + c, ((((-5)===0)*((-4)* /[a2][^e]+$/ ))&(("">>2),(0x26.toString()<2)))); } catch (c_2) {
; } finally {
; }} while ((({
get: (c = 1 + c, (((22>Infinity)||(c_2 && (c_2[(c = 1 + c, ((("undefined"==false)/("object", /[a2][^e]+$/ ))<(([,0][1]||5)/(true!==(-4)))))]&=(1!==false))))*((c_2/=(25. &NaN))!=(Infinity_2 && (Infinity_2.var=(3%3)))))),
}).next) && --brake98 > 0);}
{var expr101 = ((--b) + (b /= a)); for (var key101 in expr101) {c = 1 + c; var undefined_2 = expr101[key101]; ;}}
var yield_1;
} finally {
{
}
for (var brake105 = 5; (a++ + ((function b_1(){
;
}))) && brake105 > 0; --brake105){var brake106 = 5; while ((c = 1 + c, ((c = c + 1, ("object" - 22))||((this!=(-3))&(NaN>="")))) && --brake106 > 0)(c = 1 + c, (b && (b.Infinity=(((0x26.toString()|null)>("bar">>>(-1)))!==(-(((-4)<(-5))))))));}
var b_2 = (typeof f4 == "function" && --_calls_ >= 0 && f4((c = 1 + c, (((2^([,0].length === 2))!==(c = c + 1, "undefined"))>>>(("bar" - "object")!=(a_1 && (a_1[(c = 1 + c, (Infinity_2 && (Infinity_2[((typeof ((--b) + (a/* ignore */++))))]=(((false*(-5))&("" - true))??((!("c"))&&(true>=24 .toString()))))))]&=("c"<=2)))))), 3,)), a_1 = ((typeof (c = 1 + c, (void (((undefined!=5)<<(22,(-4))))))));
{var brake109 = 5; do {(c = 1 + c, ((-((NaN%([,0].length === 2))))==(("number" + 1)|(c = c + 1, "bar"))));} while (((c = c + 1) + (0 in ({
var: (c = 1 + c, (((5||25. )??(true<<(-0)))!==((2||(-2))>=(24 .toString()==="c")))),
"-2": (c = 1 + c, ((Infinity_2 && (Infinity_2[([(c = 1 + c, (~((("number"*23..toString()) - ("b"??Infinity))))), (c = 1 + c, (((""<(-0))&&(true==true))/((false,24 .toString())>>>(yield_1 && (yield_1.var-=(false>>(-4)))))))])]+=((23..toString() - "a")&&(""|"function"))))%(([,0][1]==(-1))%((-5)**([,0].length === 2))))),
null: (c = 1 + c, (((yield_1 && (yield_1.NaN/=(22>>>NaN))),(c_2 && (c_2[(c = 1 + c, (((([,0].length === 2)==Infinity)===((-3)|4))*(("bar">>"function")!==(4*"foo"))))]-=("a">>"object"))))<(("object"<<({}))%("c"!==(-2))))),
}))) && --brake109 > 0);}
var yield_1 = (NaN);
}
}()) && brake86 > 0; --brake86){var bar = function f6(bar_2, foo){
}
((a++ + (b += a)), (-5), ((c = c + 1) + (b)));}
break;
case (5 in [(b ^= a)]):
{
try {if (( /[abc4]/.test(((a++ + (-(((((-2)/"")&((-1)*[,0][1]))!=((2|| /[a2][^e]+$/ )??(22=="object")))))) || b || 5).toString()) )){var brake116 = 5; while ((a++ + (b + 1 - 0.1 - 0.1 - 0.1)) && --brake116 > 0)switch (((c = c + 1) + ("foo"))) {
case (a++ + (({
static: (c = 1 + c, (Infinity_2=(((Infinity_2 && (Infinity_2[(c = 1 + c, ((((-4)>=2)==("c"^"b")) + ((~("number"))<(1<<this))))]=(23..toString() + 5)))&("number"===null))!==(([,0][1]^false)==(Number(0XDEADn << 16n | 0xbeefn)>=(-42n).toString()))))),
}).static)):
(c = 1 + c, (((4^"a")&&(23..toString()<"b"))||(("foo"||NaN)>=([]|3))));
(c = 1 + c, (((b && (b.b/=("object",(-5))))===(foo_2=(NaN<=(-0))))<=((2>=null)&&((-5)<"foo"))));
(c = 1 + c, ((((-5)|(-4))==(Infinity_2=(this!=="number"))) - ((NaN===this)<(foo_2 && (foo_2.NaN=("function"^[]))))));
break;
case ((--b) + ( /[abc4]/.test(((c = 1 + c, (((3%false)==(foo_2=([,0][1]& /[a2][^e]+$/ )))/(c = c + 1, (({})&({}))))) || b || 5).toString()) )):
(c = 1 + c, ((c_2 && (c_2.get+=(("foo"|0x26.toString())??(Infinity_2 && (Infinity_2.b>>>=( /[a2][^e]+$/ >(!0o644n)))))))!=((25. ||"")<(5<"foo"))));
(c = 1 + c, ((("function"<1)>(23..toString()*Infinity)) + (!((([,0].length === 2)===false)))));
break;
default:
(c = 1 + c, ((c = c + 1, (c = c + 1, "b"))^(((-3)>=NaN)==(null<2))));
(c = 1 + c, (((2|25. )<<( /[a2][^e]+$/ *"number"))<<(("b"|23..toString()),((-1)>>>undefined))));
(c = 1 + c, (c = c + 1, (("a"&&3)>=(bar && (bar.var&=(NaN*1))))));
case (a++ + (({
in: (c = 1 + c, (((c_2 && (c_2[(c = 1 + c, (((true=="c")<(0!=(-1)))??(("b"<22)<<(foo_2=(Infinity^"foo")))))]+=((-4)%"a")))/(c = c + 1, 3))**(("c"||"c")>>>((-0) + null)))),
"-2": (c = 1 + c, ((("number"<<5) - (22===true))*((c = c + 1, "number")&&(void (5))))),
})[(c = 1 + c, (c_2=(((Infinity>>"b")>>>("foo"<"a")) - (((-1)/"function"),((-5)>=(-2))))))])):
(c = 1 + c, (((c_2 && (c_2[(c = 1 + c, ((("c"!=([,0].length === 2)),(4&0x26.toString())) - ((22 + 24 .toString())*((-4)<=23..toString()))))]=(null&&null)))===(2>=true))^((foo_2 && (foo_2.Infinity+=("foo"??true)))??(b=(NaN&"bar")))));
break;
}} else ((c = c + 1) + (0 === 1 ? a : b)); } catch (c_2_2) {
} finally {
}
}
break;
case (a++ + (typeof bar == "function" && --_calls_ >= 0 && bar("function"))):
{var brake128 = 5; while (((c = c + 1) + ( /[abc4]/g.exec((((c = c + 1) + (foo_2)) || b || 5).toString()) )) && --brake128 > 0)L10080: for (var brake129 = 5; ((--b) + (((bar && (bar[(b+=(c = 1 + c, (((undefined - (-3))%("function"*({})))<<((foo_2=([]^this))>=(2 + true)))))]??=((false==1)^(c_2=("object"?? /[a2][^e]+$/ )))))>(((-5)|"bar")||(true%(-42n).toString()))))) && brake129 > 0; --brake129)continue;}
c = c + 1;
{var brake132 = 5; while (((c = c + 1) + (b--)) && --brake132 > 0)(bar);}
break;
}
break;
}
var a_1 = (typeof a_2 == "function" && --_calls_ >= 0 && a_2((++/* ignore */a), (a++ + (foo_2 && typeof foo_2.Infinity == "function" && --_calls_ >= 0 && foo_2.Infinity((1 === 1 ? a : b), "b"))))), a_2 = ((c = c + 1) + ([((c = c + 1) + (b && b.var)), ((c = c + 1) + (foo_2=((typeof foo === "special")))), (typeof bar == "function" && --_calls_ >= 0 && bar((a++ + ((void function c_2_2(){
;
try {if ((b = a))switch ((c = 1 + c, (b>>=((("c"/(-0)) + (({})>[,0][1]))%(((-1)==0x26.toString())||("undefined">>"a")))))) {
case (c = 1 + c, ((("undefined"&&this)%((-5)&&23..toString()))^((25. + 2) - (!((-0)))))):
;
break;
default:
;
case (c = 1 + c, ((!(("object"||"bar")))===((22||"number")&&((-2) + 5)))):
;
break;
case (c = 1 + c, (((Infinity==([,0].length === 2))*(25. ||[,0][1]))^(a_1 && ({ done: a_1.undefined } = { done: (((-0)??(-1))<(c = c + 1, "object")) })))):
;
break;
} else {var brake139 = 5; do {(c = 1 + c, (((bar && (bar.set+=((-3)!=5)))<(void (""))),(([,0][1]|25. )&("object"!==0))));} while ((c = 1 + c, (((0/"c")<("bar"|({})))>>((1<=5)!=((-2)&&(-5))))) && --brake139 > 0);} } catch (Infinity_2) {
}
{var a_1 = function f7(Infinity_2_2, Infinity_2_1,){
(c = 1 + c, ((([,0][1]|(-5))^("foo",1))==((({})<22),(c = c + 1, ([,0].length === 2)))));
}
(((c = c + 1) + (b=(c = 1 + c, (((undefined>>NaN)>=("foo"!=="number"))<((0>=2)||(4^([,0].length === 2))))))), "bar");}
c = c + 1;
try {switch (((--b) + ((c = 1 + c, ((b/=((0x26.toString()^"undefined") - (([,0].length === 2),"b")))^((null>>>undefined)*(undefined||""))))))) {
case (a_1 && a_1.value):
break;
default:
case (((a_2) => {
;
})(false,)):
/* fall-through */
case ((--b) + ([(c = 1 + c, ((((-5)>="b")^(Infinity>=23..toString()))*(((-5)??[])!=(null> /[a2][^e]+$/ )))), (c = 1 + c, (((23..toString()=== /[a2][^e]+$/ )!=("number"^0))^((null||0) + ((-1)<<({}))))), (c = 1 + c, ((c_2 && ([ c_2[((c = c + 1) + ("a" in [...[(c = 1 + c, ((((-1)%23..toString()) + (b=((-1)^2)))*((void ((-2)))*(5>>"function"))))], (c = 1 + c, (((([,0].length === 2)&&[,0][1])==(2/"a")) - ((Infinity_2 && (Infinity_2.a=(5^true)))!==(([,0].length === 2)!="number"))))]))] ] = [ ((""<(-5))||(true!= /[a2][^e]+$/ )) ]))|(b && (b[((--b) + (void ((((bar && (bar.done&&=(({})===24 .toString())))!==((-3)>>({}))) - (( /[a2][^e]+$/ ^({}))===([,0][1],(-5)))))))]+=((([,0].length === 2)*2)==(foo_2=(24 .toString()/"undefined"))))))), (c = 1 + c, ((("c"==="")^(c = c + 1, /[a2][^e]+$/ ))^(("object">>>1)!==(({})^undefined)))), (c = 1 + c, (c = c + 1, ((delete (0))/(Number(0XDEADn << 16n | 0xbeefn)*({})))))].var)):
(c = 1 + c, (((bar=(4>0)),(2%0x26.toString()))|(((-3),24 .toString())===(1>>25. ))));
break;
} } catch (bar) {
switch ((c = 1 + c, (((a_1 && (a_1.get-=(""<<Infinity)))!=( /[a2][^e]+$/ <= /[a2][^e]+$/ ))==(a_2=((this - "number"),(2===0)))))) {
case (c = 1 + c, ((-(( /[a2][^e]+$/ ^[,0][1])))===((({})|({}))/([]<<"function")))):
;
break;
case (c = 1 + c, ((a_1 && (a_1.async=((!("b"))>>(5**24 .toString()))))/((3!==null)>((-1)>>>(-0))))):
;
break;
case (c = 1 + c, ((("object"^23..toString())!==(([,0].length === 2)>(-3)))^(bar=((void (false))>=(foo_2 && (foo_2[(c = 1 + c, ((([,0][1]/"c")>>(3<="undefined")) + ((c = c + 1, 0x26.toString())/(bar && (bar[(c = 1 + c, ((("foo">>>4)%(NaN&22))^(((-0)?? /[a2][^e]+$/ )??(Infinity<=(-5)))))]+=(({}) + "bar"))))))]^=(false!==([,0].length === 2)))))))):
;
break;
default:
;
}
} finally {
(c = 1 + c, (a_1 && (a_1[((--b) + ((typeof bar != "unknown")))]=((((-4)>>>"b")<=(""&&true))||((0|"c")^(b && (b.NaN=([,0][1]%true))))))));
{ /*2*/ return
(c = 1 + c, ((b && (b.value+=(([,0][1]===(-0))??("foo"&&4))))!=((c = c + 1, "")<(3%(-2)))))}
{var brake150 = 5; L10081: do {(c = 1 + c, ((c = c + 1, ("foo"!=false))**(((-0)^"b")<=("b"|undefined))));} while ((c = 1 + c, (((0>=(-2))|([,0][1]^null))&&(("function"^(-1))>(([,0].length === 2)>(-3))))) && --brake150 > 0);}
{ /*2*/ return
(c = 1 + c, ((((-1)|"")||(""||this)) + ((""!=0x26.toString())<<(4>22))))}
}
}()))), 22, 0x26.toString()))]));
console.log(null, a, b, c, Infinity, NaN, undefined);
// output: null 101 9 6 Infinity NaN undefined
//
// minify: null 101 undefined 6 Infinity NaN undefined
//
// options: {
// "compress": false,
// "mangle": false,
// "module": false,
// "output": {
// "beautify": true,
// "braces": true,
// "v8": true
// },
// "rename": true,
// "validate": true
// }
|
@kzc this one reproduces on Node.js v18.8.0 but not on v16.17.0 − that whole v18 has been a complete mess (none of my reported issues have been fixed, and apparently it's now in LTS). I shall leave this as an exercise for the reader 😉 |
Is this a V8 or NodeJS issue? Can it be repro'd on latest Chrome? Have you ever tried uglify on https://bun.sh ? It uses the JavaScriptCore engine. |
Firefox 103 & Chrome 103 (🤨) both do not reproduce this failure. bun.sh fails to run on macOS: ~$ echo 'console.log(42)' | bun
dyld: Symbol not found: _ureldatefmt_format
Referenced from: /.bun/bin/bun
Expected in: /usr/lib/libicucore.A.dylib
in /.bun/bin/bun
Trace/BPT trap: 5 |
Looks like bun needs macos 11 to run...
despite specifying macos 10.14 in the makefile for x64: https://github.com/oven-sh/bun/blob/51d0c3b79f63e5ca1965cb5280c58fc0a9bc4f73/Makefile#L33-L36 Never mind. |
@kzc since ~$ bun run test.js
error: Cannot use "yield" or "await" here.
try {(c = 1 + c, (((c = c + 1, false)^(NaN<<(-2)))!=(c = c + 1, (false - null)))); } catch (await) {
^
/test.js:217:93 12249
error: Declarations with the name arguments cannot be used with esm due to strict mode
{var b = function f2(arguments, foo_1){
^
/test.js:71:22 4339 Looks like it's even less backward-compatible than v8, to the point of arguably non-compliance. |
I've also looked into adding |
I suspect since It will probably take a year or two for |
Right you are: UglifyJS$ bin/uglifyjs
292 | paths.forEach(function(name) {
293 | files[convert_path(name)] = read_file(name);
294 | });
295 | run();
296 | } else {
297 | var timerId = process.stdin.isTTY && process.argv.length < 3 && setTimeout(function() {
^
TypeError: undefined is not an object (evaluating 'process.stdin.isTTY')
at UglifyJS/bin/uglifyjs:297:18
error "uglifyjs" exited with 1 status |
FWIW the following patch enables diff --git a/bin/uglifyjs b/bin/uglifyjs
index a2a02575..59d4f3bc 100755
--- a/bin/uglifyjs
+++ b/bin/uglifyjs
@@ -1,4 +1,4 @@
-#! /usr/bin/env node
+#! /usr/bin/env bun
// -*- js -*-
"use strict";
diff --git a/tools/tty.js b/tools/tty.js
index 395c48ec..4a65d185 100644
--- a/tools/tty.js
+++ b/tools/tty.js
@@ -1,5 +1,5 @@
// workaround for tty output truncation on Node.js
-try {
+if (process.stdout) try {
// prevent buffer overflow and other asynchronous bugs
process.stdout._handle.setBlocking(true);
process.stderr._handle.setBlocking(true);
@@ -19,4 +19,50 @@ try {
});
throw exit;
};
+} else {
+ var events = {
+ data: [],
+ end: [],
+ };
+ process.stdin = {
+ on: function(name, fn) {
+ events[name].push(fn);
+ return this;
+ },
+ once: function(name, fn) {
+ var fns = events[name];
+ fns.push(function() {
+ fn.apply(null, arguments);
+ fns[fns.indexOf(fn)] = function() {};
+ });
+ return this;
+ },
+ resume: function() {
+ Bun.stdin.stream().getReader().read().then(function(input) {
+ var data = Buffer.from(input.value).toString();
+ events.data.forEach(function(fn) {
+ fn(data);
+ });
+ events.end.forEach(function(fn) {
+ fn();
+ });
+ return this;
+ });
+ },
+ setEncoding: function() {
+ return this;
+ },
+ };
+ var SIZE = 4096;
+ function makeWriteStream(blob) {
+ return {
+ write: function(str) {
+ for (var i = 0, len = str.length; i < len; i += SIZE) {
+ Bun.write(blob, str.slice(i, i + SIZE));
+ }
+ },
+ };
+ }
+ process.stderr = makeWriteStream(Bun.stderr);
+ process.stdout = makeWriteStream(Bun.stdout);
} $ bin/uglifyjs --bad
ERROR: invalid option --bad
error "uglifyjs" exited with 1 status $ bin/uglifyjs -V
uglify-js 3.17.4 $ bin/uglifyjs
<failed to wait, just exits> $ echo 'console.log(6*7)' | bin/uglifyjs -c
console.log(42); $ bin/uglifyjs --self -mc
<...>,c.TreeTransformer=Bt,c.TreeWalker=Le; |
Good stuff. If there's no downside to NodeJS operation, is that something you want to commit? Just curious - what sort of timings do you get with |
I am generally interested in making (the same) code work on the widest possible range of platforms, so this is in exploration phase 😉
According to
|
with diff --git a/bin/uglifyjs b/bin/uglifyjs
index a2a02575..d055e34f 100755
--- a/bin/uglifyjs
+++ b/bin/uglifyjs
@@ -301,9 +301,11 @@ if (specified["in-situ"]) {
process.stdin.setEncoding("utf8");
process.stdin.once("data", function() {
clearTimeout(timerId);
- }).on("data", function(chunk) {
+ });
+ process.stdin.on("data", function(chunk) {
chunks.push(chunk);
- }).on("end", function() {
+ });
+ process.stdin.on("end", function() {
files = { STDIN: chunks.join("") };
run();
});
diff --git a/tools/tty.js b/tools/tty.js
index 395c48ec..d219581c 100644
--- a/tools/tty.js
+++ b/tools/tty.js
@@ -6,7 +6,7 @@ try {
} catch (e) {
// ensure output buffers are flushed before process termination
var exit = process.exit;
- process.exit = function() {
+ if ("bufferSize" in process.stdout) process.exit = function() {
var args = [].slice.call(arguments);
process.once("uncaughtException", function() {
(function callback() { A bit of a surprise why their $ bin/uglifyjs -bc <<EOF
> console.log(6*7)
> EOF
console.log(42);
$ |
Although I kind of expect this to work but it doesn't: $ bin/uglifyjs
Waiting for input... (use `--help` to print usage information)
console.log("I typed this");
$ i.e. just exits silently without any |
With oven-sh/bun@780f7de and 797184f, no further patching is required... ... except for the shebang − on a system with both Any suggestions on how to proceed? 🤔 |
Rationale: people use We need a better answer to this though. Maybe something involving
JavaScriptCore tracks UglifyJS performance in their JetStream benchmark. The problem is an inline cache issue which will take a lot of engineering work to address Re: this snippet
This is a transpiler bug. Bun runs Bun's transpiler on every file (including node_modules). error: Declarations with the name arguments cannot be used with esm due to strict mode
{var b = function f2(arguments, foo_1){
^
/test.js:71:22 4339 Bun is currently ESM-only, which sounds like a huge compatibility problem but because Bun automatically transpiles CommonJS -> ESM this tends to not be a big problem. There are issues with code that needs loose mode though To hard-disable the transpiler you can either set |
AFAICT UglifyJS "production" code should run fine under ESM mode, as I think the last issue was using Our fuzzer will occasionally produce test code that causes run-time (or ESM-related compile-time) exceptions, and that's all a balancing act to maximise simplicity (such as it is) and effectiveness for testing purposes. I think there's an |
... and UglifyJS uses JetStream benchmark as part of functional testing 😏 |
Understandable. Perhaps a (temporary) flag that forces |
@Jarred-Sumner Is it possible to have bun run on macOS 10.14 Mojave x64?
It seems to be the intention in bun's Makefile to use
|
off topic... @alexlamsl noticed this project is dormant - is uglify done? Or is it being rewritten in zig perhaps? |
Not at all − just been busy with Next minor release I'm planning to have |
Good idea. It's what most people expect/want. How do you like coding in zig?
fwiw, see oven-sh/bun#1266 (comment) What platform do you use for bun? |
It's interesting in its capability, though I wouldn't recommend it for anything mission-critical just yet 😅 While it has its fair share of odd corner cases, looks like the language features are developed/evolved in a centralised manner, and they do seem to move fast enough to smooth things out.
Yeah I saw that - I develop primarily on Windows, though I do have Linux VMs to cover the rest of my needs. Never really used macOS beyond field testing, and my current 2014 rMBP is running macOS 10.11 I think, so too ancient to be considered useful for compilation tasks. I think the |
The text was updated successfully, but these errors were encountered: