LibWeb: Bypass the JS::Interpreter when invoking JS event callbacks

Use VM::call() instead of Interpreter::call().
This commit is contained in:
Andreas Kling 2020-09-27 20:15:47 +02:00
commit 861815596f
Notes: sideshowbarker 2024-07-19 02:10:06 +09:00

View file

@ -45,10 +45,10 @@ void EventDispatcher::dispatch(EventTarget& target, NonnullRefPtr<Event> event)
auto& global_object = function.global_object();
auto* this_value = Bindings::wrap(global_object, target);
auto& interpreter = target.script_execution_context()->interpreter();
(void)interpreter.call(function, this_value, Bindings::wrap(global_object, target));
if (interpreter.exception())
interpreter.vm().clear_exception();
auto& vm = global_object.vm();
(void)vm.call(function, this_value, Bindings::wrap(global_object, target));
if (vm.exception())
vm.clear_exception();
}
}