Revert "Use JSON escaping for JSON string output"

This reverts commit afd24ed11bc5fbef775a3ffe46c72e6bdca0fa60.

Reason for revert: Broke GN autoroller in chromium.
https://crrev.com/c/6604789

Bug: 421876648

Original change's description:
> Use JSON escaping for JSON string output
>
> The previous code used Value::ToString to convert GN strings into quoted
> JSON strings, but this caused incorrect escaping behavior. For example,
> the string "$" needs to be escaped in Ninja to prevent accidental
> variable expansion but not in JSON.
>
> Change-Id: I91c8e9b2486a67af5a3ba41efdb731aa31cc6df3
> Reviewed-on: https://gn-review.googlesource.com/c/gn/+/18900
> Commit-Queue: Takuto Ikuta <tikuta@google.com>
> Reviewed-by: Takuto Ikuta <tikuta@google.com>

# Not skipping CQ checks because original CL landed > 1 day ago.

Change-Id: I88d648e62a4659256d88c5709529005ceedd2558
Reviewed-on: https://gn-review.googlesource.com/c/gn/+/18940
Commit-Queue: David Turner <digit@google.com>
Reviewed-by: David Turner <digit@google.com>
diff --git a/src/gn/output_conversion.cc b/src/gn/output_conversion.cc
index 3bfbb10..971e740 100644
--- a/src/gn/output_conversion.cc
+++ b/src/gn/output_conversion.cc
@@ -4,7 +4,6 @@
 
 #include "gn/output_conversion.h"
 
-#include "gn/escape.h"
 #include "gn/settings.h"
 #include "gn/value.h"
 
@@ -38,10 +37,8 @@
       RenderScopeToJSON(value, out, indent + 1);
     else if (value.type() == Value::LIST)
       RenderListToJSON(value, out, indent + 1);
-    else if (value.type() == Value::STRING)
-      EscapeJSONStringToStream(out, value.ToString(false), EscapeOptions());
     else
-      out << value.ToString(false);
+      out << value.ToString(true);
     first = false;
   }
   out << "\n";
@@ -64,11 +61,8 @@
       RenderScopeToJSON(pair.second, out, indent + 1);
     else if (pair.second.type() == Value::LIST)
       RenderListToJSON(pair.second, out, indent + 1);
-    else if (pair.second.type() == Value::STRING)
-      EscapeJSONStringToStream(out, pair.second.ToString(false),
-                               EscapeOptions());
     else
-      out << pair.second.ToString(false);
+      out << pair.second.ToString(true);
     first = false;
   }
   out << "\n";
diff --git a/src/gn/output_conversion_unittest.cc b/src/gn/output_conversion_unittest.cc
index 1eaf2ab..43fdad5 100644
--- a/src/gn/output_conversion_unittest.cc
+++ b/src/gn/output_conversion_unittest.cc
@@ -186,11 +186,8 @@
   auto c_scope = std::make_unique<Scope>(settings());
   Value e_value(nullptr, Value::LIST);
   e_value.list_value().push_back(Value(nullptr, "bar"));
-  e_value.list_value().push_back(Value(nullptr, "$"));
 
   auto e_value_scope = std::make_unique<Scope>(settings());
-  Value d_value(nullptr, "$");
-  e_value_scope->SetValue("d", d_value, nullptr);
   Value f_value(nullptr, "baz");
   e_value_scope->SetValue("f", f_value, nullptr);
   e_value.list_value().push_back(Value(nullptr, std::move(e_value_scope)));
@@ -205,9 +202,7 @@
   "c": {
     "e": [
       "bar",
-      "$",
       {
-        "d": "$",
         "f": "baz"
       }
     ]