• Daniel Martí's avatar
    html/template: always write untyped nil as JS null · 23e9dc79
    Daniel Martí authored
    text/template recently added support for passing untyped nil as function
    call arguments, as those would be mixed up with "missing argument"
    values before. See CL 95215.
    
    html/template now needs a small change to adapt to that new possibility.
    In particular, when printing values as JS bytes, its code was written
    under the assumption that the values would never be untyped nil - that
    is, the reflect.Value would always be valid.
    
    Short-circuit indirectToJSONMarshaler on an untyped nil, to avoid the
    panic and fall back to the existing " null " output. Before this change
    and on 1.10, printing a typed nil and an untyped nil resulted in:
    
    	null ""
    
    After this change, one will get:
    
    	null null
    
    Fixes #24717.
    
    Change-Id: I03cd10ef64b96e837bacc9ccf4cf25624d80de1c
    Reviewed-on: https://go-review.googlesource.com/109215
    Run-TryBot: Daniel Martí <mvdan@mvdan.cc>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: 's avatarRhys Hiltner <rhys@justin.tv>
    Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
    23e9dc79
js.go 11.4 KB