| ... | @@ -1345,7 +1345,7 @@ pub const Parser = struct { | ... | @@ -1345,7 +1345,7 @@ pub const Parser = struct { |
| 1345 | return if (token.number_is_integer) | 1345 | return if (token.number_is_integer) |
| 1346 | Value{ .Integer = try std.fmt.parseInt(i64, token.slice(input, i), 10) } | 1346 | Value{ .Integer = try std.fmt.parseInt(i64, token.slice(input, i), 10) } |
| 1347 | else | 1347 | else |
| 1348 | @panic("TODO: fmt.parseFloat not yet implemented"); | 1348 | Value{ .Float = std.fmt.parseFloat(f64, token.slice(input, i)) }; |
| 1349 | } | 1349 | } |
| 1350 | }; | 1350 | }; |
| 1351 | | 1351 | |
| ... | @@ -1366,7 +1366,8 @@ test "json.parser.dynamic" { | ... | @@ -1366,7 +1366,8 @@ test "json.parser.dynamic" { |
| 1366 | \\ }, | 1366 | \\ }, |
| 1367 | \\ "Animated" : false, | 1367 | \\ "Animated" : false, |
| 1368 | \\ "IDs": [116, 943, 234, 38793], | 1368 | \\ "IDs": [116, 943, 234, 38793], |
| 1369 | \\ "ArrayOfObject": [{"n": "m"}] | 1369 | \\ "ArrayOfObject": [{"n": "m"}], |
| | 1370 | \\ "double": 1.3412 |
| 1370 | \\ } | 1371 | \\ } |
| 1371 | \\} | 1372 | \\} |
| 1372 | ; | 1373 | ; |
| ... | @@ -1395,4 +1396,7 @@ test "json.parser.dynamic" { | ... | @@ -1395,4 +1396,7 @@ test "json.parser.dynamic" { |
| 1395 | | 1396 | |
| 1396 | const obj0 = array_of_object.Array.at(0).Object.get("n").?.value; | 1397 | const obj0 = array_of_object.Array.at(0).Object.get("n").?.value; |
| 1397 | testing.expect(mem.eql(u8, obj0.String, "m")); | 1398 | testing.expect(mem.eql(u8, obj0.String, "m")); |
| | 1399 | |
| | 1400 | const double = image.Object.get("double").?.value; |
| | 1401 | testing.expect(double.Float == 1.3412); |
| 1398 | } | 1402 | } |