diff --git a/src/interchange/yaml.zig b/src/interchange/yaml.zig index 469cd1ad77..62c3d9e7f3 100644 --- a/src/interchange/yaml.zig +++ b/src/interchange/yaml.zig @@ -3484,7 +3484,7 @@ pub fn Parser(comptime enc: Encoding) type { ' ', '\t', => { - if (previous_token_data == .mapping_value) { + if (previous_token_data == .mapping_value and previous_token_line == self.line) { break :next try self.scanPlainScalar(opts); } @@ -3564,7 +3564,7 @@ pub fn Parser(comptime enc: Encoding) type { '\n', '\r', => { - if (previous_token_data == .mapping_value or previous_token_data == .sequence_entry) { + if ((previous_token_data == .mapping_value or previous_token_data == .sequence_entry) and previous_token_line == self.line) { self.token.start = start; return error.UnexpectedToken; } diff --git a/test/js/bun/yaml/yaml.test.ts b/test/js/bun/yaml/yaml.test.ts index 01837ca9cd..13f8e73907 100644 --- a/test/js/bun/yaml/yaml.test.ts +++ b/test/js/bun/yaml/yaml.test.ts @@ -541,7 +541,7 @@ null_value: null test("throws on invalid YAML", () => { expect(() => YAML.parse("[ invalid")).toThrow(); expect(() => YAML.parse("{ key: value")).toThrow(); - expect(() => YAML.parse(":\n : - invalid")).toThrow(); + expect(() => YAML.parse("@invalid")).toThrow(); }); test("handles dates and timestamps", () => {