mirror of
https://github.com/oven-sh/bun
synced 2026-02-09 10:28:47 +00:00
fix(bundler): minify Array constructor with ternary regression (#22803)
### What does this PR do? Fixes accessing the wrong union field. Resolves BUN-WQF ### How did you verify your code works? Added a regression test --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
This commit is contained in:
@@ -109,6 +109,9 @@ pub const KnownGlobal = enum {
|
||||
return js_ast.Expr.init(E.Array, .{ .items = e.args }, loc);
|
||||
},
|
||||
.number => {
|
||||
if (arg.data != .e_number) {
|
||||
return callFromNew(e, loc);
|
||||
}
|
||||
const val = arg.data.e_number.value;
|
||||
if (
|
||||
// only want this with whitespace minification
|
||||
|
||||
21
test/regression/issue/minify-new-array-with-if.test.ts
Normal file
21
test/regression/issue/minify-new-array-with-if.test.ts
Normal file
@@ -0,0 +1,21 @@
|
||||
import { build, file } from "bun";
|
||||
import { expect, test } from "bun:test";
|
||||
import { tempDir } from "harness";
|
||||
import { join } from "path";
|
||||
|
||||
test("minifying new Array(if (0) 1 else 2) works", async () => {
|
||||
using testDir = tempDir("minify-new-array-with-if", {
|
||||
"entry.js": "console.log(new Array(Math.random() > -1 ? 1 : 2));",
|
||||
});
|
||||
|
||||
await build({
|
||||
entrypoints: [join(testDir, "entry.js")],
|
||||
minify: true,
|
||||
outdir: join(testDir, "outdir"),
|
||||
});
|
||||
|
||||
expect(await file(join(testDir, "outdir/entry.js")).text()).toMatchInlineSnapshot(`
|
||||
"console.log(Array(Math.random()>-1?1:2));
|
||||
"
|
||||
`);
|
||||
});
|
||||
Reference in New Issue
Block a user