diff options
Diffstat (limited to 'src/json_parser.zig')
-rw-r--r-- | src/json_parser.zig | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/json_parser.zig b/src/json_parser.zig index a46375929..8b371d4e2 100644 --- a/src/json_parser.zig +++ b/src/json_parser.zig @@ -138,11 +138,15 @@ fn JSONLikeParser(opts: js_lexer.JSONOptions) type { while (p.lexer.token != .t_close_brace) { if (properties.items.len > 0) { - is_single_line = if (p.lexer.has_newline_before) false else is_single_line; + if (p.lexer.has_newline_before) { + is_single_line = false; + } if (!p.parseMaybeTrailingComma(.t_close_brace)) { break; } - is_single_line = if (p.lexer.has_newline_before) false else is_single_line; + if (p.lexer.has_newline_before) { + is_single_line = false; + } } var key_string = p.lexer.string_literal; @@ -162,7 +166,9 @@ fn JSONLikeParser(opts: js_lexer.JSONOptions) type { properties.append(G.Property{ .key = key, .value = value }) catch unreachable; } - is_single_line = if (p.lexer.has_newline_before) false else is_single_line; + if (p.lexer.has_newline_before) { + is_single_line = false; + } p.lexer.expect(.t_close_brace); return p.e(E.Object{ .properties = properties.toOwnedSlice(), @@ -269,6 +275,9 @@ test "ParseJSON" { expectPrintedJSON("3.4159820837456", "3.4159820837456"); expectPrintedJSON("-10000.25", "-10000.25"); expectPrintedJSON("\"hi\"", "\"hi\""); + expectPrintedJSON("{\"hi\": 1, \"hey\": \"200\", \"boom\": {\"yo\": true}}", "({\"hi\": 1, \"hey\": \"200\", \"boom\": {\"yo\": true}})"); + expectPrintedJSON("{\"hi\": \"hey\"}", "({hi: \"hey\"})"); + expectPrintedJSON("{\"hi\": [\"hey\", \"yo\"]}", "({hi:[\"hey\",\"yo\"]})"); // TODO: emoji? } |