]> Cypherpunks repositories - gostls13.git/commitdiff
log/slog: use Infinity instead of Inf
authorJoe Tsai <joetsai@digital-static.net>
Thu, 23 Mar 2023 07:29:08 +0000 (00:29 -0700)
committerGopher Robot <gobot@golang.org>
Fri, 24 Mar 2023 17:46:37 +0000 (17:46 +0000)
JSON is derived from Javascript, so we should use Javascript-inspired
literals instead of ones more common to Go.

In Javascript, infinity is declared as Infinity rather than Inf.

Change-Id: I6c81353d0c677640f3f11961a37d792408ac03fc
Reviewed-on: https://go-review.googlesource.com/c/go/+/478758
Run-TryBot: Joseph Tsai <joetsai@digital-static.net>
Auto-Submit: Joseph Tsai <joetsai@digital-static.net>
Reviewed-by: Jonathan Amsterdam <jba@google.com>
Reviewed-by: Heschi Kreinick <heschi@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>

src/log/slog/json_handler.go
src/log/slog/json_handler_test.go

index 90ecc6a3a417927a3dbf1c5fd7aa958c6521799a..96545d58d66af6acffd97d46201fa1f1ea3a6440 100644 (file)
@@ -79,7 +79,7 @@ func (h *JSONHandler) WithGroup(name string) Handler {
 // Values are formatted as with encoding/json.Marshal, with the following
 // exceptions:
 //   - Floating-point NaNs and infinities are formatted as one of the strings
-//     "NaN", "+Inf" or "-Inf".
+//     "NaN", "Infinity" or "-Infinity".
 //   - Levels are formatted as with Level.String.
 //   - HTML characters are not escaped.
 //
@@ -113,9 +113,9 @@ func appendJSONValue(s *handleState, v Value) error {
                // json.Marshal fails on special floats, so handle them here.
                switch {
                case math.IsInf(f, 1):
-                       s.buf.WriteString(`"+Inf"`)
+                       s.buf.WriteString(`"Infinity"`)
                case math.IsInf(f, -1):
-                       s.buf.WriteString(`"-Inf"`)
+                       s.buf.WriteString(`"-Infinity"`)
                case math.IsNaN(f):
                        s.buf.WriteString(`"NaN"`)
                default:
index 55e05d58e3526f8515774fe400ffde43d22a406f..0a38969f46a0cda8eef7b03a1c58837592a3caf0 100644 (file)
@@ -111,8 +111,8 @@ func TestJSONAppendAttrValueSpecial(t *testing.T) {
                want  string
        }{
                {math.NaN(), `"NaN"`},
-               {math.Inf(+1), `"+Inf"`},
-               {math.Inf(-1), `"-Inf"`},
+               {math.Inf(+1), `"Infinity"`},
+               {math.Inf(-1), `"-Infinity"`},
                {LevelWarn, `"WARN"`},
        } {
                got := jsonValueString(t, AnyValue(test.value))