diff --git a/Userland/Libraries/LibJS/Runtime/MathObject.cpp b/Userland/Libraries/LibJS/Runtime/MathObject.cpp index 6c60c2ba50..73e2c8ca49 100644 --- a/Userland/Libraries/LibJS/Runtime/MathObject.cpp +++ b/Userland/Libraries/LibJS/Runtime/MathObject.cpp @@ -79,8 +79,14 @@ void MathObject::initialize(Realm& realm) // 21.3.2.1 Math.abs ( x ), https://tc39.es/ecma262/#sec-math.abs JS_DEFINE_NATIVE_FUNCTION(MathObject::abs) { + auto x = vm.argument(0); + + // OPTIMIZATION: Fast path for Int32 values. + if (x.is_int32()) + return Value(AK::abs(x.as_i32())); + // Let n be ? ToNumber(x). - auto number = TRY(vm.argument(0).to_number(vm)); + auto number = TRY(x.to_number(vm)); // 2. If n is NaN, return NaN. if (number.is_nan())