mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 11:18:11 +00:00
LibJS: Fix that proxy always said that it had a [[Construct]] slot
This commit is contained in:
parent
1c7c53e5a0
commit
021691753d
2 changed files with 11 additions and 1 deletions
|
@ -799,6 +799,16 @@ ThrowCompletionOr<Value> ProxyObject::internal_call(Value this_argument, MarkedV
|
|||
return call(global_object, trap, &m_handler, &m_target, this_argument, arguments_array);
|
||||
}
|
||||
|
||||
bool ProxyObject::has_constructor() const
|
||||
{
|
||||
// Note: A Proxy exotic object only has a [[Construct]] internal method if the initial value of
|
||||
// its [[ProxyTarget]] internal slot is an object that has a [[Construct]] internal method.
|
||||
if (!is_function())
|
||||
return false;
|
||||
|
||||
return static_cast<FunctionObject&>(m_target).has_constructor();
|
||||
}
|
||||
|
||||
// 10.5.13 [[Construct]] ( argumentsList, newTarget ), https://tc39.es/ecma262/#sec-proxy-object-internal-methods-and-internal-slots-construct-argumentslist-newtarget
|
||||
ThrowCompletionOr<Object*> ProxyObject::internal_construct(MarkedValueList arguments_list, FunctionObject& new_target)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue