mirror of
https://github.com/oven-sh/bun
synced 2026-02-13 20:39:05 +00:00
* Fix bug with multiline string in CRLF terminated files (#4893) * add test for #4893
This commit is contained in:
@@ -642,7 +642,7 @@ fn NewLexer_(
|
||||
lexer.step();
|
||||
|
||||
// Handle Windows CRLF
|
||||
if (lexer.code_point == 'r' and comptime !is_json) {
|
||||
if (lexer.code_point == '\r' and comptime !is_json) {
|
||||
lexer.step();
|
||||
if (lexer.code_point == '\n') {
|
||||
lexer.step();
|
||||
|
||||
23
test/regression/issue/4893.test.ts
Normal file
23
test/regression/issue/4893.test.ts
Normal file
@@ -0,0 +1,23 @@
|
||||
import { bunEnv, bunExe } from "harness";
|
||||
import { mkdirSync, rmSync, writeFileSync, readFileSync, mkdtempSync } from "fs";
|
||||
import { tmpdir } from "os";
|
||||
import { join } from "path";
|
||||
|
||||
it("correctly handles CRLF multiline string in CRLF terminated files", async () => {
|
||||
const testDir = mkdtempSync(join(tmpdir(), "issue4893-"));
|
||||
|
||||
// Clean up from prior runs if necessary
|
||||
rmSync(testDir, { recursive: true, force: true });
|
||||
|
||||
// Create a directory with our test CRLF terminated file
|
||||
mkdirSync(testDir, { recursive: true });
|
||||
writeFileSync(join(testDir, "crlf.js"), '"a\\\r\nb"');
|
||||
|
||||
const { stdout, exitCode } = Bun.spawnSync({
|
||||
cmd: [bunExe(), "run", join(testDir, "crlf.js")],
|
||||
env: bunEnv,
|
||||
stderr: "inherit",
|
||||
});
|
||||
|
||||
expect(exitCode).toBe(0);
|
||||
});
|
||||
Reference in New Issue
Block a user