diff --git a/Userland/Libraries/LibJS/Runtime/AbstractOperations.h b/Userland/Libraries/LibJS/Runtime/AbstractOperations.h index e9e6a7595d..de155d7e78 100644 --- a/Userland/Libraries/LibJS/Runtime/AbstractOperations.h +++ b/Userland/Libraries/LibJS/Runtime/AbstractOperations.h @@ -7,6 +7,7 @@ #pragma once #include +#include #include #include #include @@ -91,4 +92,13 @@ auto modulo(T x, U y) requires(IsArithmetic, IsArithmetic) } } +auto modulo(Crypto::BigInteger auto const& x, Crypto::BigInteger auto const& y) +{ + VERIFY(y != "0"_bigint); + auto result = x.divided_by(y).remainder; + if (result.is_negative()) + result = result.plus(y); + return result; +} + }