diff --git a/AK/JsonObjectSerializer.h b/AK/JsonObjectSerializer.h index 0c6b1eda97..8de17cead6 100644 --- a/AK/JsonObjectSerializer.h +++ b/AK/JsonObjectSerializer.h @@ -109,6 +109,12 @@ public: m_builder.appendf("%llu", value); } + void add(const StringView& key, double value) + { + begin_item(key); + m_builder.appendf("%f", value); + } + JsonArraySerializer add_array(const StringView& key) { begin_item(key); diff --git a/AK/JsonParser.cpp b/AK/JsonParser.cpp index 0f2fccfa64..1007c46779 100644 --- a/AK/JsonParser.cpp +++ b/AK/JsonParser.cpp @@ -100,9 +100,11 @@ String JsonParser::consume_quoted_string() char escaped_ch = consume(); switch (escaped_ch) { case 'n': - case 'r': buffer.append('\n'); break; + case 'r': + buffer.append('\r'); + break; case 't': buffer.append('\t'); break; @@ -225,6 +227,7 @@ JsonValue JsonParser::parse_number() ASSERT(ok); int fraction = fraction_string.to_uint(ok); + fraction *= (whole < 0) ? -1 : 1; ASSERT(ok); auto divider = 1;