Browse Source

LibJS/Bytecode: Remove redundant property uniqueness check

This invariant is enforced by virtue of `items` being a HashTable.
Daniel Bertalan 2 năm trước cách đây
mục cha
commit
b39d8af5a6

+ 1 - 6
Userland/Libraries/LibJS/Bytecode/Op.cpp

@@ -1189,7 +1189,7 @@ ThrowCompletionOr<void> GetObjectPropertyIterator::execute_impl(Bytecode::Interp
         .iterator = object,
         .iterator = object,
         .next_method = NativeFunction::create(
         .next_method = NativeFunction::create(
             interpreter.realm(),
             interpreter.realm(),
-            [seen_items = HashTable<PropertyKey>(), items = move(properties)](VM& vm) mutable -> ThrowCompletionOr<Value> {
+            [items = move(properties)](VM& vm) mutable -> ThrowCompletionOr<Value> {
                 auto& realm = *vm.current_realm();
                 auto& realm = *vm.current_realm();
                 auto iterated_object_value = vm.this_value();
                 auto iterated_object_value = vm.this_value();
                 if (!iterated_object_value.is_object())
                 if (!iterated_object_value.is_object())
@@ -1205,11 +1205,6 @@ ThrowCompletionOr<void> GetObjectPropertyIterator::execute_impl(Bytecode::Interp
 
 
                     auto key = items.take_first();
                     auto key = items.take_first();
 
 
-                    // If the key was already seen, skip over it (invariant no. 4)
-                    auto result = seen_items.set(key);
-                    if (result != AK::HashSetResult::InsertedNewEntry)
-                        continue;
-
                     // If the property is deleted, don't include it (invariant no. 2)
                     // If the property is deleted, don't include it (invariant no. 2)
                     if (!TRY(iterated_object.has_property(key)))
                     if (!TRY(iterated_object.has_property(key)))
                         continue;
                         continue;