LibJS: Assert when exception is not cleared before Interpreter::run()

This is to prevent bugs like #3091 (fixed in
9810f8872c21eaf2aefff25347d957cd26f34c2d) in the future; we generally
don't want Interpreter::run() to be called if the interpreter still has
an exception stored. Sure, it could clear those itself but letting users
of the interpreter do it explicitly seems sensible.
This commit is contained in:
Linus Groh 2020-08-11 17:45:57 +02:00 committed by Andreas Kling
parent 1d728af5c4
commit 36c738d9bf
Notes: sideshowbarker 2024-07-19 03:53:03 +09:00

View file

@ -60,6 +60,8 @@ Interpreter::~Interpreter()
Value Interpreter::run(GlobalObject& global_object, const Statement& statement, ArgumentVector arguments, ScopeType scope_type)
{
ASSERT(!exception());
if (statement.is_program()) {
if (m_call_stack.is_empty()) {
CallFrame global_call_frame;