diff --git a/dom/events/EventListenerManager.cpp b/dom/events/EventListenerManager.cpp index 7db30be4e0..a5bf65cea9 100644 --- a/dom/events/EventListenerManager.cpp +++ b/dom/events/EventListenerManager.cpp @@ -1632,8 +1632,12 @@ EventListenerManager::GetTypedEventHandler(nsIAtom* aEventName, JSEventHandler* jsEventHandler = listener->GetJSEventHandler(); + Maybe> pin; if (listener->mHandlerIsString) { - CompileEventHandlerInternal(listener, nullptr, nullptr); + pin.emplace(jsEventHandler); + if (NS_FAILED(CompileEventHandlerInternal(listener, nullptr, nullptr))) { + listener = nullptr; + } } const TypedEventHandler& typedHandler =