LCOV - code coverage report
Current view: top level - obj-x86_64-pc-linux-gnu/dist/include/mozilla/dom - EventHandlerBinding.h (source / functions) Hit Total Coverage
Test: output.info Lines: 21 151 13.9 %
Date: 2017-07-14 16:53:18 Functions: 5 47 10.6 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* THIS FILE IS AUTOGENERATED FROM EventHandler.webidl BY Codegen.py - DO NOT EDIT */
       2             : 
       3             : #ifndef mozilla_dom_EventHandlerBinding_h
       4             : #define mozilla_dom_EventHandlerBinding_h
       5             : 
       6             : #include "js/RootingAPI.h"
       7             : #include "jspubtd.h"
       8             : #include "mozilla/ErrorResult.h"
       9             : #include "mozilla/dom/BindingDeclarations.h"
      10             : #include "mozilla/dom/CallbackFunction.h"
      11             : #include "mozilla/dom/FakeString.h"
      12             : #include "mozilla/dom/Nullable.h"
      13             : #include "mozilla/dom/ToJSValue.h"
      14             : #include "mozilla/dom/UnionMember.h"
      15             : 
      16             : namespace mozilla {
      17             : namespace dom {
      18             : 
      19             : class Event;
      20             : class EventHandlerNonNull;
      21             : class EventOrString;
      22             : struct NativePropertyHooks;
      23             : class OnBeforeUnloadEventHandlerNonNull;
      24             : class OnErrorEventHandlerNonNull;
      25             : class OwningEventOrString;
      26             : class ProtoAndIfaceCache;
      27             : 
      28             : } // namespace dom
      29             : } // namespace mozilla
      30             : 
      31             : namespace mozilla {
      32             : namespace dom {
      33             : 
      34             : void
      35             : ImplCycleCollectionTraverse(nsCycleCollectionTraversalCallback& aCallback, OwningEventOrString& aUnion, const char* aName, uint32_t aFlags = 0);
      36             : 
      37             : 
      38             : void
      39             : ImplCycleCollectionUnlink(OwningEventOrString& aUnion);
      40             : 
      41             : 
      42             : class EventOrString
      43             : {
      44             :   friend class EventOrStringArgument;
      45             :   enum Type
      46             :   {
      47             :     eUninitialized,
      48             :     eEvent,
      49             :     eString
      50             :   };
      51             : 
      52           0 :   union Value
      53             :   {
      54             :     UnionMember<NonNull<mozilla::dom::Event> > mEvent;
      55             :     UnionMember<binding_detail::FakeString > mString;
      56             : 
      57             :   };
      58             : 
      59             :   Type mType;
      60             :   Value mValue;
      61             : 
      62             :   EventOrString(const EventOrString&) = delete;
      63             :   EventOrString& operator=(const EventOrString&) = delete;
      64             : public:
      65           0 :   explicit inline EventOrString()
      66           0 :     : mType(eUninitialized)
      67             :   {
      68           0 :   }
      69             : 
      70           0 :   inline ~EventOrString()
      71           0 :   {
      72           0 :     Uninit();
      73           0 :   }
      74             : 
      75             :   inline NonNull<mozilla::dom::Event>&
      76             :   RawSetAsEvent()
      77             :   {
      78             :     if (mType == eEvent) {
      79             :       return mValue.mEvent.Value();
      80             :     }
      81             :     MOZ_ASSERT(mType == eUninitialized);
      82             :     mType = eEvent;
      83             :     return mValue.mEvent.SetValue();
      84             :   }
      85             : 
      86             :   inline NonNull<mozilla::dom::Event>&
      87           0 :   SetAsEvent()
      88             :   {
      89           0 :     if (mType == eEvent) {
      90           0 :       return mValue.mEvent.Value();
      91             :     }
      92           0 :     Uninit();
      93           0 :     mType = eEvent;
      94           0 :     return mValue.mEvent.SetValue();
      95             :   }
      96             : 
      97             :   inline bool
      98           0 :   IsEvent() const
      99             :   {
     100           0 :     return mType == eEvent;
     101             :   }
     102             : 
     103             :   inline NonNull<mozilla::dom::Event>&
     104             :   GetAsEvent()
     105             :   {
     106             :     MOZ_ASSERT(IsEvent(), "Wrong type!");
     107             :     return mValue.mEvent.Value();
     108             :   }
     109             : 
     110             :   inline mozilla::dom::Event&
     111             :   GetAsEvent() const
     112             :   {
     113             :     MOZ_ASSERT(IsEvent(), "Wrong type!");
     114             :     return mValue.mEvent.Value();
     115             :   }
     116             : 
     117             :   inline binding_detail::FakeString&
     118             :   RawSetAsString()
     119             :   {
     120             :     if (mType == eString) {
     121             :       return mValue.mString.Value();
     122             :     }
     123             :     MOZ_ASSERT(mType == eUninitialized);
     124             :     mType = eString;
     125             :     return mValue.mString.SetValue();
     126             :   }
     127             : 
     128             :   inline binding_detail::FakeString&
     129           0 :   SetAsString()
     130             :   {
     131           0 :     if (mType == eString) {
     132           0 :       return mValue.mString.Value();
     133             :     }
     134           0 :     Uninit();
     135           0 :     mType = eString;
     136           0 :     return mValue.mString.SetValue();
     137             :   }
     138             : 
     139             :   inline bool
     140           0 :   IsString() const
     141             :   {
     142           0 :     return mType == eString;
     143             :   }
     144             : 
     145             :   inline binding_detail::FakeString&
     146             :   GetAsString()
     147             :   {
     148             :     MOZ_ASSERT(IsString(), "Wrong type!");
     149             :     return mValue.mString.Value();
     150             :   }
     151             : 
     152             :   inline const nsAString&
     153             :   GetAsString() const
     154             :   {
     155             :     MOZ_ASSERT(IsString(), "Wrong type!");
     156             :     return mValue.mString.Value();
     157             :   }
     158             : 
     159             :   inline void
     160           0 :   Uninit()
     161             :   {
     162           0 :     switch (mType) {
     163             :       case eUninitialized: {
     164           0 :         break;
     165             :       }
     166             :       case eEvent: {
     167           0 :         DestroyEvent();
     168           0 :         break;
     169             :       }
     170             :       case eString: {
     171           0 :         DestroyString();
     172           0 :         break;
     173             :       }
     174             :     }
     175           0 :   }
     176             : 
     177             :   bool
     178             :   ToJSVal(JSContext* cx, JS::Handle<JSObject*> scopeObj, JS::MutableHandle<JS::Value> rval) const;
     179             : 
     180             : private:
     181             :   inline void
     182           0 :   DestroyEvent()
     183             :   {
     184           0 :     MOZ_ASSERT(IsEvent(), "Wrong type!");
     185           0 :     mValue.mEvent.Destroy();
     186           0 :     mType = eUninitialized;
     187           0 :   }
     188             : 
     189             :   inline void
     190           0 :   DestroyString()
     191             :   {
     192           0 :     MOZ_ASSERT(IsString(), "Wrong type!");
     193           0 :     mValue.mString.Destroy();
     194           0 :     mType = eUninitialized;
     195           0 :   }
     196             : };
     197             : 
     198             : 
     199             : class OwningEventOrString : public AllOwningUnionBase
     200             : {
     201             :   friend void ImplCycleCollectionUnlink(OwningEventOrString& aUnion);
     202             :   enum Type
     203             :   {
     204             :     eUninitialized,
     205             :     eEvent,
     206             :     eString
     207             :   };
     208             : 
     209             :   union Value
     210             :   {
     211             :     UnionMember<OwningNonNull<mozilla::dom::Event> > mEvent;
     212             :     UnionMember<nsString > mString;
     213             : 
     214             :   };
     215             : 
     216             :   Type mType;
     217             :   Value mValue;
     218             : 
     219             : public:
     220             :   explicit inline OwningEventOrString()
     221             :     : mType(eUninitialized)
     222             :   {
     223             :   }
     224             : 
     225             :   explicit inline OwningEventOrString(const OwningEventOrString& aOther)
     226             :     : mType(eUninitialized)
     227             :   {
     228             :     *this = aOther;
     229             :   }
     230             : 
     231             :   inline ~OwningEventOrString()
     232             :   {
     233             :     Uninit();
     234             :   }
     235             : 
     236             :   OwningNonNull<mozilla::dom::Event>&
     237             :   RawSetAsEvent();
     238             : 
     239             :   OwningNonNull<mozilla::dom::Event>&
     240             :   SetAsEvent();
     241             : 
     242             :   bool
     243             :   TrySetToEvent(JSContext* cx, JS::Handle<JS::Value> value, bool& tryNext, bool passedToJSImpl = false);
     244             : 
     245             :   inline bool
     246           0 :   IsEvent() const
     247             :   {
     248           0 :     return mType == eEvent;
     249             :   }
     250             : 
     251             :   inline OwningNonNull<mozilla::dom::Event>&
     252           0 :   GetAsEvent()
     253             :   {
     254           0 :     MOZ_ASSERT(IsEvent(), "Wrong type!");
     255           0 :     return mValue.mEvent.Value();
     256             :   }
     257             : 
     258             :   inline OwningNonNull<mozilla::dom::Event> const &
     259           0 :   GetAsEvent() const
     260             :   {
     261           0 :     MOZ_ASSERT(IsEvent(), "Wrong type!");
     262           0 :     return mValue.mEvent.Value();
     263             :   }
     264             : 
     265             :   nsString&
     266             :   RawSetAsString();
     267             : 
     268             :   nsString&
     269             :   SetAsString();
     270             : 
     271             :   bool
     272             :   TrySetToString(JSContext* cx, JS::Handle<JS::Value> value, bool& tryNext, bool passedToJSImpl = false);
     273             : 
     274             :   inline void
     275             :   SetStringData(const nsString::char_type* aData, nsString::size_type aLength)
     276             :   {
     277             :     RawSetAsString().Assign(aData, aLength);
     278             :   }
     279             : 
     280             :   inline bool
     281           0 :   IsString() const
     282             :   {
     283           0 :     return mType == eString;
     284             :   }
     285             : 
     286             :   inline nsString&
     287             :   GetAsString()
     288             :   {
     289             :     MOZ_ASSERT(IsString(), "Wrong type!");
     290             :     return mValue.mString.Value();
     291             :   }
     292             : 
     293             :   inline nsString const &
     294           0 :   GetAsString() const
     295             :   {
     296           0 :     MOZ_ASSERT(IsString(), "Wrong type!");
     297           0 :     return mValue.mString.Value();
     298             :   }
     299             : 
     300             :   void
     301             :   Uninit();
     302             : 
     303             :   bool
     304             :   ToJSVal(JSContext* cx, JS::Handle<JSObject*> scopeObj, JS::MutableHandle<JS::Value> rval) const;
     305             : 
     306             :   void
     307             :   TraceUnion(JSTracer* trc);
     308             : 
     309             :   OwningEventOrString&
     310             :   operator=(const OwningEventOrString& aOther);
     311             : 
     312             : private:
     313             :   void
     314             :   DestroyEvent();
     315             : 
     316             :   void
     317             :   DestroyString();
     318             : };
     319             : 
     320             : 
     321           0 : class EventHandlerNonNull : public CallbackFunction
     322             : {
     323             : public:
     324          13 :   explicit inline EventHandlerNonNull(JSContext* aCx, JS::Handle<JSObject*> aCallback, nsIGlobalObject* aIncumbentGlobal)
     325          13 :     : CallbackFunction(aCx, aCallback, aIncumbentGlobal)
     326             :   {
     327          13 :   }
     328             : 
     329           2 :   explicit inline EventHandlerNonNull(JS::Handle<JSObject*> aCallback, const FastCallbackConstructor& )
     330           2 :     : CallbackFunction(aCallback, FastCallbackConstructor())
     331             :   {
     332           2 :   }
     333             : 
     334             :   explicit inline EventHandlerNonNull(JS::Handle<JSObject*> aCallback, JS::Handle<JSObject*> aAsyncStack, nsIGlobalObject* aIncumbentGlobal)
     335             :     : CallbackFunction(aCallback, aAsyncStack, aIncumbentGlobal)
     336             :   {
     337             :   }
     338             : 
     339           0 :   explicit inline EventHandlerNonNull(CallbackFunction* aOther)
     340           0 :     : CallbackFunction(aOther)
     341             :   {
     342           0 :   }
     343             : 
     344             :   template <typename T>
     345             :   inline void
     346          15 :   Call(const T& thisVal, Event& event, JS::MutableHandle<JS::Value> aRetVal, ErrorResult& aRv, const char* aExecutionReason = nullptr, ExceptionHandling aExceptionHandling = eReportExceptions, JSCompartment* aCompartment = nullptr)
     347             :   {
     348          15 :     MOZ_ASSERT(!aRv.Failed(), "Don't pass an already-failed ErrorResult to a callback!");
     349          15 :     if (!aExecutionReason) {
     350          15 :       aExecutionReason = "EventHandlerNonNull";
     351             :     }
     352          30 :     CallSetup s(this, aRv, aExecutionReason, aExceptionHandling, aCompartment);
     353          15 :     if (!s.GetContext()) {
     354           0 :       MOZ_ASSERT(aRv.Failed());
     355           0 :       return;
     356             :     }
     357          30 :     JS::Rooted<JS::Value> thisValJS(s.GetContext());
     358          15 :     if (!ToJSValue(s.GetContext(), thisVal, &thisValJS)) {
     359           0 :       aRv.Throw(NS_ERROR_FAILURE);
     360           0 :       return;
     361             :     }
     362          15 :     return Call(s.GetContext(), thisValJS, event, aRetVal, aRv);
     363             :   }
     364             : 
     365             :   inline void
     366             :   Call(Event& event, JS::MutableHandle<JS::Value> aRetVal, ErrorResult& aRv, const char* aExecutionReason = nullptr, ExceptionHandling aExceptionHandling = eReportExceptions, JSCompartment* aCompartment = nullptr)
     367             :   {
     368             :     MOZ_ASSERT(!aRv.Failed(), "Don't pass an already-failed ErrorResult to a callback!");
     369             :     if (!aExecutionReason) {
     370             :       aExecutionReason = "EventHandlerNonNull";
     371             :     }
     372             :     CallSetup s(this, aRv, aExecutionReason, aExceptionHandling, aCompartment);
     373             :     if (!s.GetContext()) {
     374             :       MOZ_ASSERT(aRv.Failed());
     375             :       return;
     376             :     }
     377             :     return Call(s.GetContext(), JS::UndefinedHandleValue, event, aRetVal, aRv);
     378             :   }
     379             : 
     380             :   template <typename T>
     381             :   inline void
     382             :   Call(const T& thisVal, Event& event, JS::MutableHandle<JS::Value> aRetVal, const char* aExecutionReason = nullptr)
     383             :   {
     384             :     IgnoredErrorResult rv;
     385             :     return Call(thisVal, event, aRetVal, rv, aExecutionReason);
     386             :   }
     387             : 
     388             :   inline void
     389             :   Call(Event& event, JS::MutableHandle<JS::Value> aRetVal, const char* aExecutionReason = nullptr)
     390             :   {
     391             :     IgnoredErrorResult rv;
     392             :     return Call(event, aRetVal, rv, aExecutionReason, eReportExceptions, nullptr);
     393             :   }
     394             : 
     395             :   inline bool
     396             :   operator==(const EventHandlerNonNull& aOther) const
     397             :   {
     398             :     return CallbackFunction::operator==(aOther);
     399             :   }
     400             : 
     401             : private:
     402             :   void Call(JSContext* cx, JS::Handle<JS::Value> aThisVal, Event& event, JS::MutableHandle<JS::Value> aRetVal, ErrorResult& aRv);
     403             : };
     404             : 
     405             : 
     406           0 : class OnBeforeUnloadEventHandlerNonNull : public CallbackFunction
     407             : {
     408             : public:
     409           0 :   explicit inline OnBeforeUnloadEventHandlerNonNull(JSContext* aCx, JS::Handle<JSObject*> aCallback, nsIGlobalObject* aIncumbentGlobal)
     410           0 :     : CallbackFunction(aCx, aCallback, aIncumbentGlobal)
     411             :   {
     412           0 :   }
     413             : 
     414           0 :   explicit inline OnBeforeUnloadEventHandlerNonNull(JS::Handle<JSObject*> aCallback, const FastCallbackConstructor& )
     415           0 :     : CallbackFunction(aCallback, FastCallbackConstructor())
     416             :   {
     417           0 :   }
     418             : 
     419             :   explicit inline OnBeforeUnloadEventHandlerNonNull(JS::Handle<JSObject*> aCallback, JS::Handle<JSObject*> aAsyncStack, nsIGlobalObject* aIncumbentGlobal)
     420             :     : CallbackFunction(aCallback, aAsyncStack, aIncumbentGlobal)
     421             :   {
     422             :   }
     423             : 
     424             :   explicit inline OnBeforeUnloadEventHandlerNonNull(CallbackFunction* aOther)
     425             :     : CallbackFunction(aOther)
     426             :   {
     427             :   }
     428             : 
     429             :   template <typename T>
     430             :   inline void
     431           0 :   Call(const T& thisVal, Event& event, nsString& aRetVal, ErrorResult& aRv, const char* aExecutionReason = nullptr, ExceptionHandling aExceptionHandling = eReportExceptions, JSCompartment* aCompartment = nullptr)
     432             :   {
     433           0 :     MOZ_ASSERT(!aRv.Failed(), "Don't pass an already-failed ErrorResult to a callback!");
     434           0 :     if (!aExecutionReason) {
     435           0 :       aExecutionReason = "OnBeforeUnloadEventHandlerNonNull";
     436             :     }
     437           0 :     CallSetup s(this, aRv, aExecutionReason, aExceptionHandling, aCompartment);
     438           0 :     if (!s.GetContext()) {
     439           0 :       MOZ_ASSERT(aRv.Failed());
     440           0 :       return;
     441             :     }
     442           0 :     JS::Rooted<JS::Value> thisValJS(s.GetContext());
     443           0 :     if (!ToJSValue(s.GetContext(), thisVal, &thisValJS)) {
     444           0 :       aRv.Throw(NS_ERROR_FAILURE);
     445           0 :       return;
     446             :     }
     447           0 :     return Call(s.GetContext(), thisValJS, event, aRetVal, aRv);
     448             :   }
     449             : 
     450             :   inline void
     451             :   Call(Event& event, nsString& aRetVal, ErrorResult& aRv, const char* aExecutionReason = nullptr, ExceptionHandling aExceptionHandling = eReportExceptions, JSCompartment* aCompartment = nullptr)
     452             :   {
     453             :     MOZ_ASSERT(!aRv.Failed(), "Don't pass an already-failed ErrorResult to a callback!");
     454             :     if (!aExecutionReason) {
     455             :       aExecutionReason = "OnBeforeUnloadEventHandlerNonNull";
     456             :     }
     457             :     CallSetup s(this, aRv, aExecutionReason, aExceptionHandling, aCompartment);
     458             :     if (!s.GetContext()) {
     459             :       MOZ_ASSERT(aRv.Failed());
     460             :       return;
     461             :     }
     462             :     return Call(s.GetContext(), JS::UndefinedHandleValue, event, aRetVal, aRv);
     463             :   }
     464             : 
     465             :   template <typename T>
     466             :   inline void
     467             :   Call(const T& thisVal, Event& event, nsString& aRetVal, const char* aExecutionReason = nullptr)
     468             :   {
     469             :     IgnoredErrorResult rv;
     470             :     return Call(thisVal, event, aRetVal, rv, aExecutionReason);
     471             :   }
     472             : 
     473             :   inline void
     474             :   Call(Event& event, nsString& aRetVal, const char* aExecutionReason = nullptr)
     475             :   {
     476             :     IgnoredErrorResult rv;
     477             :     return Call(event, aRetVal, rv, aExecutionReason, eReportExceptions, nullptr);
     478             :   }
     479             : 
     480             :   inline bool
     481             :   operator==(const OnBeforeUnloadEventHandlerNonNull& aOther) const
     482             :   {
     483             :     return CallbackFunction::operator==(aOther);
     484             :   }
     485             : 
     486             : private:
     487             :   void Call(JSContext* cx, JS::Handle<JS::Value> aThisVal, Event& event, nsString& aRetVal, ErrorResult& aRv);
     488             : };
     489             : 
     490             : 
     491           0 : class OnErrorEventHandlerNonNull : public CallbackFunction
     492             : {
     493             : public:
     494           0 :   explicit inline OnErrorEventHandlerNonNull(JSContext* aCx, JS::Handle<JSObject*> aCallback, nsIGlobalObject* aIncumbentGlobal)
     495           0 :     : CallbackFunction(aCx, aCallback, aIncumbentGlobal)
     496             :   {
     497           0 :   }
     498             : 
     499           0 :   explicit inline OnErrorEventHandlerNonNull(JS::Handle<JSObject*> aCallback, const FastCallbackConstructor& )
     500           0 :     : CallbackFunction(aCallback, FastCallbackConstructor())
     501             :   {
     502           0 :   }
     503             : 
     504             :   explicit inline OnErrorEventHandlerNonNull(JS::Handle<JSObject*> aCallback, JS::Handle<JSObject*> aAsyncStack, nsIGlobalObject* aIncumbentGlobal)
     505             :     : CallbackFunction(aCallback, aAsyncStack, aIncumbentGlobal)
     506             :   {
     507             :   }
     508             : 
     509           0 :   explicit inline OnErrorEventHandlerNonNull(CallbackFunction* aOther)
     510           0 :     : CallbackFunction(aOther)
     511             :   {
     512           0 :   }
     513             : 
     514             :   template <typename T>
     515             :   inline void
     516           0 :   Call(const T& thisVal, const EventOrString& event, const Optional<nsAString>& source, const Optional<uint32_t>& lineno, const Optional<uint32_t>& column, const Optional<JS::Handle<JS::Value>>& error, JS::MutableHandle<JS::Value> aRetVal, ErrorResult& aRv, const char* aExecutionReason = nullptr, ExceptionHandling aExceptionHandling = eReportExceptions, JSCompartment* aCompartment = nullptr)
     517             :   {
     518           0 :     MOZ_ASSERT(!aRv.Failed(), "Don't pass an already-failed ErrorResult to a callback!");
     519           0 :     if (!aExecutionReason) {
     520           0 :       aExecutionReason = "OnErrorEventHandlerNonNull";
     521             :     }
     522           0 :     CallSetup s(this, aRv, aExecutionReason, aExceptionHandling, aCompartment);
     523           0 :     if (!s.GetContext()) {
     524           0 :       MOZ_ASSERT(aRv.Failed());
     525           0 :       return;
     526             :     }
     527           0 :     JS::Rooted<JS::Value> thisValJS(s.GetContext());
     528           0 :     if (!ToJSValue(s.GetContext(), thisVal, &thisValJS)) {
     529           0 :       aRv.Throw(NS_ERROR_FAILURE);
     530           0 :       return;
     531             :     }
     532           0 :     return Call(s.GetContext(), thisValJS, event, source, lineno, column, error, aRetVal, aRv);
     533             :   }
     534             : 
     535             :   inline void
     536             :   Call(const EventOrString& event, const Optional<nsAString>& source, const Optional<uint32_t>& lineno, const Optional<uint32_t>& column, const Optional<JS::Handle<JS::Value>>& error, JS::MutableHandle<JS::Value> aRetVal, ErrorResult& aRv, const char* aExecutionReason = nullptr, ExceptionHandling aExceptionHandling = eReportExceptions, JSCompartment* aCompartment = nullptr)
     537             :   {
     538             :     MOZ_ASSERT(!aRv.Failed(), "Don't pass an already-failed ErrorResult to a callback!");
     539             :     if (!aExecutionReason) {
     540             :       aExecutionReason = "OnErrorEventHandlerNonNull";
     541             :     }
     542             :     CallSetup s(this, aRv, aExecutionReason, aExceptionHandling, aCompartment);
     543             :     if (!s.GetContext()) {
     544             :       MOZ_ASSERT(aRv.Failed());
     545             :       return;
     546             :     }
     547             :     return Call(s.GetContext(), JS::UndefinedHandleValue, event, source, lineno, column, error, aRetVal, aRv);
     548             :   }
     549             : 
     550             :   template <typename T>
     551             :   inline void
     552             :   Call(const T& thisVal, const EventOrString& event, const Optional<nsAString>& source, const Optional<uint32_t>& lineno, const Optional<uint32_t>& column, const Optional<JS::Handle<JS::Value>>& error, JS::MutableHandle<JS::Value> aRetVal, const char* aExecutionReason = nullptr)
     553             :   {
     554             :     IgnoredErrorResult rv;
     555             :     return Call(thisVal, event, source, lineno, column, error, aRetVal, rv, aExecutionReason);
     556             :   }
     557             : 
     558             :   inline void
     559             :   Call(const EventOrString& event, const Optional<nsAString>& source, const Optional<uint32_t>& lineno, const Optional<uint32_t>& column, const Optional<JS::Handle<JS::Value>>& error, JS::MutableHandle<JS::Value> aRetVal, const char* aExecutionReason = nullptr)
     560             :   {
     561             :     IgnoredErrorResult rv;
     562             :     return Call(event, source, lineno, column, error, aRetVal, rv, aExecutionReason, eReportExceptions, nullptr);
     563             :   }
     564             : 
     565             :   inline bool
     566             :   operator==(const OnErrorEventHandlerNonNull& aOther) const
     567             :   {
     568             :     return CallbackFunction::operator==(aOther);
     569             :   }
     570             : 
     571             : private:
     572             :   void Call(JSContext* cx, JS::Handle<JS::Value> aThisVal, const EventOrString& event, const Optional<nsAString>& source, const Optional<uint32_t>& lineno, const Optional<uint32_t>& column, const Optional<JS::Handle<JS::Value>>& error, JS::MutableHandle<JS::Value> aRetVal, ErrorResult& aRv);
     573             : };
     574             : 
     575             : 
     576             : namespace binding_detail {
     577           0 : class FastEventHandlerNonNull : public EventHandlerNonNull
     578             : {
     579             : public:
     580           2 :   explicit inline FastEventHandlerNonNull(JS::Handle<JSObject*> aCallback)
     581           2 :     : EventHandlerNonNull(aCallback, FastCallbackConstructor())
     582             :   {
     583           2 :   }
     584             : 
     585             :   inline void
     586           0 :   Trace(JSTracer* aTracer)
     587             :   {
     588           0 :     EventHandlerNonNull::Trace(aTracer);
     589           0 :   }
     590             : 
     591             :   inline void
     592           2 :   FinishSlowJSInitIfMoreThanOneOwner(JSContext* aCx)
     593             :   {
     594           2 :     EventHandlerNonNull::FinishSlowJSInitIfMoreThanOneOwner(aCx);
     595           2 :   }
     596             : };
     597             : } // namespace binding_detail
     598             : 
     599             : 
     600             : namespace binding_detail {
     601           0 : class FastOnBeforeUnloadEventHandlerNonNull : public OnBeforeUnloadEventHandlerNonNull
     602             : {
     603             : public:
     604           0 :   explicit inline FastOnBeforeUnloadEventHandlerNonNull(JS::Handle<JSObject*> aCallback)
     605           0 :     : OnBeforeUnloadEventHandlerNonNull(aCallback, FastCallbackConstructor())
     606             :   {
     607           0 :   }
     608             : 
     609             :   inline void
     610           0 :   Trace(JSTracer* aTracer)
     611             :   {
     612           0 :     OnBeforeUnloadEventHandlerNonNull::Trace(aTracer);
     613           0 :   }
     614             : 
     615             :   inline void
     616           0 :   FinishSlowJSInitIfMoreThanOneOwner(JSContext* aCx)
     617             :   {
     618           0 :     OnBeforeUnloadEventHandlerNonNull::FinishSlowJSInitIfMoreThanOneOwner(aCx);
     619           0 :   }
     620             : };
     621             : } // namespace binding_detail
     622             : 
     623             : 
     624             : namespace binding_detail {
     625           0 : class FastOnErrorEventHandlerNonNull : public OnErrorEventHandlerNonNull
     626             : {
     627             : public:
     628           0 :   explicit inline FastOnErrorEventHandlerNonNull(JS::Handle<JSObject*> aCallback)
     629           0 :     : OnErrorEventHandlerNonNull(aCallback, FastCallbackConstructor())
     630             :   {
     631           0 :   }
     632             : 
     633             :   inline void
     634           0 :   Trace(JSTracer* aTracer)
     635             :   {
     636           0 :     OnErrorEventHandlerNonNull::Trace(aTracer);
     637           0 :   }
     638             : 
     639             :   inline void
     640           0 :   FinishSlowJSInitIfMoreThanOneOwner(JSContext* aCx)
     641             :   {
     642           0 :     OnErrorEventHandlerNonNull::FinishSlowJSInitIfMoreThanOneOwner(aCx);
     643           0 :   }
     644             : };
     645             : } // namespace binding_detail
     646             : 
     647             : 
     648             : } // namespace dom
     649             : } // namespace mozilla
     650             : 
     651             : #endif // mozilla_dom_EventHandlerBinding_h

Generated by: LCOV version 1.13