Raise if dispatchEvent dispatches an event that is being dispatched
https://bugs.webkit.org/show_bug.cgi?id=64150

Reviewed by Dimitri Glazkov.

Source/WebCore:

Spec: http://www.w3.org/TR/DOM-Level-3-Events/#events-EventTarget-dispatchEvent

Test: fast/events/dispatch-event-being-dispatched.html

* dom/Event.h:
(WebCore::Event::isBeingDispatched): Added.
* dom/EventException.h:
* dom/EventException.idl: Add DISPATCH_REQUEST_ERR.
* dom/EventTarget.cpp:
(WebCore::EventTarget::dispatchEvent): Raise if being dispatched.
* dom/ExceptionCode.cpp: Add gunk for DISPATCH_REQUEST_ERR.

LayoutTests:

* fast/dom/Window/window-properties-expected.txt: Added DISPATCH_REQUEST_ERR.
* fast/events/dispatch-event-being-dispatched-expected.txt: Added.
* fast/events/dispatch-event-being-dispatched.html: Added.
* fast/workers/resources/worker-event-listener.js:
(onmessage): Redispatching the MessageEvent throws an exception now.
* platform/gtk/fast/dom/Window/window-properties-expected.txt:
* platform/qt-wk2/fast/dom/Window/window-properties-expected.txt:
* platform/qt/fast/dom/Window/window-properties-expected.txt:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@90972 268f45cc-cd09-0410-ab3c-d52691b4dbfc
14 files changed