• Richard Musiol's avatar
    syscall/js: improve Value.String() for non-string values · 2bd767b1
    Richard Musiol authored
    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: default avatarBrad Fitzpatrick <bradfitz@golang.org>
    2bd767b1
js_test.go 11.9 KB