Explorar o código

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.
Linus Groh %!s(int64=5) %!d(string=hai) anos
pai
achega
36c738d9bf
Modificáronse 1 ficheiros con 2 adicións e 0 borrados
  1. 2 0
      Libraries/LibJS/Interpreter.cpp

+ 2 - 0
Libraries/LibJS/Interpreter.cpp

@@ -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;