aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorGravatar jhmaster <32803471+jhmaster2000@users.noreply.github.com> 2023-09-27 23:26:03 -0300
committerGravatar GitHub <noreply@github.com> 2023-09-27 19:26:03 -0700
commit3d376842537764ceaa296f846f7cbfbeb17d3ffe (patch)
treee6f0d81e2d57bf32fc29d33d662a47290a2f7cb7 /test
parent06a82b7725eee86781c9884ff63d75450bfdf4a9 (diff)
downloadbun-3d376842537764ceaa296f846f7cbfbeb17d3ffe.tar.gz
bun-3d376842537764ceaa296f846f7cbfbeb17d3ffe.tar.zst
bun-3d376842537764ceaa296f846f7cbfbeb17d3ffe.zip
`deadCodeElimination` toggle for Bun.Transpiler (#5932)
* add Bun.Transpiler DCE option * mark DCE toggle experimental + tests * full (hopefully) DCE toggle * update DCE toggle tests * add DCE option to types * run fmt * Removed uws submodule
Diffstat (limited to 'test')
-rw-r--r--test/transpiler/transpiler.test.js24
1 files changed, 24 insertions, 0 deletions
diff --git a/test/transpiler/transpiler.test.js b/test/transpiler/transpiler.test.js
index a6c2dcf73..43c8c6665 100644
--- a/test/transpiler/transpiler.test.js
+++ b/test/transpiler/transpiler.test.js
@@ -1984,6 +1984,30 @@ console.log(resolve.length)
// expectParseError("\u200Ca", 'Unexpected "\\u200c"');
// expectParseError("\u200Da", 'Unexpected "\\u200d"');
});
+
+ describe("dead code elimination", () => {
+ const transpilerNoDCE = new Bun.Transpiler({ deadCodeElimination: false });
+ it("should DCE with deadCodeElimination: true or by default", () => {
+ expect(parsed("123", true, false)).toBe("");
+ expect(parsed("[-1, 2n, null]", true, false)).toBe("");
+ expect(parsed("true", true, false)).toBe("");
+ expect(parsed("!0", true, false)).toBe("");
+ expect(parsed('if (!1) "dead";', true, false)).toBe("if (false)");
+ expect(parsed("if (!1) var x = 2;", true, false)).toBe("if (false)\n var x");
+ expect(parsed("if (undefined) { let y = Math.random(); }", true, false)).toBe("if (undefined) {\n}");
+ });
+ it("should not DCE with deadCodeElimination: false", () => {
+ expect(parsed("123", true, false, transpilerNoDCE)).toBe("123");
+ expect(parsed("[1, 2n, null]", true, false, transpilerNoDCE)).toBe("[1, 2n, null]");
+ expect(parsed("true", true, false, transpilerNoDCE)).toBe("true");
+ expect(parsed("!0", true, false, transpilerNoDCE)).toBe("!0");
+ expect(parsed('if (!1) "dead";', true, false, transpilerNoDCE)).toBe('if (!1)\n "dead"');
+ expect(parsed("if (!1) var x = 2;", true, false, transpilerNoDCE)).toBe("if (!1)\n var x = 2");
+ expect(parsed("if (undefined) { let y = Math.random(); }", true, false, transpilerNoDCE)).toBe(
+ "if (undefined) {\n let y = Math.random();\n}",
+ );
+ });
+ });
});
it("private identifiers", () => {