浏览代码

LibJS: Ensure shift values in left_shift are modded by 32

This is equivalent to 58d6a2d0192b7860ecb2edb4aa5d36b389213a15 but for
the left shift operation.
Idan Horowitz 4 年之前
父节点
当前提交
38b8fa8f3e
共有 1 个文件被更改,包括 1 次插入1 次删除
  1. 1 1
      Userland/Libraries/LibJS/Runtime/Value.cpp

+ 1 - 1
Userland/Libraries/LibJS/Runtime/Value.cpp

@@ -993,7 +993,7 @@ Value left_shift(GlobalObject& global_object, Value lhs, Value rhs)
             return lhs_numeric;
             return lhs_numeric;
         // Ok, so this performs toNumber() again but that "can't" throw
         // Ok, so this performs toNumber() again but that "can't" throw
         auto lhs_i32 = lhs_numeric.to_i32(global_object);
         auto lhs_i32 = lhs_numeric.to_i32(global_object);
-        auto rhs_u32 = rhs_numeric.to_u32(global_object);
+        auto rhs_u32 = rhs_numeric.to_u32(global_object) % 32;
         return Value(lhs_i32 << rhs_u32);
         return Value(lhs_i32 << rhs_u32);
     }
     }
     if (both_bigint(lhs_numeric, rhs_numeric)) {
     if (both_bigint(lhs_numeric, rhs_numeric)) {