diff --git a/content/events/src/nsDOMEvent.cpp b/content/events/src/nsDOMEvent.cpp index 003195108cea..7558680c661a 100644 --- a/content/events/src/nsDOMEvent.cpp +++ b/content/events/src/nsDOMEvent.cpp @@ -578,7 +578,7 @@ nsDOMEvent::DuplicatePrivateData() case NS_SCRIPT_ERROR_EVENT: { InternalScriptErrorEvent* oldScriptErrorEvent = - static_cast(mEvent); + mEvent->AsScriptErrorEvent(); InternalScriptErrorEvent* scriptErrorEvent = new InternalScriptErrorEvent(false, msg); scriptErrorEvent->AssignScriptErrorEventData(*oldScriptErrorEvent, true); diff --git a/dom/src/events/nsJSEventListener.cpp b/dom/src/events/nsJSEventListener.cpp index 60658b256e1e..2cafd966684f 100644 --- a/dom/src/events/nsJSEventListener.cpp +++ b/dom/src/events/nsJSEventListener.cpp @@ -176,11 +176,9 @@ nsJSEventListener::HandleEvent(nsIDOMEvent* aEvent) Optional columnNumber; NS_ENSURE_TRUE(aEvent, NS_ERROR_UNEXPECTED); - WidgetEvent* event = aEvent->GetInternalNSEvent(); - if (event->message == NS_LOAD_ERROR && - event->eventStructType == NS_SCRIPT_ERROR_EVENT) { - InternalScriptErrorEvent *scriptEvent = - static_cast(event); + InternalScriptErrorEvent* scriptEvent = + aEvent->GetInternalNSEvent()->AsScriptErrorEvent(); + if (scriptEvent && scriptEvent->message == NS_LOAD_ERROR) { errorMsg = scriptEvent->errorMsg; msgOrEvent.SetAsString() = static_cast(&errorMsg);