1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 11:48:10 +00:00

Revert "LibJS: Fix this_value in native setters and getters"

This reverts commit f102b563
The reverted to behavior is not correct for example with a double proxy
But this change lead to problems with DOMNodes
This commit is contained in:
davidot 2021-06-26 12:41:37 +02:00 committed by Linus Groh
parent 19f505d320
commit 83dd0164b2

View file

@ -278,7 +278,7 @@ Value Object::get_own_property(const PropertyName& property_name, Value receiver
if (value_here.is_accessor())
return value_here.as_accessor().call_getter(receiver);
if (value_here.is_native_property())
return call_native_property_getter(value_here.as_native_property(), this);
return call_native_property_getter(value_here.as_native_property(), receiver);
}
return value_here;
}
@ -940,7 +940,9 @@ bool Object::put_by_index(u32 property_index, Value value)
return true;
}
if (value_here.value.is_native_property()) {
call_native_property_setter(value_here.value.as_native_property(), this, value);
// FIXME: Why doesn't put_by_index() receive the receiver value from put()?!
auto receiver = this;
call_native_property_setter(value_here.value.as_native_property(), receiver, value);
return true;
}
}
@ -977,7 +979,7 @@ bool Object::put(const PropertyName& property_name, Value value, Value receiver)
return true;
}
if (value_here.is_native_property()) {
call_native_property_setter(value_here.as_native_property(), this, value);
call_native_property_setter(value_here.as_native_property(), receiver, value);
return true;
}
}