Commit 97edaf7
fix(v4): don't throw from safeParse on bigint multipleOf(0n) (#6466)
A bigint schema with multipleOf(0n) threw `RangeError: Division by zero` out of safeParse. The runtime check now guards the divisor, matching the number branch, which already reports a failure instead of throwing.
The compiler emitted `x % 0n !== 0n`, so a compiled schema still threw. A zero divisor is now declined at compile time and the node becomes a runtime island, the same way the compiler already declines a NaN comparison bound.
Supersedes #6126 and #6140.
Co-authored-by: MerlijnW70 <196433316+MerlijnW70@users.noreply.github.com>1 parent 21a6f0c commit 97edaf7
4 files changed
Lines changed: 24 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
63 | 63 | | |
64 | 64 | | |
65 | 65 | | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
190 | 190 | | |
191 | 191 | | |
192 | 192 | | |
193 | | - | |
| 193 | + | |
| 194 | + | |
194 | 195 | | |
195 | 196 | | |
196 | 197 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
460 | 460 | | |
461 | 461 | | |
462 | 462 | | |
| 463 | + | |
| 464 | + | |
463 | 465 | | |
464 | 466 | | |
465 | 467 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1482 | 1482 | | |
1483 | 1483 | | |
1484 | 1484 | | |
| 1485 | + | |
| 1486 | + | |
1485 | 1487 | | |
1486 | 1488 | | |
1487 | 1489 | | |
| |||
0 commit comments