mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 11:18:11 +00:00
LibJS: Explicitly pass a "Function& new_target" to Function::construct
This allows the proxy handler to pass the proper new.target to construct handlers.
This commit is contained in:
parent
19411e22d0
commit
bda39ef7ab
38 changed files with 63 additions and 50 deletions
|
@ -54,14 +54,14 @@ Value BoundFunction::call(Interpreter& interpreter)
|
|||
return m_target_function->call(interpreter);
|
||||
}
|
||||
|
||||
Value BoundFunction::construct(Interpreter& interpreter)
|
||||
Value BoundFunction::construct(Interpreter& interpreter, Function& new_target)
|
||||
{
|
||||
if (auto this_value = interpreter.this_value(global_object()); m_constructor_prototype && this_value.is_object()) {
|
||||
this_value.as_object().set_prototype(m_constructor_prototype);
|
||||
if (interpreter.exception())
|
||||
return {};
|
||||
}
|
||||
return m_target_function->construct(interpreter);
|
||||
return m_target_function->construct(interpreter, new_target);
|
||||
}
|
||||
|
||||
LexicalEnvironment* BoundFunction::create_environment()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue