diff --git a/Userland/Libraries/LibWasm/AbstractMachine/AbstractMachine.h b/Userland/Libraries/LibWasm/AbstractMachine/AbstractMachine.h index 4229198994..4c8ca6261f 100644 --- a/Userland/Libraries/LibWasm/AbstractMachine/AbstractMachine.h +++ b/Userland/Libraries/LibWasm/AbstractMachine/AbstractMachine.h @@ -126,10 +126,12 @@ public: Optional result; m_value.visit( [&](auto value) { - if constexpr (IsSame) - result = value; - else if constexpr (!IsFloatingPoint && IsSame>) - result = value; + if constexpr (IsSame || (!IsFloatingPoint && IsSame>)) { + result = static_cast(value); + } else if constexpr (!IsFloatingPoint && IsConvertible) { + if (AK::is_within_range(value)) + result = static_cast(value); + } }, [&](Reference const& value) { if constexpr (IsSame) {