Bug 1032417: Move nsPluginElement's destructor to the implementation file. r=khuey
Bug 1031051: Part 1 - Allow codegenerating an InitFooEvent method for legacy event types. r=smaug,bz
Bug 1031051: Part 2 - Migrate HashChangeEvent to the WebIDL code generator. r=smaug
Bug 1031051: Part 3 - Migrate CloseEvent to the WebIDL code generator. r=smaug
Bug 1031051: Part 4 - Remove ReplaceElementEvent. r=khuey,wchen
Bug 1031051: Part 5 - Migrate PopupBlockedEvent to the WebIDL code generator. r=smaug
Bug 1031051: Part 6 - Migrate PopStateEvent to the WebIDL code generator. r=smaug
Bug 1031051: Part 7 - Migrate PageTransitionEvent to the WebIDL code generator. r=smaug
Bug 1031051: Part 8 - Migrate SmartCardEvent to the WebIDL code generator. r=smaug
Bug 1031051: Part 9 - Migrate RecordErrorEvent to the WebIDL code generator. r=smaug
Bug 1031051: Part 10 - Migrate MozSettingsEvent and MozApplicationEvent to the WebIDL code generator. r=smaug
Bug 1031051: Part 11 - Migrate DeviceOrientationEvent to the WebIDL code generator. r=smaug
Bug 1031051: Part 12 - Migrate DeviceStorageChangeEvent to the WebIDL code generator. r=smaug
Bug 1031051: Part 13 - Support ToJSValue()ing CallbackObjects and nsTArrays of raw pointers. r=bz

Without special handling CallbackObject subclasses will fall into the "nsISupports but not nsWrapperCache" case which goes through an XPConnect wrapping path that has no idea how to cope with a CallbackObject.  We need both the CallbackObject overload and the EnableIf bit in the template because the template will bind to the subclass and thus be preferred to the CallbackObject overload which requires an implicit conversion to the base class.

Before this patch nsTArray<T*> will eventually try to ToJSValue a T* which will select the boolean overload.  Thanks C++!  The new template overload that takes a T and attempts to dereference it will be preferred because it can bind to the type directly and does not require the implicit (and terrible!) conversion to bool.  This template is written in terms of T and not T* so we can test to see if T is a pointer type (and not merely something that can be coerced to a T*, such as a T[N]).
Bug 1031051: Part 14 - Migrate DOMTransactionEvent to the WebIDL code generator. r=smaug
Bug 1031051: Part 15 - Migrate Speech events to the WebIDL code generator. r=smaug
Bug 1031051: Part 16 - Migrate Style*ChangeEvent to the WebIDL code generator. r=smaug
Bug 1031051: Part 17 - Manually implement CustomEvent. r=smaug

CustomEvent can't be generated because we still need the XPCOM interface which is used by a11y among others.
Bug 1031051: Part 18 - Kill the old XPIDL-based event generator. r=smaug
Bug 1032340: Make Has/SetMutationListeners available on the inner window only. r=smaug