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

LibJS: Implement bitwise left shift operator (<<)

This commit is contained in:
Linus Groh 2020-04-23 13:36:14 +01:00 committed by Andreas Kling
parent 97366f4dd4
commit f0e7404480
7 changed files with 95 additions and 1 deletions

View file

@ -253,7 +253,13 @@ Value unary_minus(Interpreter&, Value lhs)
Value left_shift(Interpreter&, Value lhs, Value rhs)
{
return Value((i32)lhs.to_number().as_double() << (i32)rhs.to_number().as_double());
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((i32)lhs_number.as_double() << (i32)lhs_number.as_double());
}
Value right_shift(Interpreter&, Value lhs, Value rhs)