summaryrefslogtreecommitdiff
path: root/Userland
diff options
context:
space:
mode:
authorAndreas Kling <kling@serenityos.org>2021-10-25 12:54:36 +0200
committerAndreas Kling <kling@serenityos.org>2021-10-25 12:57:21 +0200
commita831cd9cc7c0562f98d0b7fb9a69056b132a64f7 (patch)
tree2ece2870f41c082e0d8d94a04c9fea1be0b871ea /Userland
parent6fc3c14b7ab67d492819cb57fd88f45b6b4abf03 (diff)
downloadserenity-a831cd9cc7c0562f98d0b7fb9a69056b132a64f7.zip
LibJS: Make bytecode VM throw TypeError on attempt to call non-callable
This isn't perfect, but allows us to progress instead of crashing in the TODO().
Diffstat (limited to 'Userland')
-rw-r--r--Userland/Libraries/LibJS/Bytecode/Op.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/Userland/Libraries/LibJS/Bytecode/Op.cpp b/Userland/Libraries/LibJS/Bytecode/Op.cpp
index 49855b1f38..d6b927caa6 100644
--- a/Userland/Libraries/LibJS/Bytecode/Op.cpp
+++ b/Userland/Libraries/LibJS/Bytecode/Op.cpp
@@ -350,7 +350,8 @@ void Call::execute_impl(Bytecode::Interpreter& interpreter) const
{
auto callee = interpreter.reg(m_callee);
if (!callee.is_function()) {
- TODO();
+ interpreter.vm().throw_exception<TypeError>(interpreter.global_object(), ErrorType::IsNotA, callee.to_string_without_side_effects(), "function"sv);
+ return;
}
auto& function = callee.as_function();