diff -r db6d7cbda80b -r cd3b5be5515d mercurial/statprof.py --- a/mercurial/statprof.py Fri Aug 30 16:44:31 2019 -0700 +++ b/mercurial/statprof.py Fri Aug 30 15:30:47 2019 -0700 @@ -875,7 +875,10 @@ if idx not in blacklist] frames = collections.OrderedDict((str(k), v) for (k,v) in enumerate(id2stack)) - json.dump(dict(traceEvents=events, stackFrames=frames), fp, indent=1) + data = json.dumps(dict(traceEvents=events, stackFrames=frames), indent=1) + if not isinstance(data, bytes): + data = data.encode('utf-8') + fp.write(data) fp.write('\n') def printusage():