Ver Fonte

LibJS: Avoid transitions in GlobalObject::initialize_constructor()

We don't need transitions for either of these:

- Adding the 'name' property to a constructor object
- Adding the 'constructor' property to its prototype object
Linus Groh há 4 anos atrás
pai
commit
45eef97906
1 ficheiros alterados com 2 adições e 2 exclusões
  1. 2 2
      Userland/Libraries/LibJS/Runtime/GlobalObject.h

+ 2 - 2
Userland/Libraries/LibJS/Runtime/GlobalObject.h

@@ -136,11 +136,11 @@ inline void GlobalObject::initialize_constructor(PropertyName const& property_na
 {
 {
     auto& vm = this->vm();
     auto& vm = this->vm();
     constructor = heap().allocate<ConstructorType>(*this, *this);
     constructor = heap().allocate<ConstructorType>(*this, *this);
-    constructor->define_direct_property(vm.names.name, js_string(heap(), property_name.as_string()), Attribute::Configurable);
+    constructor->define_direct_property_without_transition(vm.names.name, js_string(heap(), property_name.as_string()), Attribute::Configurable);
     if (vm.exception())
     if (vm.exception())
         return;
         return;
     if (prototype) {
     if (prototype) {
-        prototype->define_direct_property(vm.names.constructor, constructor, Attribute::Writable | Attribute::Configurable);
+        prototype->define_direct_property_without_transition(vm.names.constructor, constructor, Attribute::Writable | Attribute::Configurable);
         if (vm.exception())
         if (vm.exception())
             return;
             return;
     }
     }