in json/visitor.go [380:419]
func (vs *Visitor) onNumber(neg bool, u uint64) error {
if neg {
u = -u
}
i := len(vs.scratch)
// common case: use constants for / because
// the compiler can optimize it into a multiply+shift
if ^uintptr(0)>>32 == 0 {
for u > uint64(^uintptr(0)) {
q := u / 1e9
us := uintptr(u - q*1e9) // us % 1e9 fits into a uintptr
for j := 9; j > 0; j-- {
i--
qs := us / 10
vs.scratch[i] = byte(us - qs*10 + '0')
us = qs
}
u = q
}
}
// u guaranteed to fit into a uintptr
us := uintptr(u)
for us >= 10 {
i--
q := us / 10
vs.scratch[i] = byte(us - q*10 + '0')
us = q
}
// u < 10
i--
vs.scratch[i] = byte(us + '0')
if neg {
i--
vs.scratch[i] = '-'
}
return vs.w.write(vs.scratch[i:])
}