1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 10:48: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:
Matthew Olsson 2020-06-25 15:30:58 -07:00 committed by Andreas Kling
parent 19411e22d0
commit bda39ef7ab
38 changed files with 63 additions and 50 deletions

View file

@ -49,10 +49,10 @@ ErrorConstructor::~ErrorConstructor()
Value ErrorConstructor::call(Interpreter& interpreter)
{
return construct(interpreter);
return construct(interpreter, *this);
}
Value ErrorConstructor::construct(Interpreter& interpreter)
Value ErrorConstructor::construct(Interpreter& interpreter, Function&)
{
String message = "";
if (!interpreter.call_frame().arguments.is_empty() && !interpreter.call_frame().arguments[0].is_undefined()) {
@ -77,9 +77,9 @@ Value ErrorConstructor::construct(Interpreter& interpreter)
ConstructorName::~ConstructorName() { } \
Value ConstructorName::call(Interpreter& interpreter) \
{ \
return construct(interpreter); \
return construct(interpreter, *this); \
} \
Value ConstructorName::construct(Interpreter& interpreter) \
Value ConstructorName::construct(Interpreter& interpreter, Function&) \
{ \
String message = ""; \
if (!interpreter.call_frame().arguments.is_empty() && !interpreter.call_frame().arguments[0].is_undefined()) { \