aboutsummaryrefslogtreecommitdiff
path: root/test/transpiler/transpiler.test.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/transpiler/transpiler.test.js')
-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", () => {