Our current implementation is admittedly naive:
ladybird/Libraries/LibCrypto/BigFraction/BigFraction.cpp
Lines 137 to 141 in 93712b2
We use BigFraction
in a couple places in our Temporal implementation, and this implementation is the last thing preventing us from passing 100% of (non-Intl) Temporal tests:
β test/built-ins/Temporal/Duration/prototype/round/precision-exact-in-round-duration.js
β test/built-ins/Temporal/Duration/prototype/total/precision-exact-mathematical-values-1.js
β test/built-ins/Temporal/Duration/prototype/total/precision-exact-mathematical-values-2.js
β test/built-ins/Temporal/Duration/prototype/total/precision-exact-mathematical-values-6.js
β test/built-ins/Temporal/Duration/prototype/total/precision-exact-mathematical-values-7.js
β test/built-ins/Temporal/Duration/prototype/total/total-of-each-unit-relativeto.js
(Alternatively, maybe we don't want to be in the business of maintaining BigInt implementations, and use something like mpfr instead)
Pay now to fund the work behind this issue.
Get updates on progress being made.
Maintainer is rewarded once the issue is completed.
You're funding impactful open source efforts
You want to contribute to this effort
You want to get funding like this too