See
Why is {} + {} no longer NaN in Chrome console?
Chrome devtools now automatically wrap everything that begins with { and ends with } in an implicit pair of parentheses (see code), to force its evaluation as an expression.
Firefox does not do this. In Firefox,
{a: 1}
is evaluated as a block, which has a label of a, with an unused expression 1:
{
a:
1
}
(this is why, in FF, you see that the final expression evaluated is 1:

)
But labels cannot be enclosed in string delimiters (labels need to have the plain identifier only, just like a variable), so changing the a: to "a": throws an error, because colons can only be parsed when after a label, or between a key-value pair in an object.