]> Cypherpunks repositories - gostls13.git/commit
syscall/js: improve Value.String() for non-string values
authorRichard Musiol <mail@richard-musiol.de>
Thu, 28 Mar 2019 00:22:37 +0000 (01:22 +0100)
committerRichard Musiol <neelance@gmail.com>
Thu, 28 Mar 2019 09:36:43 +0000 (09:36 +0000)
commit2bd767b1022dd3254bcec469f0ee164024726486
tree9f012c88a59631a358638caecd1d09991229937e
parentea9eddb3e77f69bc559b8d8e647cb6d3b0562b80
syscall/js: improve Value.String() for non-string values

This change modifies Value.String() to use the following
representations for non-string values:
  <undefined>
  <null>
  <boolean: true>
  <number: 42>
  <symbol>
  <object>
  <function>

It avoids JavaScript conversion semantics in the Go API and lowers the
risk of hidden bugs by unexpected conversions, e.g. the conversion
of the number 42 to the string "42". See discussion in #29642.

This is a breaking change, which are still allowed for syscall/js.
The impact should be small since it only affects uses of
Value.String() with non-string values, which should be uncommon.

Updates #29642.

Change-Id: I2c27be6e24befe8cb713031fbf66f7b6041e7148
Reviewed-on: https://go-review.googlesource.com/c/go/+/169757
Run-TryBot: Richard Musiol <neelance@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
src/syscall/js/js.go
src/syscall/js/js_test.go