summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cli/rt/02_console.js11
-rw-r--r--cli/tests/unit/console_test.ts2
2 files changed, 11 insertions, 2 deletions
diff --git a/cli/rt/02_console.js b/cli/rt/02_console.js
index f82262a7e..1dd69efef 100644
--- a/cli/rt/02_console.js
+++ b/cli/rt/02_console.js
@@ -472,6 +472,15 @@
);
}
+ // Surround a string with quotes when it is required (e.g the string not a valid identifier).
+ function maybeQuoteString(string) {
+ if (/^[a-zA-Z_][a-zA-Z_0-9]*$/.test(string)) {
+ return replaceEscapeSequences(string);
+ }
+
+ return quoteString(string);
+ }
+
// Print strings when they are inside of arrays or objects with quotes
function inspectValueWithQuotes(
value,
@@ -713,7 +722,7 @@
for (const key of stringKeys) {
entries.push(
- `${replaceEscapeSequences(key)}: ${
+ `${maybeQuoteString(key)}: ${
inspectValueWithQuotes(
value[key],
ctx,
diff --git a/cli/tests/unit/console_test.ts b/cli/tests/unit/console_test.ts
index 3df4b13e4..97f4ce0d2 100644
--- a/cli/tests/unit/console_test.ts
+++ b/cli/tests/unit/console_test.ts
@@ -108,7 +108,7 @@ unitTest(
stringify(
{ "foo\b": "bar\n", "bar\r": "baz\t", "qux\0": "qux\0" },
),
- `{ foo\\b: "bar\\n", bar\\r: "baz\\t", qux\\x00: "qux\\x00" }`,
+ `{ "foo\\b": "bar\\n", "bar\\r": "baz\\t", "qux\\x00": "qux\\x00" }`,
);
assertEquals(
stringify(new Set(["foo\n", "foo\r", "foo\0"])),