From cc2d7acaf0ed2479c8d3a5d3cbbce15a3cb2333b Mon Sep 17 00:00:00 2001 From: "Alex Lam S.L" Date: Sat, 2 Jan 2021 01:43:05 +0000 Subject: enhance `inline`, `sequences` & `side_effects` (#4493) --- test/compress/async.js | 176 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 176 insertions(+) (limited to 'test/compress') diff --git a/test/compress/async.js b/test/compress/async.js index 5d623bbe..51aba26c 100644 --- a/test/compress/async.js +++ b/test/compress/async.js @@ -140,6 +140,182 @@ dont_inline: { node_version: ">=8" } +inline_await_1: { + options = { + inline: true, + reduce_vars: true, + unused: true, + } + input: { + (async function() { + async function f() { + await 42; + } + return await f(); + })(); + console.log("PASS"); + } + expect: { + (async function() { + return await void await 42; + })(); + console.log("PASS"); + } + expect_stdout: "PASS" + node_version: ">=8" +} + +inline_await_1_trim: { + options = { + if_return: true, + inline: true, + reduce_vars: true, + side_effects: true, + unused: true, + } + input: { + (async function() { + async function f() { + await 42; + } + return await f(); + })(); + console.log("PASS"); + } + expect: { + (async function() { + await 42; + })(); + console.log("PASS"); + } + expect_stdout: "PASS" + node_version: ">=8" +} + +inline_await_2: { + options = { + inline: true, + reduce_vars: true, + unused: true, + } + input: { + (async function() { + async function f(a) { + await a; + } + return await f(console); + })(); + console.log("PASS"); + } + expect: { + (async function() { + return await void await console; + })(); + console.log("PASS"); + } + expect_stdout: "PASS" + node_version: ">=8" +} + +inline_await_2_trim: { + options = { + if_return: true, + inline: true, + reduce_vars: true, + side_effects: true, + unused: true, + } + input: { + (async function() { + async function f(a) { + await a; + } + return await f(console); + })(); + console.log("PASS"); + } + expect: { + (async function() { + await console; + })(); + console.log("PASS"); + } + expect_stdout: "PASS" + node_version: ">=8" +} + +inline_await_3: { + options = { + inline: true, + reduce_vars: true, + unused: true, + } + input: { + (async function() { + async function f(a, b) { + return await b(a); + } + return await f("PASS", console.log); + })(); + } + expect: { + (async function() { + return await (a = "PASS", b = console.log, await b(a)); + var a, b; + })(); + } + expect_stdout: "PASS" + node_version: ">=8" +} + +inline_await_3_trim: { + options = { + inline: true, + reduce_vars: true, + sequences: true, + side_effects: true, + unused: true, + } + input: { + (async function() { + async function f(a, b) { + return await b(a); + } + return await f("PASS", console.log); + })(); + } + expect: { + (async function() { + return a = "PASS", b = console.log, await b(a); + var a, b; + })(); + } + expect_stdout: "PASS" + node_version: ">=8" +} + +await_unary: { + options = { + side_effects: true, + } + input: { + (async function() { + console.log("PASS"); + await +[]; + console.log("FAIL"); + })(); + } + expect: { + (async function() { + console.log("PASS"); + await +[]; + console.log("FAIL"); + })(); + } + expect_stdout: "PASS" + node_version: ">=8" +} + evaluate: { options = { evaluate: true, -- cgit v1.2.3