-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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 #5930
Labels
Comments
// uglified code
// (beautified)
var _calls_ = 10, a = 100, b = 10, c = 0;
try {
for (var brake2 = 5; a++ && 0 < --brake2; ) {
var brake4 = 5;
do {
for (var brake5 = 5; a && 0 < brake5; --brake5) {
var expr6 = /[abc4]/.test(([].null || b || 5).toString());
for (a in expr6) {
var c = 1 + c, foo_2 = expr6[a];
switch (a++ + ("function" == typeof f1 && 0 <= --_calls_ && f1({
__proto__: (c = 1 + c, ({} === []) >> ("bar" < (2 === [ , 0 ].length)) != -6 || {})
}.a, Infinity))) {
case 0 ^ ("function" === 38..toString() || this - 2):
break;
case -(foo_2 && (foo_2["function" != typeof b] /= (c += 1,
foo_2 && (foo_2[c = 1 + c, foo_2 += (foo_2 += -5) ^ 1 === [] === "c" % []] += 4)) < -3)):
switch (--b + /[abc4]/.test((c = 1 + c, (!0 / (foo_2 *= (2 === [ , 0 ].length) % !1) + (1 == 23..toString() || !1) || b || 5).toString()))) {
case [ (c = 1 + c, 23..toString(), foo_2 = !1, 0), , (c = 1 + c,
-("bar" ^ 23..toString()) >>> (foo_2 += -3 <= 1 >> 38..toString())) ].c:
c = 1 + c, 24..toString();
break;
case foo_2 && "function" == typeof foo_2.null && 0 <= --_calls_ && foo_2.null(5):
break;
case (c += 1) + a++:
c = 1 + c;
break;
case a++ + a:
c = 1 + c, foo_2 && (foo_2.in += 4 * 24..toString()),
c = 1 + c, -3 ^ 24..toString() && foo_2 && (foo_2[c = 1 + c,
!1 - (23..toString() && "number") != ("c" & this ^ (-1 | 24..toString()))] = Infinity >> void 0),
c = 1 + c, foo_2 = !1;
}
case a++ + ("function" == typeof f0 && 0 <= --_calls_ && f0()):
for (var brake14 = 5; c = 1 + c, foo_2 && (foo_2.next += (this + []) % 3),
a++ + (b = a) && 0 < --brake14; ) {}
var yield_1 = void 0;
}
}
}
} while (a && 0 < --brake4);
var a_1, expr17 = a++ + (3 in []);
for (a in expr17) {
c = 1 + c;
var a_2 = expr17[a];
c += 1;
}
b + 1 - .1 - .1 - .1 && a++ + a ? a_1 = async function() {}() : c += 1;
break;
}
} catch (NaN_1) {
var brake60, key27_2, brake64, expr63, key63, expr27 = ++a;
for (let key27 in expr27) {
switch (--a) {
case a++ + ("function" == typeof f2 && 0 <= --_calls_ && f2(-2)):
break;
case --b + b:
var async_2 = function(undefined_1, bar_2) {
bar_2 = void (c = 1 + c, undefined_1 && (undefined_1[a++ + (key27 && "function" == typeof key27.static && 0 <= --_calls_ && (a++,
key27.static)((c = 1 + c, (void 0 < 38..toString() | (24..toString() && 5)) != (bar_2 = -4 >>> !1)), void 0))] = 0 < (38..toString() <= 1) / (23..toString() <= -3)),
24..toString());
c = 1 + c, 38..toString(), c = 1 + c, 38..toString(), c = 1 + (c += 1),
38..toString(), 23..toString(), c = 1 + c, bar_2 && (bar_2[c = 1 + c,
!0] = NaN), 23..toString();
}(Infinity, -5);
--b, a++, async_2 && "function" == typeof async_2.undefined && 0 <= --_calls_ && (c += 1,
"function" == typeof f5 && 0 <= --_calls_ && f5(-0), async_2.undefined)((c += 1) + ("function" == typeof NaN_1 && 0 <= --_calls_ && NaN_1()), key27 && "function" == typeof key27.static && 0 <= --_calls_ && key27.static(5)),
c += 1;
default:
c += 1;
var async_2_1 = void 0, Infinity_1 = function() {
for (var brake39 = 5; c = 1 + (c = 1 + c), ({} >= 23..toString() | !0) << ((3 != 24..toString()) >>> 0) && 0 < --brake39; ) {}
}();
case a:
switch (a++ + b++ ? --b + [].async : b >>= a) {
case a++ + ("function" == typeof f6 && 0 <= --_calls_ && f6(--b + new function(async_2_1_1) {
this.undefined += (0 & (-2 | 2 === [ , 0 ].length)) != 5 << (3 == {});
}(), 23..toString())):
for (var brake43 = 5; b + 1 - .1 - .1 - .1 && 0 < brake43; --brake43) {
for (var brake44 = 5; a++ + (NaN_1 && NaN_1[(c += 1) + (b + 1 - .1 - .1 - .1)]) && 0 < --brake44; ) {
if (--b + (b += a)) {
for (var brake46 = 5; c = 1 + c, (NaN_1 = 4 !== Infinity && /[a2][^e]+$/ != 38..toString()) - 1 && 0 < --brake46; ) {
c = 1 + c, async_2 += -4 == 38..toString();
}
}
}
}
c = 1 + c, NaN_1 && (NaN_1.in = NaN);
for (var await = void 24..toString(), brake50 = 5; NaN <= (Infinity_1 && (Infinity_1[b + 1 - .1 - .1 - .1] += 0 | 0 == [])) && 0 < --brake50; ) {}
break;
case --b + ("crap" != typeof undefined_2):
switch (void function() {
c = 1 + c, c += 1, 23..toString();
}()) {
case a++ ? --b + NaN_1 : (c = 1 + c, 38..toString(), !void (await && (await[!0 & [] & (c = (c = 1 + c) + 1 + 1,
!0)] |= 1))):
for (var brake57 = 5; "function" == typeof f8 && 0 <= --_calls_ && f8`${c = 1 + c,
0 ^ ("bar" === Infinity) <= 0}` && 0 < --brake57; ) {
for (var brake58 = 5; c = 1 + c, !1 !== (NaN_1 && (NaN_1.get >>= this <= "object")) != NaN % (Infinity_1 && (Infinity_1.c = NaN)) && 0 < --brake58; ) {
c = 1 + c, await && (await.undefined += (NaN_1 -= (-1 >> []) - ([] < !1)) && -1 == (c = c + 1 + 1,
Infinity));
}
}
break;
case (c += 1) + b:
break;
case --b + (b || a || 3).toString():
switch (--b + {
1.5: (c = 1 + c, 0 == ((Infinity_1 && (Infinity_1.c += 27)) | 38..toString()))
}.get) {
case -2:
c = 1 + c, 0 - (22 < 23..toString()) && NaN_1 && (NaN_1[(c += 1) + "number"] += (c += 1,
[] !== (async_2 >>= 4)));
break;
case a++ + a++:
c = 1 + c, async_2_1 && (async_2_1[{
then: (c = 1 + c, !(void 0 % (2 === [ , 0 ].length) * (2 === [ , 0 ].length === "b"))),
in: (c = 1 + c, !(("foo" == {}) < 0))
}.Infinity] -= !0 + (0 ^ 23..toString()));
break;
case a++ + b:
c = 1 + (c = 1 + c);
break;
case (c += 1) + Infinity:
c = 1 + c;
}
}
for (var brake72 = 5; NaN_1 && "function" == typeof NaN_1.Infinity && 0 <= --_calls_ && NaN_1.Infinity`\\${c = 1 + c,
null << (async_2_1 && (async_2_1.a = -4 == this)) | (Infinity_1 = 4,
!1)}` && 0 < brake72; --brake72) {
var key73, expr73 = a++ + {};
for (key73 in expr73) {
try {
for (var brake75 = 5; c = 1 + c, (Infinity_1 <<= (23..toString() - 1 & !1) + ((2 === [ , 0 ].length) >>> void 0 < !1)) && 0 < brake75; --brake75) {
c = 1 + c, await += (c += 1, 22 ^ (2 === [ , 0 ].length) / null),
38..toString();
}
} catch (a_2) {
c = 1 + c, 23..toString(), key73 && (key73[c = 1 + c,
(0 % (25 < ("b" <= 23..toString())) || a || 3).toString()] ^= -4),
async_2 >>= Infinity / "" / NaN / !1, c = 1 + (c = 1 + c),
key73 && (key73.null = !1);
} finally {
c = 1 + c, async_2 = !1;
}
}
}
for (var brake81 = 5; --b + (b = a) && 0 < brake81; --brake81) {
c = 1 + c, async_2 && ({
undefined: async_2.c
} = {
undefined: 2 * Infinity
}), Infinity_1 *= 0, key27 && ({
"-2": key27[c = 1 + c, (23..toString() && /[a2][^e]+$/) < 1 !== (key27 && (key27.c = !1 | 38..toString() >> 38..toString()))]
} = {
"-2": 24..toString() / "undefined"
}), c = 1 + c, async_2_1 && (async_2_1[(c += 1) + [ (c = 1 + c,
"number" * this << !1 <= (key27 && (key27.Infinity += 0 | (Infinity_1 ^= !1)))), (c = 1 + c,
c += 1, {} + Infinity - (2 === [ , 0 ].length && this)) ]] >>>= null | this),
NaN_1 += !0, c = 1 + c, 0 ^ (async_2 && (async_2[c = 1 + c,
(void 0 ^ Infinity | "function") <= (-3 !== [] != !1)] = {})) && (c += 1,
38..toString()), c = 1 + c, 23..toString() % NaN || 38..toString(),
c = 1 + c, 24..toString();
}
break;
case b >>>= a:
try {
async_2 = "b" - 23..toString(), c = 1 + c, 38..toString(), 24..toString();
var b_2 = void (c = 1 + c);
} catch (a) {
for (var let_1 = void (c = 1 + c), brake87 = 5; c += 1, async_2_1 && "function" == typeof async_2_1.next && 0 <= --_calls_ && async_2_1.next((c = 1 + c,
(1 <= 24..toString() ^ (async_2 && (async_2[c = 1 + c, void 0 + "function" | (23..toString(),
!1)] <<= 0))) % (!0 >> (0 <= {}))), -1, (c = 1 + c, -2 | this || key27 && ({
next: key27[a++ + (async_2 = (24..toString() <= "bar" < NaN) << ((b_2 && (b_2[c = 1 + c,
NaN] = -4)) ^ 2 * 23..toString()))]
} = {
next: 0 + (NaN_1 /= "b" ^ 2 === [ , 0 ].length)
}))) && 0 < --brake87; ) {}
}
switch (38..toString() in {
in: a--,
"": await && "function" == typeof await.async && 0 <= --_calls_ && (c = 1 + c,
c += 1, 23..toString(), await.async)(..."" + async_2_1)
}) {
case key27 && key27.value:
case -(0 != +(async_2 && (async_2[c = 1 + c, await += ((-0 | []) == (-0 ^ [])) >> -5] += 0))):
case (c += 1) + (b_2 && "function" == typeof b_2.in && 0 <= --_calls_ && b_2.in(0, Infinity)):
break;
default:
for (var brake91 = 5; ~((3 >> {} & (async_2 && (async_2.then -= 0))) << !1) && 0 < --brake91; ) {}
for (var brake94 = 5; c = 1 + c, (-2 << 23..toString() && {} == []) >>> (-4 == this ^ null) && 0 < brake94; --brake94) {
c = 1 + c, 38..toString();
}
for (var brake96 = 5; --b + --a && 0 < --brake96; ) {
var expr97 = [ (b_2 = "" >> (2 != {})) == (-2 | (c = (c = 1 + c) + 1 + 1,
"b")), , ];
for (const key97 of expr97) {
c = 1 + c;
var async = expr97[key97];
c = 1 + c, 24..toString();
}
}
}
break;
case --b + --b:
}
}
}
var brake99 = 5;
do {
var key100, expr100 = /[abc4]/g.exec((typeof (NaN_1 && "function" == typeof NaN_1.c && 0 <= --_calls_ && NaN_1.c(a++ + /[abc4]/g.exec(((c += 1) + (c += 1,
24..toString() + 0 >= ("number" & 38..toString())) || b || 5).toString()))) || b || 5).toString());
for (key100 in expr100) {
try {
for (var brake102 = 5; --b + void function() {
for (var brake103 = 5; delete b && 0 < --brake103; ) {
"function" == typeof NaN_1 && 0 <= --_calls_ && NaN_1() ? (c = 1 + c,
23..toString(), NaN_1 && (NaN_1[(c += 1) + {
3: (c = 1 + c, !0),
set 3(NaN) {
this.Infinity += -4 - Infinity;
},
c: key100 = (0 != {}) >> !(22 >>> []),
1.5: (this >>> null == 0) < 1,
value: (c = 1 + (c = 1 + (c = 1 + c)), ((key100 && (key100.a += !1)) | (key100 && (key100[c = 1 + c,
~({} >> 0 ^ "b" ^ {})] >>>= this >>> 5))) == (1 != (NaN_1 |= !1)))
}] = !0)) : c += 1;
}
c = 1 + c, bar_2 && (bar_2[--b + void 0] += (c += 1, "a" - (!1 !== (2 === [ , 0 ].length && []))));
var key111, b, expr111 = "function" == typeof (bar_2 = void (c = 1 + c)) && 0 <= --_calls_ && bar_2();
for ([ key111 ] in expr111) {
c = 1 + c;
const bar_2 = expr111[key111];
var bar_2;
}
}() && 0 < brake102; --brake102) {
for (var brake115 = 5; key100 && "function" == typeof key100.var && 0 <= --_calls_ && key100.var(22) && 0 < brake115; --brake115) {
a++, c += 1, --b;
}
}
} finally {
var key117, expr117 = a++;
for (key117 in expr117) {
switch ((c += 1) + -b) {
case key100:
try {
switch (c = 1 + c, ((key100 = 5) >> !0) + (NaN < NaN)) {
case c = 1 + (c += 1), NaN & (key117 && (key117[c = 1 + c,
0 !== (!1 === (null ^ 24..toString()))] = [] / "function")) <= 0:
case c = 1 + c, (key117 && (key117[a] += !0)) - ((key117 && (key117.value ^= "a" & {})) - (c += 1,
24..toString())):
case c = 1 + c, {} / 25 ^ -1 ^ -5 * 24..toString() <= 21:
case c = 1 + c, !0 >> (!1 < "a" * 38..toString()):
}
} catch (yield) {
c = 1 + c, yield && ([ yield[a++ + ++a] ] = [ !1 ]);
}
--b, --b;
break;
case a++ + ((key100 && (key100.next += 4 === (c += 1, "b"))) | (key117 && (key117.next -= "bar" === 38..toString())) <= 4 ? (c += 1) + new function(foo_1, a) {
this[c = 1 + c, (1 >>> (2 === [ , 0 ].length) << (c += 1,
38..toString())) % !0] = {}, this.in >>>= this >> "number";
}() : "function" == typeof NaN_1 && 0 <= --_calls_ && NaN_1(5, -0)):
var key123, expr123 = (c += 1) + !0;
for (key123 in expr123) {
switch (c = 1 + c, (-4 | this) % (2 !== 38..toString() != 0)) {
default:
case c = 1 + c, c += 1, NaN_1 = (2 === [ , 0 ].length != (NaN_1 && (NaN_1.static = 2 <= 24..toString()))) >>> 5:
break;
case c = 1 + c, !1 & (key123 && (key123[[].null] &= (-0 & this) >>> 3)):
case c = (c = 1 + c) + 1 + 1, "foo":
}
}
switch (+(key100 && (key100.Infinity %= void 0 - ((NaN_1 && (NaN_1[c = 1 + c,
(1 === Infinity) - "bar" | (key117 += 22 ^ 23..toString(),
NaN)] += "c" * 38..toString())) + -2)))) {
default:
c = 1 + c, key117 && (key117[c = 1 + c, NaN] = 0), c = 1 + c,
38..toString(), NaN_1 && (NaN_1[c = 1 + c, 4 & 38..toString() & "undefined" * [] & 0] = 12);
case c = 1 + c, (0 == 23..toString()) < (Infinity || 5) <= (-1 === (c += 1,
!0)) ? (c = 1 + c, (4 ^ (key117 && (key117[c = 1 + c,
(0 ^ NaN % this) / (key117 = ("object" == this) < NaN)] <<= 0))) != (NaN_1 = !0)) : (c = 1 + c,
!1 | (key117 += (2 === [ , 0 ].length ^ -2) + !1)):
c = 1 + c, 38..toString(), 24..toString(), key100 && ({
length: key100.a
} = {
length: [] != {}
}), c = 1 + c, c += 1, NaN_1 = 0;
break;
case --b + ~(!1 ^ (key100 >>>= -0 < [] <= NaN)):
c = 1 + c, key117 && (key117[a++ + (key117 && key117.set)] = !0),
c = 1 + c, 23..toString(), c = 1 + c, c += 1, 23..toString();
break;
case {}:
}
for (var brake133 = 5; ~(0 === (NaN != "b" << 24..toString())) && 0 < brake133; --brake133) {
for (var brake134 = 5; c = 1 + c, NaN_1 && (NaN_1.undefined = !1 !== -38..toString() == (!0 !== (key117 &= this <= "bar"))),
c = 1 + c, NaN_1 && (NaN_1[a++ + 5..toString()[a++ + (0 in [ (c = 1 + c,
"" ^ [] || NaN) ])]] += (24..toString() + /[a2][^e]+$/ || "bar" - 24..toString()) >> (!0 >> (c += 1,
24..toString()))) && 0 < --brake134; ) {}
}
break;
case ("cc" != /[a2][^e]+$/ + (2 === [ , 0 ].length)) % !1:
case b -= a:
c += 1;
}
}
}
}
} while ([ --b + (a++ + --b || a || 3).toString(), --b + NaN_1, --b + {
async: --b + "number"
}.var ][a++ + ~("object" < (-3 <= (2 === [ , 0 ].length)))] && 0 < --brake99);
if (--b + (b = a)) {
var key139, expr139 = /[abc4]/g.exec(((b %= a) || 5).toString());
for (key139 in expr139) {
c = 1 + c;
var key140, NaN_1 = expr139[key139], expr140 = --b + (key139 && "function" == typeof key139.var && 0 <= --_calls_ && key139.var());
for ([ key140 ] in expr140) {
c = 1 + c;
var foo = expr140[key140], Infinity = function(c_2, NaN_1_2) {
for (var brake142 = 5; a++ + (key139 && key139[--b + ("function" == typeof f6 && 0 <= --_calls_ && f6(22, (c = 1 + c,
NaN_1 && (NaN_1[(c += 1) + (NaN_1_2 += (NaN_1 = NaN) != (24..toString() % this !== (c_2 && (c_2.get = "undefined"))))] = (NaN_1 && (NaN_1.async &= null != 38..toString())) % ("c" < (2 === [ , 0 ].length)) * (c += 1,
2 === [ , 0 ].length)))))]) && 0 < --brake142; ) {
c = 1 + c, 24..toString(), 24..toString();
}
for (var brake144 = 5; (c += 1) + 0 && 0 < brake144; --brake144) {
var key145, expr145 = void 0 === NaN_1;
for (key145 in expr145) {
c = 1 + c;
switch (c = 1 + c, NaN_1 = ("b" === 24..toString()) - !1 <= NaN * (c_2 && (c_2.then %= -3 >> 24..toString()))) {
case c = 1 + c, c += 1, 22 <= (NaN_1 = 0):
case c = 1 + c, (this <= 2) >>> ("b" ^ Infinity) && !1:
break;
default:
case c = 1 + c, (NaN != (-1 != 23..toString())) >= (4 << {} && void 0):
}
}
}
var brake147 = 5;
do {
c = 1 + c, c_2 && ({
a: c_2[c = 1 + c, key139 && (key139.undefined += !1 === (NaN_1 = -3))]
} = {
a: Infinity >>> {}
});
} while (0 + a++ && 0 < --brake147);
}(b + 1 - .1 - .1 - .1, (!0).toString(), (++a, c = 1 + c, Infinity && (Infinity.a = (key140 && ({
"-2": key140[a++ + ++a]
} = {
"-2": -2
})) / -4), "function" == typeof Infinity && 0 <= --_calls_ && Infinity((c = 1 + c,
NaN_1 && (NaN_1[/[abc4]/g.exec((c = 1 + c, (("undefined" % 23..toString() | !0) - (!1 < ("number" !== 23..toString())) || b || 5).toString()))] = !0)))));
}
}
} else {
var brake151 = 5;
do {
var key152, expr152 = (c += 1) + [ 0 ].set;
for (key152 in expr152) {
c = 1 + c;
var yield = expr152[key152];
try {
var arguments = a++ + {
async: (c = 1 + c, c += 1, 0 != "undefined" << 38..toString() << NaN),
...yield,
"-2": (c = 1 + c, NaN_1 && ([ NaN_1.foo ] = [ 0 == (c += 1,
-5) ])),
get: (c = 1 + c, (key152 && (key152[c = 1 + c, 38..toString() / !0 << NaN <= (arguments && (arguments.foo -= "b" < (null & [])))] = 23..toString() / 24..toString())) / !0 / ("bar" === (yield >>>= 0))),
NaN: (c = 1 + c, !1)
}.undefined;
} catch (arguments_2) {
for (var Infinity_1 = function() {}`${c = 1 + c, 0}`, brake156 = 5; new function() {
this.value |= "bar", this.var = -2;
}(38..toString()) && 0 < --brake156; ) {}
a++, c = 1 + c, 24..toString(), c = 1 + (c = 1 + c);
}
}
} while (c += 1, 0 < --brake151);
}
}
console.log(null, a, b, c, Infinity, NaN, void 0);
// reduced test case (output will differ)
// (beautified)
(function() {
var b_2 = function f12(bar_2) {
bar_2[0];
}();
b_2 && b_2();
{
const bar_2 = 0;
for (var brake112 = 5; 0; 0) {
var b_2;
}
}
})();
// output: TypeError: Cannot read property '0' of undefined
// minify: SyntaxError: Identifier 'bar_2' has already been declared
// options: {
// "mangle": false,
// "module": false,
// "output": {
// "v8": true
// },
// "validate": true
// }
|
alexlamsl
added a commit
to alexlamsl/UglifyJS
that referenced
this issue
Sep 4, 2024
alexlamsl
added a commit
to alexlamsl/UglifyJS
that referenced
this issue
Sep 4, 2024
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
The text was updated successfully, but these errors were encountered: