1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-24 15:07:45 +00:00

LibJS: Make FunctionDeclaration and CallExpression scope-aware

This commit is contained in:
Andreas Kling 2020-03-09 21:53:13 +01:00
parent ad401ca098
commit 0d6be2cac2

View file

@ -40,7 +40,7 @@ Value ScopeNode::execute(Interpreter& interpreter) const
Value FunctionDeclaration::execute(Interpreter& interpreter) const Value FunctionDeclaration::execute(Interpreter& interpreter) const
{ {
auto* function = interpreter.heap().allocate<Function>(name(), body()); auto* function = interpreter.heap().allocate<Function>(name(), body());
interpreter.global_object().put(m_name, Value(function)); interpreter.set_variable(m_name, Value(function));
return Value(function); return Value(function);
} }
@ -51,7 +51,7 @@ Value CallExpression::execute(Interpreter& interpreter) const
return js_undefined(); return js_undefined();
} }
auto callee = interpreter.global_object().get(name()); auto callee = interpreter.get_variable(name());
ASSERT(callee.is_object()); ASSERT(callee.is_object());
auto* callee_object = callee.as_object(); auto* callee_object = callee.as_object();
ASSERT(callee_object->is_function()); ASSERT(callee_object->is_function());