1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 08:08:12 +00:00

LibJS: Implement bitwise unsigned right shift operator (>>>)

This commit is contained in:
Linus Groh 2020-04-23 15:43:10 +01:00 committed by Andreas Kling
parent 502d1f5165
commit 396ecfa2d7
6 changed files with 108 additions and 0 deletions

View file

@ -273,6 +273,17 @@ Value right_shift(Interpreter&, Value lhs, Value rhs)
return Value((i32)lhs_number.as_double() >> (i32)rhs_number.as_double());
}
Value unsigned_right_shift(Interpreter&, Value lhs, Value rhs)
{
auto lhs_number = lhs.to_number();
if (!lhs_number.is_finite_number())
return Value(0);
auto rhs_number = rhs.to_number();
if (!rhs_number.is_finite_number())
return lhs_number;
return Value((unsigned)lhs_number.as_double() >> (i32)rhs_number.as_double());
}
Value add(Interpreter& interpreter, Value lhs, Value rhs)
{
auto lhs_primitive = lhs.to_primitive(interpreter);