Forráskód Böngészése

LibJS: Only set receiver value fallback once in Object::get()

Linus Groh 4 éve
szülő
commit
4f36b6bfbd
1 módosított fájl, 3 hozzáadás és 2 törlés
  1. 3 2
      Userland/Libraries/LibJS/Runtime/Object.cpp

+ 3 - 2
Userland/Libraries/LibJS/Runtime/Object.cpp

@@ -696,10 +696,11 @@ Value Object::get(const PropertyName& property_name, Value receiver) const
             return get_by_index(property_index);
             return get_by_index(property_index);
     }
     }
 
 
+    if (receiver.is_empty())
+        receiver = Value(this);
+
     const Object* object = this;
     const Object* object = this;
     while (object) {
     while (object) {
-        if (receiver.is_empty())
-            receiver = Value(const_cast<Object*>(this));
         auto value = object->get_own_property(property_name, receiver);
         auto value = object->get_own_property(property_name, receiver);
         if (vm().exception())
         if (vm().exception())
             return {};
             return {};