diff options
author | 2021-04-27 12:00:10 -0700 | |
---|---|---|
committer | 2021-04-27 12:00:10 -0700 | |
commit | 02fbb8e82a7f41c466b5156821c68af029ce4448 (patch) | |
tree | c3b07a06aff4fbe7e1c9db94194d3a3685b2f6ca /src/json_parser.zig | |
parent | 90a76bda39e16c9641579e88995139ec81aa75d0 (diff) | |
download | bun-02fbb8e82a7f41c466b5156821c68af029ce4448.tar.gz bun-02fbb8e82a7f41c466b5156821c68af029ce4448.tar.zst bun-02fbb8e82a7f41c466b5156821c68af029ce4448.zip |
json works in CLI sort of
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? } |