1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 18:27:35 +00:00

LibJS: Move has_constructor() from NativeFunction to FunctionObject

At a later point this will indicate whether some FunctionObject "has a
[[Construct]] internal method" (separate from the current FunctionObject
call() / construct()), to help with a more spec-compliant implementation
of [[Call]] and [[Construct]].
This means that it is no longer relevant to just NativeFunction.
This commit is contained in:
Linus Groh 2021-09-25 09:52:49 +02:00
parent e14f420a44
commit 38157a6093
7 changed files with 16 additions and 11 deletions

View file

@ -181,7 +181,7 @@ Value NewExpression::execute(Interpreter& interpreter, GlobalObject& global_obje
if (vm.exception())
return {};
if (!callee_value.is_function() || (is<NativeFunction>(callee_value.as_object()) && !static_cast<NativeFunction&>(callee_value.as_object()).has_constructor())) {
if (!callee_value.is_function() || !callee_value.as_function().has_constructor()) {
throw_type_error_for_callee(interpreter, global_object, callee_value, "constructor"sv);
return {};
}