diff --git a/src/js_printer.zig b/src/js_printer.zig index 09b3bfdbbf8d4..486f94e23bb50 100644 --- a/src/js_printer.zig +++ b/src/js_printer.zig @@ -6036,7 +6036,8 @@ pub fn printWithWriterAndPlatform( comptime generate_source_maps: bool, ) PrintResult { const PrinterType = NewPrinter( - false, + // if it's bun, it is also ascii_only + is_bun_platform, Writer, false, is_bun_platform, diff --git a/test/regression/issue/09559.test.ts b/test/regression/issue/09559.test.ts new file mode 100644 index 0000000000000..329033b584a29 --- /dev/null +++ b/test/regression/issue/09559.test.ts @@ -0,0 +1,22 @@ +import { $ } from "bun"; +import { expect, test } from "bun:test"; +import { bunEnv, bunExe, tempDirWithFiles } from "harness"; +import { readdirSync } from "node:fs"; +import { join } from "path"; + +test("bun build --target bun should support non-ascii source", async () => { + const files = {"index.js": ` + console.log(JSON.stringify({我: "a"})); + + const 我 = "b"; + console.log(JSON.stringify({我})); + `}; + const filenames = Object.keys(files); + const source = tempDirWithFiles("source", files); + + $.throws(true); + await $`${bunExe()} build --target bun ${join(source, "index.js")} --outfile ${join(source, "bundle.js")}`; + const result = await $`${bunExe()} ${join(source, "bundle.js")}`.text(); + + expect(result).toBe(`{"我":"a"}\n{"我":"b"}\n`); +})