enhance compress on arrow and async functions (#4616)

This commit is contained in:
Alex Lam S.L
2021-02-06 04:39:46 +00:00
committed by GitHub
parent 739fa266f8
commit 5359900b78
5 changed files with 232 additions and 8 deletions

View File

@@ -519,6 +519,160 @@ collapse_vars_3: {
node_version: ">=8"
}
collapse_property_lambda: {
options = {
collapse_vars: true,
pure_getters: "strict",
}
input: {
(async function f() {
f.g = () => 42;
return f.g();
})().then(console.log);
}
expect: {
(async function f() {
return (f.g = () => 42)();
})().then(console.log);
}
expect_stdout: "42"
node_version: ">=8"
}
drop_return: {
options = {
side_effects: true,
}
input: {
(async function(a) {
while (!console);
return console.log(a);
})(42);
}
expect: {
(async function(a) {
while (!console);
console.log(a);
})(42);
}
expect_stdout: "42"
node_version: ">=8"
}
functions: {
options = {
functions: true,
reduce_vars: true,
unused: true,
}
input: {
!async function() {
var a = async function a() {
return a && "a";
};
var b = async function x() {
return !!x;
};
var c = async function(c) {
return c;
};
if (await c(await b(await a()))) {
var d = async function() {};
var e = async function y() {
return typeof y;
};
var f = async function(f) {
return f;
};
console.log(await a(await d()), await b(await e()), await c(await f(42)), typeof d, await e(), typeof f);
}
}();
}
expect: {
!async function() {
async function a() {
return a && "a";
}
async function b() {
return !!b;
}
var c = async function(c) {
return c;
};
if (await c(await b(await a()))) {
async function d() {}
async function e() {
return typeof e;
}
var f = async function(f) {
return f;
};
console.log(await a(await d()), await b(await e()), await c(await f(42)), typeof d, await e(), typeof f);
}
}();
}
expect_stdout: "a true 42 function function function"
node_version: ">=8"
}
functions_use_strict: {
options = {
functions: true,
reduce_vars: true,
unused: true,
}
input: {
"use strict";
!async function() {
var a = async function a() {
return a && "a";
};
var b = async function x() {
return !!x;
};
var c = async function(c) {
return c;
};
if (await c(await b(await a()))) {
var d = async function() {};
var e = async function y() {
return typeof y;
};
var f = async function(f) {
return f;
};
console.log(await a(await d()), await b(await e()), await c(await f(42)), typeof d, await e(), typeof f);
}
}();
}
expect: {
"use strict";
!async function() {
async function a() {
return a && "a";
}
async function b() {
return !!b;
}
var c = async function(c) {
return c;
};
if (await c(await b(await a()))) {
var d = async function() {};
var e = async function y() {
return typeof y;
};
var f = async function(f) {
return f;
};
console.log(await a(await d()), await b(await e()), await c(await f(42)), typeof d, await e(), typeof f);
}
}();
}
expect_stdout: "a true 42 function function function"
node_version: ">=8"
}
issue_4335_1: {
options = {
inline: true,