Bug 830099.  Flag WebIDL dictionaries and callbacks with some information indicating whether we need main-thread and worker codegen for them and then use that information to skip unneccessary codegen.  r=peterv
Bug 834785.  Make sure to not ask the JS engine for return values in toplevel scripts, so it'll be able to ion-compile them as needed.  r=bholley
Bug 829072 part 1.  Move the event handlers that are shared by HTMLElement, Document, and Window onto a GlobalEventHandlers interface that can be on the RHS of 'implements'.  r=peterv
Bug 829072 part 2.  Move the event handlers that are shared by HTMLElement and Document onto a NodeEventHandlers interface that can be on the RHS of 'implements'.  r=peterv
Bug 829072 part 3.  Move the event handlers that are shared by HTMLBodyElement, HTMLFramesetElement, and Window onto a WindowEventHandlers interface that can be on the RHS of 'implements'.  r=peterv
Bug 829252 part 1.  Change nsGlobalWindow to use nsIDOMEventTarget as the canonical isupports instead of nsIScriptGlobalObject.  We'll need this to be able to cast to it properly in binding code.  r=peterv
Bug 829252 part 2.  Make nsGlobalWindow inherit from dom::EventTarget and ensure that all the things that inherit from it correctly QI to it.  r=peterv
Bug 829252 part 3.  When wrapping things with an nsISupports in XPCWrappedJS for WebIDL callback interfaces, use the aggregated version.  r=peterv
Bug 829252 part 4.  Turn on the EventTarget quickstubs.  r=peterv