فهرست منبع

LibJS: Fix that length was sometimes cast to [ui]32

Since array-like objects can have much larger lengths even a u32 is not
sufficient.
davidot 4 سال پیش
والد
کامیت
a70033481d
1فایلهای تغییر یافته به همراه3 افزوده شده و 3 حذف شده
  1. 3 3
      Userland/Libraries/LibJS/Runtime/ArrayPrototype.cpp

+ 3 - 3
Userland/Libraries/LibJS/Runtime/ArrayPrototype.cpp

@@ -362,7 +362,7 @@ JS_DEFINE_NATIVE_FUNCTION(ArrayPrototype::push)
         if (vm.exception())
         if (vm.exception())
             return {};
             return {};
     }
     }
-    auto new_length_value = Value((i32)new_length);
+    auto new_length_value = Value(new_length);
     this_object->set(vm.names.length, new_length_value, true);
     this_object->set(vm.names.length, new_length_value, true);
     if (vm.exception())
     if (vm.exception())
         return {};
         return {};
@@ -440,7 +440,7 @@ JS_DEFINE_NATIVE_FUNCTION(ArrayPrototype::pop)
     this_object->delete_property_or_throw(index);
     this_object->delete_property_or_throw(index);
     if (vm.exception())
     if (vm.exception())
         return {};
         return {};
-    this_object->set(vm.names.length, Value((i32)index), true);
+    this_object->set(vm.names.length, Value(index), true);
     if (vm.exception())
     if (vm.exception())
         return {};
         return {};
     return element;
     return element;
@@ -1713,7 +1713,7 @@ JS_DEFINE_NATIVE_FUNCTION(ArrayPrototype::splice)
             return {};
             return {};
     }
     }
 
 
-    this_object->set(vm.names.length, Value((i32)new_length), true);
+    this_object->set(vm.names.length, Value(new_length), true);
     if (vm.exception())
     if (vm.exception())
         return {};
         return {};