aboutsummaryrefslogtreecommitdiff
path: root/lib/std/json/write_stream.zig
diff options
context:
space:
mode:
Diffstat (limited to 'lib/std/json/write_stream.zig')
-rw-r--r--lib/std/json/write_stream.zig15
1 files changed, 11 insertions, 4 deletions
diff --git a/lib/std/json/write_stream.zig b/lib/std/json/write_stream.zig
index 2bb79a017c..c30f8ba8d8 100644
--- a/lib/std/json/write_stream.zig
+++ b/lib/std/json/write_stream.zig
@@ -152,10 +152,17 @@ pub fn WriteStream(comptime OutStream: type, comptime max_depth: usize) type {
) !void {
assert(self.state[self.state_index] == State.Value);
switch (@typeInfo(@typeOf(value))) {
- .Int => |info| if (info.bits < 53 or (value < 4503599627370496 and value > -4503599627370496)) {
- try self.stream.print("{}", value);
- self.popState();
- return;
+ .Int => |info| {
+ if (info.bits < 53) {
+ try self.stream.print("{}", value);
+ self.popState();
+ return;
+ }
+ if (value < 4503599627370496 and (!info.is_signed or value > -4503599627370496)) {
+ try self.stream.print("{}", value);
+ self.popState();
+ return;
+ }
},
.Float => if (@floatCast(f64, value) == value) {
try self.stream.print("{}", value);